Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Моделирование баз данных. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
851 Кб
Скачать

1.4.1. Ключевые атрибуты

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

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

Таким образом, ключ для множества сущностей Е – это множество F, состоящее из одного или более атрибутов множества Е, такое, что при выборе из Е любых двух различных сущностей е1 и е2 последние не могут обладать одинаковыми значениями атрибутов, относящихся к множеству F [3].

Основные требования при моделировании базы данных [3]:

каждое множество сущностей должно обладать определенным ключом;

ключ может состоять более чем из одного атрибута;

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

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

виерархии, располагает соответствующими компонентами.

Рассмотрим на примерах приведенные требования.

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

Ключ, состоящий из двух атрибутов – ФАМИЛИЯ и ИМЯ, тоже неэффективен, так как возможно совпадения и двух атрибутов одновременно.

31

Более уместно создать ключ на основе трех атрибутов – ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО. Разумеется, вероятность совпадения фамилия, имени и отчества все еще существует, но она довольно мала.

Ключом для множества сущностей ГРУППЫ может быть атрибут НАЗВАНИЕ, поскольку двух групп с одинаковым названием не бывает в пределах одного вуза.

Однако нельзя столь же категорично утверждать, что сущность дисциплина однозначно определяется атрибутом НАЗВАНИЕ, так как дисциплина может изучать в течении нескольких семестров и количество часов, отводимых на изучение дисциплины для соответствующих видов занятий, в разных семестрах может быть разным. Поэтому для множества сущностей ДИСЦИПЛИНЫ можно предложить ключ на основе двух атрибутов – ИМЯ и СЕМЕСТР.

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

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

Пример 20. Введем во множестве сущностей СТУДЕНТЫ дополнительный атрибут НОМЕРСТ, который может быть номером зачетной книжки студента. Атрибут НОМЕРСТ станет ключевым в данном множестве и заменит ключевую совокупность атрибутов ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО.

32

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

Пример 21. На рис. 16 воспроизведена диаграмма 6. В качестве ключевого атрибута для множества сущностей ГРУППЫ выбран атрибут НАЗВАНИЕ (пример 19), для множества сущностей ДИСЦИПЛИНЫ атрибуты ИМЯ и СЕМЕСТР (пример 19), а для множества сущностей СТУДЕНТЫ – НОМЕРСТ (пример 20).

НАЗВАНИЕ НОМЕРСТ ФИО

ГРУППЫ

Состоят

СТУДЕНТЫ

 

КОЛИЧЕСТВО

 

АДРЕС

ДР

 

 

 

Изучают

ИМЯ

СЕМЕСТР

 

 

ДИСЦИПЛИНЫ

 

ЛК

ПР

ЛБ ОТЧЕТ

Рис. 16. ER-диаграмма с ключевыми атрибутами

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

1.4.2. Ограничения уникальности

Важным свойством некоторого объекта базы данных иногда является то, что он может описываться не более чем одним значением. Так, например, конкретной сущности студент соответствуют строго определенные значения атрибутов НОМЕРСТ (номер зачетной книжки студента), ФИО (фамилия, имя, отчество), ДР (дата рождения) и АДРЕС (по прописке).

33

Существует несколько ситуаций, в которых ограничения уникальности проявляют себя в рамках ER-модели [3]:

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

Пример 22. Предположим, что адрес некоторого студента не занесен в базу данных, например, в случае смены места жительства. Значением атрибута АДРЕС в таком случае могло бы быть 0 или NULL (неопределенное значение).

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

НОМЕРСТ нельзя.

Требование о том, что некоторый атрибут может иметь неопределенное значение вида NULL, в ER-модели не имеет специальных средств представления. Если необходимо описать подобное ограничение, можно снабдить атрибут дополнительным текстовым пояснением;

связь R типа «многие к одному», соединяющая множества сущностей Е

иF в направлении от Е к F, подразумевает наличие ограничения уникальности. Другими словами, для каждой сущности е множества сущностей Е имеется не более одной связанной с ней сущности f множества сущностей F;

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

1.4.3. Ограничения ссылочной целостности

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

34

