Модели и проектирование баз данных

Типы сущностей и обязательность связей


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

Обычно независимыми бывают сущности, представляющие реально существующие объекты ПО (ПОСТАВЩИК, ТОВАР). Сущности-ассоциации, представляющие в модели факты связей (ПОСТАВКА), всегда идентификационно зависимы.

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

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

Пример. Рассмотрим фрагмент фирмы, занимающейся прокатом видеофильмов. Фирма имеет центральную фильмотеку и сеть прокатных пунктов. Прокатные копии фильмов поступают от поставщиков в фильмотеку, а из фильмотеки попадают в фонды прокатных пунктов. База данных фирмы должна хранить (в частности) сведения:

·  о ФИЛЬМах как о произведениях киноискусства (название, режиссер, студия, год выпуска, исполнители главных ролей и т.д.);

·  об имеющихся в прокате КОПИЯх (тип носителя, год выпуска, количество прокатов, оценка состояния, признак наличия в хранилище и т.п.);

·  о ПРОКАТНЫх ПУНКТах (номер, адрес, телефон, время работы и т.д.).

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

Для того чтобы отразить этот фрагмент в концептуальной модели, мы должны определить сущности ФИЛЬМ, КОПИЯ и ПРОКАТНЫЙ ПУНКТ.
Между ними существуют связи, определяемые фразами:

«ФИЛЬМ имеется в одной или более КОПИЯх»;

«КОПИЯ передана в фонд ПРОКАТНого ПУНКТа».

В состав атрибутов сущностей ФИЛЬМ и ПРОКАТНЫЙ ПУНКТ войдут, соответственно, номер фильма

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

В состав атрибутов сущности КОПИЯ войдет атрибут номер копии, но он не может быть ключом, т.к. копии нумеруются в пределах фильма. Возможно существование нескольких экземпляров КОПИй (различных ФИЛЬМов) с одинаковыми значениями этого атрибута. Однако, КОПИЯ – потомок ФИЛЬМа в связи типа 1:М (существует много копий одного фильма, но одна копия не может быть копией нескольких фильмов). Это означает, что атрибут номер фильма входит в состав атрибутов КОПИи в качестве внешнего ключа. Подмножество атрибутов {номер копии, номер фильма} обладает свойством возможного ключа сущности КОПИЯ. Таким образом, обсуждаемая связь идентифицирующая,

а сущность КОПИЯ

– идентификационно зависимая.

Связь сущностей КОПИЯ и ПРОКАТНЫЙ ПУНКТ также специфическая. Родителем в ней выступает ПРОКАТНЫЙ ПУНКТ. Следовательно, атрибут номер прокатного пункта войдет в состав атрибутов КОПИи в качестве внешнего ключа. Экземпляры КОПИи идентифицируются вне этой связи (для того, чтобы указать на конкретную копию, не нужно знать, в каком прокатном пункте она находится). Обсуждаемая связь неидентифицирующая. Кроме того, она необязательная. В самом деле, конкретная копия может в настоящий момент не находиться ни в каком прокатном пункте, т.е. экземпляр КОПИи (потомка в этой связи) существует вне связи с каким-либо экземпляром ПРОКАТНого ПУНКТа (родителя).


Содержание раздела