Ограничения целостности в модели сущность-связь

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

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

1. Ограничения на допустимые значения в множестве значений.

Атрибут отображает сущность из множества сущностей на множество значений. Допустимые значения определяются значениями в соответствующем множестве значений. Например, определено множество сущностей СОТРУДНИК с атрибутами Возраст и Стаж работы (Рис. 3.11). Оба атрибута определены на домене КОЛИЧЕСТВО ЛЕТ, для которого определено следующее условие принадлежности: целые числа большие 0 и меньшие 70. Соответственно, значения указанных атрибутов будут черпаться из диапазона чисел 0 – 70.

Рис. 3.11. Ограничения на допустимые значения

2. Ограничения на разрешенные значения некоторого атрибута.

В некоторых случаях не все допустимые значения из множества значений являются разрешенными для некоторых атрибутов. Например, для того же множества сущностей разрешенное значение атрибута Возраст может быть определено условием: возраст сотрудника не менее 17 и не более 70 лет. Данное ограничение задается с помощью утверждения на естественном языке (возраст любого сотрудника не может быть менее 17 и более 70 лет) или предиката: Возраст (е) >= 17 И Возраст (e) <= 70 | для любого e ∈ СОТРУДНИК

3. Ограничения на существующие значения в базе данных.

Здесь можно выделить две ситуации:

a. ограничения на конкретные значения

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

Отчисления (e) < Зарплата (e) | для любого e ∈ СОТРУДНИК

Другой пример. Некоторое предприятие состоит из нескольких отделов. Определены множества сущностей ПРЕДПРИЯТИЕ с атрибутом Бюджет и ОТДЕЛ также с атрибутом Бюджет; определен общий бюджет предприятия, в соответствии с которым определяются бюджеты отделов. Определяется условие: бюджет предприятия не должен быть меньше суммы бюджетов отделов:

Бюджет (e1) >= Σ Бюджет (e2i) | для любого e1 ∈ ПРЕДПРИЯТИЕ И всех e2 ∈ ОТДЕЛ предприятия e1

a. ограничения на множества значений

Этот тип ограничений позволяет определить условия принадлежности сущностей какому-то множеству в зависимости от существования каких-либо сущностей в другом множестве. Например, пусть определено множество сущностей СТУДЕНТ с атрибутом Имя, и нужно определить множество сущностей РАБОТАЮЩИЙ СТУДЕНТ также с атрибутом Имя. Второе множество сущностей является подмножеством первого:

Имя (e) |для любого e ∈ РАБОТАЮЩИЙ СТУДЕНТ входит в Имя (e) | e ∈ СТУДЕНТ

1. Расширенная модель данных сущность-связь: нотация IDEF1x

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

Основными структурными компонентами остаются сущности и связи.

Сущность также представляется прямоугольником. Регулярное отношение сущности модели П.Чена в IDEF1x называется сущностью, независимой по идентификации, и представляется прямоугольником с прямыми углами. Слабое отношение сущности в IDEF1x называется сущностью, зависимой по идентификации, и представляется прямоугольником с закругленными углами. И в том, и в другом случае название сущности задается существительным в единственном числе и помещается над прямоугольником; кроме того, сущности присваивается дополнительно идентификационный номер в виде E n (Entity), где n – порядковый номер сущности в разрабатываемой модели базы данных. Внутри прямоугольника размечаются атрибуты сущности. Область атрибутов делится по вертикали на две части; в верхней части записываются атрибуты первичного ключа, в нижней – все прочие атрибуты. Экземпляры сущности, зависимой по идентификации, идентифицируются с учетом связи. Если для сущности определены дополнительные ключи, они определяются как альтернативные и помечаются аббревиатурой AK m. n (Alternative Key), где m – номер альтернативного ключа, n – номер атрибута в составе данного ключа. Например, регулярное отношение сущности СОТРУДНИК с атрибутами Табельный номер (первичный ключ), Фамилия И.О., Серия и Номер паспорта (составной ключ), ИНН (еще один ключ), Дата рождения и Адрес в нотации IDEF1x будет представлена следующим образом (Рис. 3.12):

Рис. 3.12. Представление сущности в нотации IDEF1x

В IDEF1x, в отличие от модели П.Чена, определены только бинарные связи. Каждая бинарная связь именуется (определяется) глаголом или глагольной фразой. Именование бинарной связи осуществляется для двух отображений. Имена связей выбираются таким образом, чтобы можно было составить осмысленную фразу, включив в нее имя первой сущности, вовлеченной в связь, имя связи и имя второй сущности. Например, если между сущностями СОТРУДНИК и ОТДЕЛ определена связь, отражающая тот факт, что сотрудник зачислен в отдел, для такой связи можно сформулировать следующие два отображения:

• Отдел состоит из нуля или более сотрудников;

• Сотрудник зачислен в один отдел.

В данном примере связь получает имя "состоит из / зачислен в".

Допускается представление связей типа 1: n и n: n. Связи типа 1: n в IDEF1x называются определенными связями, типа n: n – неопределенными. Неопределенные связи могут быть использованы только на начальных этапах проектирования схемы базы данных и представляются линиями с жирными точками на двух концах связи (Рис. 3.13). В окончательном варианте все неопределенные связи должны быть заменены определенными в соответствии с правилами, установленными в IDEF1x.