Пример 23. Рассмотрим связь «Состоят», соединяющую множества сущностей ГРУППЫ и СТУДЕНТЫ (см. рис. 16). Связь «Состоят» относится к типу «многие к одному» и предполагает, что ни один из студентов не может принадлежать нескольким группам одновременно. Связь – в том виде, как она задана – отнюдь не подразумевает, что студент принадлежит какой-либо группе, а если это и так, группа вовсе не обязана быть представлена во множестве сущностей ГРУППЫ.

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

Существует несколько способов поддержки условий ссылочной целостности. Рассмотрим их на примере связи «Состоят»:

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

При этом если значение экземпляра данной связи группа для конкретного студента изменяется, то необходимо гарантировать, что новое значение группы также является сущностью множества ГРУППЫ;

следует запретить удаление сущностей множества ГРУППЫ, адресуемых сущностями множества СТУДЕНТЫ. Другими словами, некоторая сущность группа не может быть удалена до тех пор, пока имеются сущности студенты, которые на нее ссылаются;

если сущность множества ГРУППЫ удаляется, то должны быть удалены также все сущности множества СТУДЕНТЫ, ссылающиеся на нее.

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

Предположим, что R – это связь, соединяющая множества сущностей Е и F в направлении от Е к F. Тогда полукруглая стрелка, указывающая на F, не только свидетельствует о том, что связь, соединяющая множества Е и F, относится к типу «многие к одному» или «один к одному», но и отображает требование обязательного наличия в F сущности, на которую ссылается определенная сущность из Е. Те же соображения применимы и к случаю, когда R соединяет между собой более двух множеств сущностей [3].

Обычная стрелка между связью типа «... к одному» и множеством сущностей равнозначна ограничению вида «<= 1», а полукруглая стрелка, применяемая для обозначения условий ссылочной целостности, т.е. равнозначна ограничению вида «= 1».

35

Пример 24. На диаграмме рис. 17 указаны несколько ограничений ссылочной целостности, заданных для связей «Состоят» и «Курирует», которые соединяют множества сущностей СТУДЕНТЫ, ГРУППЫ и КУРАТОРЫ. Названные связи и множества сущностей были впервые введены на рис. 5 и рис. 6.

Полукруглая стрелка, соединяющая связь «Состоят» с множеством сущностей ГРУППЫ, выражает ограничение ссылочной целостности, которое подразумевает, что каждым студент учится только в одной определенной группе и соответствующая сущность группа обязана присутствовать в составе множества сущностей ГРУППЫ.

Полукруглая стрелка, указывающая на множество сущностей ГРУППЫ со стороны связи «Курирует», обозначает ограничение ссылочной целостности, которое заключается в том, что каждый куратор курирует одну группу и соответствующая сущность группа должна присутствовать во множестве сущностей ГРУППЫ.

ГРУППЫ

Состоят

Курирует

СТУДЕНТЫ

КУРАТОРЫ

Рис. 17. ER-диаграмма

с обозначениями ограничений ссылочной целостности

При этом связь «Курирует» по-прежнему соединена с множеством сущностей КУРАТОРЫ обычной стрелкой, поскольку она отображает вполне естественную закономерность взаимоотношений сущностей куратор и группа. Когда группа заканчивает обучение на первых двух курсах, то ей куратор становится не нужен, поэтому соответствующая сущность куратор должна быть удалена из множества сущностей КУРАТОРЫ. В этом и заключается применение ограничения ссылочной целостности.

С другой стороны, удаление сущности куратор не должно оказывать влияния на содержимое множества сущностей ГРУППЫ, поскольку группа продолжает обучаться далее, но уже без руководителя. Поэтому связь «Курирует» и множество сущностей КУРАТОРЫ соединены обычной стрелкой: каждая группа может возглавляться не более чем одним куратором, а на старших курсах кураторы не нужны.

36

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

1.4.4. Ограничения домена

Ограничения домена предполагают, что значения атрибута должны выбираться из определенного конечного множества или принадлежать ограниченному диапазону изменения [3].

Простой пример использования ограничений домена связан с объявлением типа атрибута. Например, значение атрибута СЕМЕСТР множества сущностей ДИСЦИПЛИНЫ должно быть задано в виде целого числа, принадлежащего интервалу от 1 до 8.

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

