Кубанский государственный университет
Опубликован: 24.12.2013 | Доступ: свободный | Студентов: 681 / 8 | Длительность: 24:28:00
Лекция 4:

Реляционная модель данных

4.11 Реляционная модель и модель сущность-связь

Мы уже освоили основы двух моделей данных — реляционной и сущность-связь. Начиная с этого раздела, каждый раз, изучив новую модель, будем устанавливать особенности её отображения в уже известные модели. Эти морфизмы позволят выработать единый взгляд на модели баз данных. Опыт преподавания показал, что только при таком подходе можно за ограниченное время освоить три и более моделей.

Займёмся теперь сравнением реляционной модели и модели сущность-связь. Прежде всего, обратим внимание на то, что обе модели работают на логическом уровне. На физическом уровне может работать только модель сущность-связь. На уровне аппаратной реализации обе модели бесполезны.

Основные отличия рассматриваемых моделей возникают из-за определения сильных и слабых сущностей и неотделимых от них идентифицирующей и неидентифицирующей связей.

При этом в ER-модели могут содержаться смыслы концептуального уровня, предназначенные только для человека и не реализуемые непосредственно в логической модели.

В расширенной ER-модели (EER-модель) определено ещё понятие категории, представляющей наследование в той мере, как его можно передать, не переходя к объектной системе. На логическом уровне принято изображать полную и неполную категории знаками, приведенными на рисунке 4.15. Вверху изображена родительская сущность, а внизу дочерние. В полной категории перечислены все потомки, а в неполной только часть. В некоторых категориях могут существовать экземпляры сущностей предка, которые не являются экземплярами сущностей потомка.

 Категория

Рис. 4.15. Категория

Для перехода на физический уровень существует три варианта. Рассмотрим их на примере с двумя потомками (рисунок 4.16):

  1. Все три сущности преобразуются в одну таблицу, содержащую столбцы, позволяющие отметить, к какой из исходных сущностей относится строка таблицы.
  2. Все сущности преобразуются каждая в свою таблицу
  3. Промежуточный вариант, в котором создаются две таблицы, соответствующие двум потомкам.
 Сущности, связанные категорией на физическом уровне

Рис. 4.16. Сущности, связанные категорией на физическом уровне

Выбор варианта преобразования зависит от запросов, которые собираются выполнять.

Сильные и слабые сущности можно представить в реляционной модели через внешний ключ, входящий в состав первичного ключа или отнесённый к неключевым атрибутам. Атрибуты внешнего ключа должны совпадать с атрибутами первичного ключа другого отношения, по крайней мере, по типам, а возможно, и по именам.

Сильная сущность отличается тем, что внешний ключ не может входить в состав первичного ключа. Слабая сущность должна содержать внешний ключ в своём первичном ключе. Это обстоятельство и определяет зависимость слабой сущности от другой, связываемой с ней, сущности.

В ER-модели связь называют неидентифицирующей, если она переносит внешний ключ в область неключевых атрибутов. Идентифицирующая связь перенесёт внешний ключ в область ключевых атрибутов.

Неразрывность понятий сильной и слабой сущностей с неидентифици-рующей и идентифицирующей связями в реляционной модели выразить невозможно, так как отсутствует понятие агрегации, объединения отношений в структуру высшего порядка.

В следующей главе мы используем найденные соответствия для того, чтобы теорию нормализации, первоначально созданную в рамках реляционной модели, перенести в диаграммы "сущность-связь".

4.12 Отношения и таблицы

В настоящее время реляционная модель играет роль эталона и не используется в реализациях баз данных. Одна из причин в том, что построение запросов очень часто требует выполнения декартова произведения в качестве промежуточной операции. Для больших таблиц это приводит к созданию громадных промежуточных отношений и сильно замедляет запросы.

В реализациях баз данных на физическом уровне отношениям соответствуют плоские (реляционные) таблицы, которые имеют одну одноуровневую шапку и атомарные значения в ячейках таблицы. Кортежам отношения соответствуют строки таблицы.

Существует соответствие кортежей отношения строкам представляющей его таблицы. Поскольку строки реляционных таблиц могут повторяться, то взаимно однозначного соответствия из таблицы в отношение не существует.

Пример реляционной таблицы приведен на рисунке 4.17.

 Реляционная таблица

Рис. 4.17. Реляционная таблица

Мы уже установили, что состояние отношения определяется набором входящих в него кортежей. Ещё раз отметим, что состояние отношения в реляционной теории не рассматривается. Пример состояния отношения "Сотрудники" :

Сотрудники: \begin{array}{|c|c|c|c|} \hline ТАБ\_НОМЕР & ФАМИЛИЯ & ЗАРПЛАТА & НОМЕР\_ОТДЕЛА \\ \hline 1 & Иванов & 1000 & 10 \\  \hline 2& Петров & 2000 & 20   \\ \hline 3 & Сидоров & 3000 & 10  \\ \hline \end{array}

Ниже приведен пример нереляционной таблицы с двумя шапками, верхней и боковой:

Прибыль: \begin{array}{|c|c|c|} \hline Отдел/Год & 2000 & 2001 \\ \hline Производственный & 1134 & 7545 \\  \hline Торговый & 0 & 17555 \\ \hline \end{array}

Самостоятельно преобразуйте её в реляционную таблицу.

Основные отличия таблиц от отношений:

  • В отношении нет одинаковых кортежей. Таблицы без первичного ключа могут содержать одинаковые строки. Если, например, в таблице "сотрудник" выбирается единственный столбец "но-мер_отдела", то в таблице-результате часть строк будет повторена. Устранение повторов может изменить смысл полученного результата.
  • Тело отношения есть множество, и потому кортежи не упорядочены. Строки таблиц могут быть упорядочены. В этом случае отношение можно реализовать таблицами, отличающимися порядком строк.
  • Атрибуты отношения определяются с уникальными в пределах отношения именами и потому не нуждаются в упорядочении. Столбцы таблиц могут быть упорядочены. Одно отношение можно реализовать таблицами со столбцами, записанными в разном порядке. В реализациях порядок столбцов может влиять на быстродействие, хотя и незначительно.
  • Отношения не имеют метрических свойств. Для таблиц они важны. Размеры столбцов и число строк определяют быстродействие запросов и инструкций манипуляции данными.

Таблица 4.2 — это краткий словарь перевода с языка реляционной модели на язык табличной модели.

Таблица 4.2. Соответствие терминов реляционной и табличных моделей
Термин реляционной модели Термин табличной модели
Схема базы Схема базы
Создание схемы базы
Ввод строки
Обновление строки
Удаление строки
Отношение Таблица (реляционного типа)
Заголовок отношения Заголовок таблицы
Тело отношения Тело таблицы
Атрибут отношения Столбец таблицы
Кортеж отношения Строка таблицы
Арность отношения Количество столбцов
Типы данных и домены Типы данных и домены
Ширина столбца
Количество строк
Размер таблицы
Время исполнения

Обратите внимание на то, что в реализациях появляются команды определения и манипулирования данными "создание схемы", "ввод строки" и т.д. Вводится несколько терминов, позволяющих охарактеризовать размеры базы и быстродействие запросов "ширина столбца", "количество строк" и т.д. Это требует изучения и учёта ещё одного уровня модели, который мы в разделе 1.3 условно назвали уровнем аппаратной реализации.