Связи. Мощность, полнота, размерность связи. Ключи | ||||||||||||||||||||||||||||||||
Связь так же является отношением и строится на сущности.
3-х местный кортеж <1, Анохин А.Н., Зав. каф.>
Имеем 2 множества. Строим декартовое произведение: преподаватель · дисциплина = {<<1, Анохин А.Н., Зав.каф.>, <ОПД.Ф.8, Базы данных>, …, <3, Пляскин А.В., Доцент>, <ОПД.Ф.5, Операционные системы>>}. Всего 9 кортежей. Кортежи 1,2,5,9 имеют место.
Такое отношение, определяемое на сущностях – связь. Ее название – смысл связи. Ведёт
![]() Как и любое отношение связь можно представить в виде таблицы.
![]()
![]() Диаграмма «сущность-связь» (ER - Entity Relationship). Существуют 2 структурные нотации:
В нотации Чена сущность – прямоугольник с названием внутри; атрибут – овал с названием внутри. В ER обязательно должны быть описаны элементы: атрибуты, сущности и связи.
![]() Связи характеризуются 3-мя свойствами:
Любое из этих сочетаний имеет право на существование.
|
||||||||||||||||||||||||||||||||
![]() Один экземпляр из одной сущности может быть связан с несколькими экземплярами другой сущности, но не наоборот.
![]() Является наиболее распространённым типом связи.
![]() |
||||||||||||||||||||||||||||||||
Мощность, которая не накладывает никакие ограничения. Один экземпляр сущности может быть связан с множеством экземпляров другой сущности и наоборот.
![]() ![]() ![]() |
||||||||||||||||||||||||||||||||
Один экземпляр одной сущности может быть связан не более чем с одним экземпляром другой сущности и наоборот.
![]() ![]() ![]() Применяется в двух случаях:
|
||||||||||||||||||||||||||||||||
Полнота – возможность существования в сущности экземпляра, не связанного ни с одним экземпляром другой сущности.
Существуют 3 градации полноты связи:
Для отображения полноты и мощности связи на схемах используют кардинальные числа.
|
||||||||||||||||||||||||||||||||
Кардинальные числа используются парами:
![]() Nmin = {0;1};
Nmax = {1;N}.
Для полной спецификации используются две пары кардинальных чисел, которые определяют интервал для количества экземпляров, которые могут быть связаны с экземплярами другой сущности.
![]() В нотации Баркера связь примыкает к сущности. Нижнее кардинальное число: 0 или 1; верхнее – «—», если 1, и
![]() |
||||||||||||||||||||||||||||||||
Размерность – количество сущностей, на которых определена связь. Размерности бывают: унарные, бинарные, тернарные, …, n-арные.
|
||||||||||||||||||||||||||||||||
Имеются атрибуты:
Есть ряд атрибутов, которые присущи либо определённому виду сущности, либо всем видам сущности. Специфические атрибуты выносятся в отдельные сущности.
![]() Такая связь бывает исключающая или неисключающая (полная или неполная). Полная – сумма экземпляров сущности = числу работников (имеется информация о каждом работнике). Неполная – имеется информация не о всех работниках.
|
||||||||||||||||||||||||||||||||
Связь направленная (обычно бинарная связь), если из двух связываемых сущностей явно выделяются зависимая и независимая сущности.
![]() В связи 1:N независимая сущность всегда с мощностью 1. Это всегда направленная связь.
![]() В связи 1:1 зависимость сущностей определяется по смыслу. Может быть направленной или ненаправленной.
Связь N:M всегда ненаправленная.
![]() |
||||||||||||||||||||||||||||||||
![]() ![]() Добавляем к студенту шифр группы.
|
||||||||||||||||||||||||||||||||
Ключ – комбинация атрибутов, однозначно идентифицирующих каждый экземпляр сущности (каждую строку таблицы, каждую запись файла). Значения комбинации атрибутов должны быть уникальными для каждого экземпляра сущности (в пределах одной сущности).
Чаще всего ключ состоит из одного атрибута – это простой ключ. Ключ, состоящий из нескольких атрибутов, – составной (сложный).
Ключ, который состоит из минимально возможного набора атрибутов, – неизбыточный ключ.
![]() Понятие избыточности ключа является относительным.
|
||||||||||||||||||||||||||||||||
Ключ обязателен далеко не для всех сущностей, т.е. могут быть сущности, для которых ключ не задан. Бывают сущности, для которых имеются несколько ключей. Если в одной сущности может быть несколько ключей, то они оказываются возможными ключами (ключи-кандидаты, потенциальные ключи). Выделяют ключ, по которому сущность будет идентифицироваться – первичный ключ (Primary Key), остальные ключи – альтернативные.
Правила:
|
||||||||||||||||||||||||||||||||
Нужно взять ключ из основной сущности и добавить его в зависимую. В зависимую сущность добавляется первичный ключ из основной сущности. Это называется миграцией ключа.
![]() Добавленный ключ играет определенную роль в зависимой сущности. Он называется внешним ключом - FK (Foreign Key). Внешних ключей в одной сущности может быть несколько.
|
||||||||||||||||||||||||||||||||
Hаправленность связи зависит от смысла: от основной сущности к зависимой. Существует способ объединения таблиц, но это не всегда рационально.
Правила реализации:
|
||||||||||||||||||||||||||||||||
![]() Создается таблица с названием связи. В таблицу «ведёт» мигрируют первичные ключи из обеих связываемых сущностей. Связь с дополнительным атрибутом является новой сущностью.
![]() Связь идентифицирующая, когда в зависимой сущности первичный ключ образуется из собственного атрибута (атрибут сущности) и внешнего ключа.
|