Пример 25. Например, одна сущность группа должна быть соединена не более чем с восемнадцатью сущностями студент. ER-модель позволяет включить в диаграмму соответствующее ограничивающее значение в виде текстового примечания к связи (рис. 18).

 

Состоят

<=18

ГРУППЫ

СТУДЕНТЫ

Рис. 18. Ограничение на количество сущностей множества СТУДЕНТЫ

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

1.5. СЛАБЫЕ МНОЖЕСТВА СУЩНОСТЕЙ

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

37

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

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

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

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

из подмножества (возможно, пустого) собственных атрибутов;

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

живающими связями для множества Е.

Чтобы некоторую связь R типа «многие к одному», соединяющую множества сущностей Е и F в направлении от Е к F, можно было отнести к числу поддерживающих связей для множества Е, должны выполняться следующие условия [3]:

cвязь R должна быть бинарной связью типа «многие к одному», направленной от Е к F;

связь R должна предусматривать реализацию ограничения ссылочной целостности в направлении от Е к F. Другими словами, для каждой Е-сущности следует обеспечить наличие в базе данных соответствующей F-сущности, с которой Е-сущность соотносится посредством связи R, т.е. на диаграмме связь R с F должна быть обозначена полукруглой стрелкой;

атрибуты, предоставляемые множеством F для образования ключа множества Е, должны быть ключевыми для F;

если F также является слабым множеством сущностей, тогда некоторые или все ключевые атрибуты, поставляемые множеству Е, должны быть ключе-

38

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

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

Пример 26. Рассмотрим некоторую сущность, принадлежащую слабому множеству сущностей СТУДЕНТЫ.

Каждая сущность студент должна быть уникальной, чтобы ее можно было отличить от другой даже в том случае, если студенты обладают одним порядковым номером, но относятся к разным группам, т.е. атрибут НОМЕРАСТ не однозначно определяет каждого студента. Следует добавить в ключ один или несколько атрибутов для обеспечения уникальности сущностей множества СТУДЕНТЫ. К числу уникальных значений, связанных с сущностями студент, относятся:

значения атрибутов самого множества сущностей СТУДЕНТЫ;

значения, которые можно получить на основе связей множества сущностей СТУДЕНТЫ с другими множествами. Каждая такая связь должна относиться к типу «многие к одному» или «один к одному» и соединять множество сущностей СТУДЕНТЫ с некоторым множеством сущностей F, а заимствованные атрибуты из множества сущностей СТУДЕНТЫ обязаны участвовать в образовании ключа множества F.

При обозначении на ER-диаграмме слабых множеств сущностей, их ключевых атрибутов и поддерживающих связей действуют в соответствии со следующими правилами [3]:

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

поддерживающие связи типа «многие к одному» для слабых множеств сущностей обозначают двойными ромбами;

39

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

Пример 27. На диаграмме рис. 19 представлено соединяющее множество сущностей ЖУРНАЛ, заменяющее собой одноименную тернарную связь, которая была рассмотрена в примере 8 (см. рис. 7). Множество ЖУРНАЛ не обладает собственными атрибутами. Уникальная сущность журнал определяется совокупностью значений ключевых атрибутов НОМЕРСТ множества СТУДЕНТЫ, НАЗВАНИЕ множества ГРУППЫ и атрибутов ИМЯ и СЕМЕСТР множества ДИСЦИПЛИНЫ.

ЖУРНАЛ

Числятся

Состоят

Изучаются

 

СТУДЕНТЫ

ГРУППЫ

ДИСЦИПЛИНЫ

ФИО

НАЗВАНИЕ

ИМЯ

ЛК

 

 

НОМЕР

 

 

 

СТ

 

СЕМЕСТР

ЛК

АДРЕС

 

 

 

 

КОЛИЧЕСТВО

 

 

 

 

 

ЛК

ДР

 

 

 

 

 

 

ОТЧЕТ

Рис. 19. Слабое соединяющие множеств сущностей ЖУРНАЛ

 

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

Пример 28. Связь «Изучаются» на рис. 19 возможно не является поддерживающей связью для множества сущностей ЖУРНАЛ, так как каждой сущности группа соответствует строго определенная сущность дисциплина, определяемая не показанной здесь связью «Изучают» (см. рис. 6), которая соединяет

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]