Рис. 3.13. Представление в IDEF1x неопределенной связи

В определенной связи сущность, находящаяся на конце связи "один", называется родительской, на конце "много" – дочерней. Определенная связь именуется только для одного отображения – родительской сущности в дочернюю. В дочерней сущности появляются специальные атрибуты, представляющие связь – внешний ключ, помеченный аббревиатурой FK m. n (Foreign Key), где m – номер внешнего ключа (одна сущность может участвовать в нескольких связях), n – номер атрибута в составе внешнего ключа (для составных ключей). Атрибуты внешнего ключа в дочерней сущности появляются в результате миграции (передачи) по связи атрибутов первичного ключа родительской сущности.

В IDEF1x различаются следующие разновидности определенной связи.

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

Пусть, например, определены сущности СОТРУДНИК (см. пример на рис. 3.11), ОТДЕЛ с атрибутами Номер отдела (первичный ключ) и Название (ключ), и ДОЛЖНОСТЬ с атрибутами Код должности, Квалификация (составной первичный ключ), Название должности, Оклад. Между сущностями ОТДЕЛ и СОТРУДНИК определена связь "состоит из / зачислен в", а между сущностями СОТРУДНИК и ДОЛЖНОСТЬ – связь "замещает / замещается":

• Должность замещается нулем или более сотрудников;

• Сотрудник замещает одну (конкретную) должность.

Сотрудник обязательно должен быть зачислен в отдел и должен замещать определенную должность. Такие связи представляются следующей диаграммой (Рис. 3.14):

Рис. 3.14. Представление определенной не идентифицирующей обязательной связи

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

Рассмотрим пример. Пусть определены сущности КЛАСС с атрибутами Год обучения, Группа (составной первичный ключ), Дата формирования, Категория, и УЧИТЕЛЬ с атрибутами Личный номер (первичный ключ), Фамилия И.О., Ставка. Между этими сущностями определена связь "назначен классным руководителем / имеет классного руководителя":

• Учитель назначен классным руководителем в нуль или более классов;

• Класс имеет одного классного руководителя или не имеет классного руководителя.

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

Рис. 3.15. Представление определенной не идентифицирующей необязательной связи

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

Пусть, например, определена сущность СОТРУДНИК в соответствии с примером, приведенным на рис. 3.11, и сущность ЧЛЕН БРИГАДЫ с атрибутами Табельный номер сотрудника, Номер бригады, Дата зачисления в бригаду, Дата отчисления из бригады. Между этими сущностями определена связь "является / является":

• Сотрудник является членом нуля или более бригад;

• Член бригады является сотрудником.

Для идентификации экземпляра сущности ЧЛЕН БРИГАДЫ необходимо учитывать связь между этими сущностями (Рис. 3.16).

Рис. 3.16. Представление определенной идентифицирующей обязательной связи

Кроме определенной и неопределенной связей, в IDEF1x существует еще один тип связи – категория. Этот тип связи устанавливает тот факт, что одно множество сущностей является подмножеством другого. Рассмотрим, например, представление сотрудников некоторого учебного подразделения (кафедры). Сотрудники кафедры могут быть штатными сотрудниками или совместителями. Тогда множества сущностей ШТАТНЫЙ СОТРУДНИК и СОВМЕСТИТЕЛЬ являются подмножествами множества сущностей СОТРУДНИК и, следовательно, вступают в связь типа категория. Сущность, вовлеченная в такую связь и определяющая полное множество, называется родовой сущностью (в данном примере сущность СОТРУДНИК – родовая сущность). Сущности, определяющие подмножества, называются сущностями типа категория. Сущности типа категория идентифицируются точно так же, как и родовая сущность, и поэтому являются зависимыми по идентификации. В родовую сущность должен быть включен атрибут, позволяющий определить, к какой сущности типа категория относится каждый экземпляр родовой сущности (дискриминатор категории; например, в приведенном выше примере в родовой сущности СОТРУДНИК будет определен атрибут – дискриминатор категории Тип сотрудника).

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

Одна и та же сущность может быть определена как родовая в нескольких связях типа категория. Например, кроме приведенной выше классификации сотрудников кафедры можно использовать еще и следующую: сотрудник является преподавателем или относится к учебно-вспомогательному персоналу. Такая категория является неполной, так как на кафедре существуют еще администрация и научные сотрудники, которые не выделены в отдельную категорию. Для второй классификации используется собственный атрибут – дискриминатор категории, например, Статус сотрудника (Рис. 3.17).

Рис. 3.17. Представление связи типа категория: а) полная категория, б) неполная категория

Диаграмма сущность-связь, соответствующая модели П. Чена (Рис. 3.10), в нотации IDEF1x будет иметь следующий вид (Рис. 3.18). Следует отметить, что связи типа n: n, допустимые в модели (и на диаграмме) П. Чена, в нотации IDEF1x представляются дополнительными сущностями (часто зависимыми по идентификации) с двумя связями типа 1: n.

Рис. 3.18. Пример диаграммы сущность – связь в нотации IDEF1x


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: