Материал: Базы данных и их безопасность. Плотников Д.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько

представителей сущности В.

 

 

 

 

 

 

 

 

 

1

 

 

М

 

 

 

 

 

 

 

А

 

 

 

 

 

В

 

 

 

 

 

 

 

АВ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Назна-

 

 

 

 

 

 

 

Квартира

 

1

 

 

 

 

М

Жилец

 

 

 

 

 

 

 

 

чение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Квартира может пустовать, в ней может жить один или несколько жильцов.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N).

Пример: Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможных представления такой связи:

1. Традиционный брак

Мужчины

1

Брак

1

Женщины

 

 

 

 

 

 

 

 

1

 

2.

Многоженство

 

 

 

1

 

Мужчины

Брак

 

 

 

 

 

 

 

 

 

3.

Многомужие

 

 

 

М

 

Мужчины

Брак

 

 

 

 

 

 

 

 

 

4.

Групповой брак

 

 

 

М

 

Мужчины

Брак

 

 

 

 

 

 

 

 

 

М

1 Женщины

1

1 Женщины

М

Женщины

21

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

Пример:

Множество связей между одними и теми же сущностями

Лечащий

врач

1

М

Врач

N

Пациент

Консуль-

T

тант

 

(пациент, имея одного лечащего врача, может иметь также несколько врачей-консультантов; врач может быть лечащим врачом нескольких пациентов и может одновременно консультировать несколько других пациентов);

Тренарные связи

 

М

 

Врач

 

Назнач

 

 

енный

 

 

 

 

анализ

 

 

М

1 Анализы

P

Пациент

Если экземпляры данной сущности должны участвовать в связи, то участие называется обязательным, в противном случае – необязательным. В первом случае этот факт отмечается маленьким черным кружком, помещенным в блок, смежный с блоком сущности, во втором случае кружок помещают вне блока.

22

Пример:

а)

1

1

Автор

1 Пишет

б)

1

 

1

Автор

Пишет

1

в)

1

 

1

Автор

Пишет

1

г)

1

 

1

Автор

Пишет

1

Книгу 1

Книгу

Книгу

Книгу

а) каждый автор пишет не более одной книги, и каждая книга пишется не более, чем одним автором

б) каждый автор пишет одну и только одну книгу, и каждая книга пишется не более, чем одним автором

в) каждый автор пишет не более одной книги, но каждая книга пишется одним и только одним автором.

г) каждый автор пишет одну и только одну книгу, и каждая книга пишется одним и только одним автором.

Аналогичные схемы можно привести в случае связей один ко многим, многие к одному и многие ко многим.

При разработке концептуальной модели данных могут иметь место проблемы ER-моделирования. Эти проблемы

23

принято называть ловушками соединения (разветвления или разрыва).

Ключи

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

ПОТЕНЦИАЛЬНЫЙ КЛЮЧ – это атрибут или набор атрибутов, который уникально идентифицирует каждый экземпляр сущности данного типа

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

ПЕРВИЧНЫЙ КЛЮЧ – это потенциальный ключ, который выбран в качестве первичного ключа.

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

СОСТАВНОЙ КЛЮЧ – это потенциальный ключ, который состоит из двух или более атрибутов

Внешние ключи.

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

Если сущность В обозначает сущность А, то она должна включать внешний ключ, соответствующий первичному ключу сущности А.

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

24

1.Может ли данный внешний ключ принимать неопределенные значения (NULL-значения)? Иначе говоря, может ли существовать некоторый экземпляр сущности данного типа, для которого неизвестна целевая сущность, указываемая внешним ключом? В случае поставок это, вероятно, невозможно – поставка, осуществляемая неизвестным поставщиком, или поставка неизвестного продукта не имеют смысла. Но в случае с сотрудниками такая ситуация, однако могла бы иметь смысл – вполне возможно, что какой-либо сотрудник в данный момент не зачислен вообще ни в какой отдел. Заметим, что ответ на данный вопрос не зависит от прихоти проектировщика базы данных, а определяется фактическим образом действий, принятым в той части реального мира, которая должна быть представлена в рассматриваемой базе данных. Подобные замечания имеют отношение и к вопросам, обсуждаемым ниже.

2.Что должно случиться при попытке УДАЛЕНИЯ целевой сущности, на которую ссылается внешний ключ? Например, при удалении поставщика, который осуществил по крайней мере одну поставку. Существует три возможности:

КАСКАДИРУЕТСЯ – операция удаления «каскадируется» с тем, чтобы удалить также поставки этого поставщика.

ОГРАНИЧИВАЕТСЯ– удаляются лишь те поставщики, которые еще не осуществляли поставок. Иначе операция удаления отвергается.

УСТАНАВЛИВАЕТСЯ – для всех поставок удаляемого поставщика NULL-значение внешний ключ устанавливается в неопределенное значение, а затем этот поставщик удаляется. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.

3.Что должно происходить при попытке ОБНОВЛЕНИЯ первичного ключа целевой сущности, на которую ссылается некоторый внешний ключ? Например, может быть предпринята попытка обновить номер такого поставщика, для которого

25

Источник: https://studfile.net/preview/16563653/