Базы данных

Ограничения, налагаемые на связи


Налагаемые на связи ограничения сужают границы применения типов связей. Ограничение кардинальности типа связи налагает ограничения на количество связей, которые могут существовать одновременно. Когда говорят, что связь имеет тип “к одному”, подразумевают, что посредством этой связи одна сущность может быть связана не более чем с одной другой сущностью. Например, связь “состоит в браке” имеет тип “один к одному”, так как один человек одновременно может состоять в браке не более чем с одним другим человеком. Задание типа связи “к одному” налагает ограничение кардинальности на экземпляры связи.

Как было ранее отмечено, каждая связь имеет две стороны (две соединяемые связью сущности). Каждое ограничение кардинальности применяется к одной стороне связи. Накладываемое на связь “состоит в браке” ограничение “один к одному” На самом деле состоит из двух ограничений. Как роль жены, так и роль мужа могут иметь кардинальность не более единицы. Для конкретного человека множество людей, для которых он является супругом (супругой), имеет кардинальность не более единицы. Вместе эти два ограничения кардинальности сторон связи образуют показатель кардинальности для типа связи “состоит в браке”. В математическом смысле множество существующих в произвольный момент времени связей формирует отображение вида “один к одному”.

Существует четыре основных типа показателей кардинальности.

 Один к одному. Сущность с каждой из сторон может участвовать не более чем в одной связи и, следовательно, иметь не более одного связанного объекта.

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

 Многие к одному. То же самое, что и “один ко многим”, но наоборот.

 Многие ко многим. Сущность с каждой из сторон может участвовать в неограниченном количестве связей.

Между которыми существует связь типа Rents. Овал в левой части содержит значения атрибута accountld нескольких сущностей класса Customer. Овал в правой части содержит значения атрибута videold нескольких сущностей класса videoTape. Прямоугольник в центре рисунка содержит несколько черных квадратов, по одному для каждой из существующих связей между клиентом и видекассетой. Как видно из рисунка, каждая связь соединяет в точности две сущности — по одной из каждого класса. Первая связь соединяет клиента 101 (Jane Block) с видеокассетой 90987 (Elizabeth). Эта связь иллюстрирует тот факт, что Jane Block взяла напрокат и еще не вернула фильм Elizabeth.

Комментарии закрыты