в реляционной модели данных таблицы организуются так чтобы одинаковые отсутствовали
Логика мышления. Часть 17. Реляционная модель данных
Этот цикл статей описывает волновую модель мозга, серьезно отличающуюся от традиционных моделей. Настоятельно рекомендую тем, кто только присоединился, начинать чтение с первой части.
В 1970 году Эдгар Кодд опубликовал статью (Codd, 1970), в которой описал основы реляционной модели хранения данных. Практической реализацией этой модели стали все современные реляционные базы данных. Формализация модели привела к созданию реляционного исчисления и реляционной алгебры.
Основной элемент реляционной модели – это кортеж. Кортеж – это упорядоченный набор элементов, каждый из которых принадлежит определенному множеству или, иначе говоря, имеет свой тип. Совокупность однородных по структуре кортежей образует отношение.
Несколько более наглядно все это выглядит в терминах, используемых в базах данных (рисунок ниже). Отношение – это таблица с данными. Кортеж — строка таблицы. Какого типа кортежи содержатся в отношении, или, что то же самое, каков формат строк в таблице, определяется заголовком отношения или таблицы. Каждый из столбцов таблицы образует домен. Значения, которое могут принимать элементы домена, называются атрибутами. Строки таблицы – это совокупность атрибутов, соответствующих доменам.
Пример отношения (Заборов)
Строки таблицы могут быть идентифицированы по своим атрибутам, то есть по тому, какие значения принимают элементы кортежа. Само содержание кортежа делает его непохожим на остальные. Но может так оказаться, что некоторые строки совпадут по своим атрибутам. Само по себе совпадение не страшно, но оно уже не позволяет использовать такой набор атрибутов, для однозначной идентификации кортежей в отношении. Чтобы идентификация была однозначной, вводят такое ключевое поле, которое для каждой строки принимает уникальное значение. Такой ключ может нести смысловую нагрузку, а может быть просто искусственно сгенерированным числом.
Смысл многих операций совпадает с соответствующими операциями из теории множеств. Общее представление об их сути дает рисунок ниже.
Пример операций над кортежами (Заборов)
Важно, что разные отношения могут содержать домены одного типа. Это значит, что если в двух кортежах встречаются одинаковые домены, внутри них одинаковые атрибуты, то можно говорить об определенной связи кортежей, содержащих эти атрибуты. Иначе говоря, если разные строки одной таблицы в одном из столбцов имеют одинаковые значения, то можно говорить об определенной связи этих строк. Или если в разных таблицах есть столбцы (домены) с одинаковым смыслом, то строки с одинаковыми значениями в этих столбцах оказываются связанными между собой.
Операция проекции позволяет получать отношения, состоящие из части элементов исходных отношений, ограничивая набор используемых доменов. Выборка или селекция позволяет получать отношения, содержащие только те кортежи, поля которых удовлетворяют условиям выборки. Например, можно выбрать только те кортежи, указанные домены которых имеют заданные значения атрибутов.
Совокупность всех операций над отношениями позволяет извлечь из базы данных любую интересующую информацию и сформировать ее в виде отношения (таблицы) с наперед заданными свойствами (заголовком).
Реляционной модель данных возникла не случайно, а явилась следствием необходимости оперировать с большими объемами разнообразных данных. Оказалось, что такая структура хранения данных и определенные в этой структуре операции удобны для решения широкого спектра прикладных задач. Можно предположить, что аналогичное удачное решение могла нащупать и природа в результате естественного отбора.
Реляционный подход к построению инфологической модели
Реляционная модель данных
Реляционная модель есть представление БД в виде совокупности упорядоченных нормализованных отношений.
Для реляционных отношений характерны следующие особенности.
Пример 5.1. Представим БД «Учебный процесс»в виде реляционной модели ( таблица 5.1).
а) Отношение ГРУППА | |||
---|---|---|---|
Индекс ИГ | Название группы НГ | Количество ответов КОЛ | Проходной балл ПБАЛЛ |
1 | А1 | 16 | 4,3 |
2 | А2 | 28 | 4,0 |
3 | А3 | 18 | 4,3 |
б) Отношение СТУДЕНТ | |||
Номер зачетной книжки НЗ | ИГ | Фамилия И.О. СФИО | Год рождения ГР |
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
Пример 5.2. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе ( таблица 5.2).
№ личного дела | Фамилия | Имя | Отчество | Дата рождения | Группа |
---|---|---|---|---|---|
16493 | Сергеев | Петр | Михайлович | 01.01.76 | ИСТ 11 |
16593 | Петрова | Анна | Владимировна | 15.03.75 | СК 12 |
16693 | Анохин | Андрей | Борисович | 14.04.76 | ИСТ 11 |
Понятие информационного объекта
Информационный объект определенного реквизитного состава и структуры образует класс (тип), которому присваивается уникальное имя (символьное обозначение), например Студент, Сессия, Стипендия.
Пример 5.3 В таблице 5.2 представлен пример структуры и экземпляров информационного объекта Студент.
В информационном объекте Студент ключом является реквизит Номер (№ личного дела), к описательным реквизитам относятся: Фамилия (Фамилия студента), Имя (Имя студента), Отчество (Отчество студента), Дата (Дата рождения), Группа (№ группы). Если отсутствует реквизит Номер, то для однозначного определения характеристик конкретного студента необходимо использование составного ключа из трех реквизитов: Фамилия + Имя + Отчество.
Структура | Номер | Фамилия | Имя | Отчество | Дата | Группа |
---|---|---|---|---|---|---|
Экземпляры инф.объекта Студент | 16493 | Сергеев | Петр | Михайлович | 01.01.96 | ИСТ 11 |
16593 | Петрова | Анна | Викторович | 15.03.95 | СК 12 | |
16693 | Анохин | Роман | Борисович | 14.04.96 | ИСТ 11 |
Пример 5.5 Пример представления информационного объекта Студент в виде графа на рис. 5.2.
Нормализация отношений
Понятие нормализации отношений
Одни и те же данные могут группироваться в таблицы (отношения) различными способами, т.е. возможна организация различных наборов отношений взаимосвязанных информационных объектов. Группировка атрибутов в отношениях должна быть рациональной, т.е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления.
Определенный набор отношений обладает лучшими свойствами при включении, модификации, удалении данных, чем все остальные возможные наборы отношений, если он отвечает требованиям нормализации отношений.
Первая нормальная форма
Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты простые (далее неделимы).
Преобразование отношения к первой нормальной форме может привести к увеличению количества реквизитов (полей) отношения и изменению ключа.
Вторая нормальная форма
Описательные реквизиты информационного объекта логически связаны с общим для них ключом, эта связь носит характер функциональной зависимости реквизитов.
Такое определение функциональной зависимости позволяет при анализе всех взаимосвязей реквизитов предметной области выделить самостоятельные информационные объекты.
Пример 5.6 Пример графического изображения функциональных зависимостей реквизитов Студент показан на рис. 5.3, на котором ключевой реквизит указан *.
В случае составного ключа вводится понятие функционально полной зависимости.
Третья нормальная форма
Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.
Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от первого описательного реквизита.
Требование третьей нормальной формы сводится к тому, чтобы все нёключевые поля зависели только от первичного ключа и не зависели друг от друга. Другими словами, нужно иметь возможность изменять значение любого неключевого поля, не изменяя значения любого другого поля базы данных. Это требование исключает любое поле, значения в котором получаются как результат вычислений, использующих значения других полей.
Пример 5.8 Если в состав описательных реквизитов информационного объекта Студент включить фамилию старосты группы (Староста), которая определяется только номером группы, то одна и та же фамилия старосты будет многократно повторяться в разных экземплярах данного информационного объекта. В этом случае наблюдаются затруднения в корректировке фамилии старосты в случае назначения нового старосты, а также неоправданный расход памяти для хранения дублированной информации.
Для устранения транзитивной зависимости описательных реквизитов необходимо провести «расщепление» исходного информационного объекта. В результате расщепления часть реквизитов удаляется из исходного информационного объекта и включается в состав других (возможно, вновь созданных) информационных объектов.
Пример 5.9 «Расщепление» информационного объекта, содержащего транзитивную зависимость описательных реквизитов, показано на рис. 5.4. Как видно из рис. 5.4, исходный информационный объект Студент группы представляется в виде совокупности правильно структурированных информационных объектов (Студент и Группа), реквизитный состав которых тождественен исходному объекту.
Как организована информация в реляционной базе данных
Структура реляционных баз данных
Основные термины и понятия реляционных баз данных представлены:
Файлы реляционной базы данных имеют свои особенности:
Организация информации в реляционной базе данных
Информация в реляционной базе данных организуется по следующему принципу: пары таблиц объединяются между собой при помощи совпадающих ключей (одинаковых столбцов), которые называются информационными связями. Выделяют информационные связи трех типов:
Чаще всего при работе с БД выполняются три основных правила нормализации, что относит базу данных к:
Благодаря такой организации сокращается объем избыточных данных в БД, уменьшаются затраты на ее ведение, устраняется противоречивость хранимой в базе информации и обеспечивается ее безопасность.
Узнать более подробно об организации информации в реляционных базах данных все желающие смогут в рамках профессиональной подготовки по курсу «Инструментальные средства бизнес-аналитики», которую проводит ВШБИ НИУ ВШЭ. Записаться на обучение по данному курсу можно на нашем сайте.
Реляционный подход к построению инфологической модели
Реляционная модель данных
Реляционная модель есть представление БД в виде совокупности упорядоченных нормализованных отношений.
Для реляционных отношений характерны следующие особенности.
Пример 5.1. Представим БД «Учебный процесс»в виде реляционной модели ( таблица 5.1).
а) Отношение ГРУППА | |||
---|---|---|---|
Индекс ИГ | Название группы НГ | Количество ответов КОЛ | Проходной балл ПБАЛЛ |
1 | А1 | 16 | 4,3 |
2 | А2 | 28 | 4,0 |
3 | А3 | 18 | 4,3 |
б) Отношение СТУДЕНТ | |||
Номер зачетной книжки НЗ | ИГ | Фамилия И.О. СФИО | Год рождения ГР |
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
Пример 5.2. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе ( таблица 5.2).
№ личного дела | Фамилия | Имя | Отчество | Дата рождения | Группа |
---|---|---|---|---|---|
16493 | Сергеев | Петр | Михайлович | 01.01.76 | ИСТ 11 |
16593 | Петрова | Анна | Владимировна | 15.03.75 | СК 12 |
16693 | Анохин | Андрей | Борисович | 14.04.76 | ИСТ 11 |
Понятие информационного объекта
Информационный объект определенного реквизитного состава и структуры образует класс (тип), которому присваивается уникальное имя (символьное обозначение), например Студент, Сессия, Стипендия.
Пример 5.3 В таблице 5.2 представлен пример структуры и экземпляров информационного объекта Студент.
В информационном объекте Студент ключом является реквизит Номер (№ личного дела), к описательным реквизитам относятся: Фамилия (Фамилия студента), Имя (Имя студента), Отчество (Отчество студента), Дата (Дата рождения), Группа (№ группы). Если отсутствует реквизит Номер, то для однозначного определения характеристик конкретного студента необходимо использование составного ключа из трех реквизитов: Фамилия + Имя + Отчество.
Структура | Номер | Фамилия | Имя | Отчество | Дата | Группа |
---|---|---|---|---|---|---|
Экземпляры инф.объекта Студент | 16493 | Сергеев | Петр | Михайлович | 01.01.96 | ИСТ 11 |
16593 | Петрова | Анна | Викторович | 15.03.95 | СК 12 | |
16693 | Анохин | Роман | Борисович | 14.04.96 | ИСТ 11 |
Пример 5.5 Пример представления информационного объекта Студент в виде графа на рис. 5.2.
Нормализация отношений
Понятие нормализации отношений
Одни и те же данные могут группироваться в таблицы (отношения) различными способами, т.е. возможна организация различных наборов отношений взаимосвязанных информационных объектов. Группировка атрибутов в отношениях должна быть рациональной, т.е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления.
Определенный набор отношений обладает лучшими свойствами при включении, модификации, удалении данных, чем все остальные возможные наборы отношений, если он отвечает требованиям нормализации отношений.
Первая нормальная форма
Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты простые (далее неделимы).
Преобразование отношения к первой нормальной форме может привести к увеличению количества реквизитов (полей) отношения и изменению ключа.
Вторая нормальная форма
Описательные реквизиты информационного объекта логически связаны с общим для них ключом, эта связь носит характер функциональной зависимости реквизитов.
Такое определение функциональной зависимости позволяет при анализе всех взаимосвязей реквизитов предметной области выделить самостоятельные информационные объекты.
Пример 5.6 Пример графического изображения функциональных зависимостей реквизитов Студент показан на рис. 5.3, на котором ключевой реквизит указан *.
В случае составного ключа вводится понятие функционально полной зависимости.
Третья нормальная форма
Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.
Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от первого описательного реквизита.
Требование третьей нормальной формы сводится к тому, чтобы все нёключевые поля зависели только от первичного ключа и не зависели друг от друга. Другими словами, нужно иметь возможность изменять значение любого неключевого поля, не изменяя значения любого другого поля базы данных. Это требование исключает любое поле, значения в котором получаются как результат вычислений, использующих значения других полей.
Пример 5.8 Если в состав описательных реквизитов информационного объекта Студент включить фамилию старосты группы (Староста), которая определяется только номером группы, то одна и та же фамилия старосты будет многократно повторяться в разных экземплярах данного информационного объекта. В этом случае наблюдаются затруднения в корректировке фамилии старосты в случае назначения нового старосты, а также неоправданный расход памяти для хранения дублированной информации.
Для устранения транзитивной зависимости описательных реквизитов необходимо провести «расщепление» исходного информационного объекта. В результате расщепления часть реквизитов удаляется из исходного информационного объекта и включается в состав других (возможно, вновь созданных) информационных объектов.
Пример 5.9 «Расщепление» информационного объекта, содержащего транзитивную зависимость описательных реквизитов, показано на рис. 5.4. Как видно из рис. 5.4, исходный информационный объект Студент группы представляется в виде совокупности правильно структурированных информационных объектов (Студент и Группа), реквизитный состав которых тождественен исходному объекту.
ОТНОШЕНИЯ И ИХ СВОЙСТВА. РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ.
СУБД (система управления базами данных) классифицируется по типам модели данных, один из них-реляционный.
Таблицы реляционной модели данных обладают следующими свойствами:
— каждая ячейка таблицы является одним элементом данных;
— каждый столбец содержит данные одного типа (числа, текст и т. п.);
— каждый столбец имеет уникальное имя;
— таблицы организуются так, чтобы одинаковые строки отсутствовали;
— порядок следования строк и столбцов произвольный.
Каждая таблица представляет собой отношение, описываемое атрибутами:
СТУДЕНТ = (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ).
Для идентификации записей выделяют следующие виды ключей – полей,
— первичный: однозначно определяет запись;
— вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти
Ключ может быть простым, если он включает одно поле, или составным, если
включает два и более полей. Если в отношении СТУДЕНТ нет однофамильцев, то
первичным будет простой ключ – поле ФАМИЛИЯ. Иначе первичным будет составной
ключ ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО.
Первичный ключ должен обладать следующими свойствами:
— уникальность: не должно существовать двух или более записей, имеющих одинаковые
значения полей, входящих в первичный ключ;
— не избыточность: первичный ключ не должен содержать поля, удаление которых из
ключа не нарушит его уникальность.
НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ
Нормализация отношений – это приведение отношений к виду, позволяющему устранить дублирование, обеспечить непротиворечивость данных, хранимых в БД, и уменьшить трудозатраты на ведение БД.
Выделяют несколько нормальных форм отношений. Рассмотрим первые три из них (чаще всего при разработке базы данных этого бывает достаточно).
Первая нормальная форма. Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты являются простыми, то есть не могут быть далее разделены.
Вторая нормальная форма. Отношение приведено ко второй нормальной форме, если оно находится в первой нормальной форме, и каждый не ключевой атрибут функционально полно зависит от составного ключа.
Третья нормальная форма. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме, и каждый неключевой атрибут не зависит от ключа транзитивно.