Построение модели уровня ключей (фаза 3)

Модель уровня ключей является дальнейшим развитием модели уровня сущностей. Эта модель включает в себя описание доменов, описание атрибутов, пул сущностей, описание связей, KB-диаграмму. Кроме того, в модель входят уточненные на данной фазе проектирования требования пользователей, ограничения целостности, лингвистические отношения и алгоритмические связи показателей.

На фазе 3 проектирования выполняются следующие основные действия:

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

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

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

Имя домена Имя общего домена Описание домена

Рис. 2.20. Заголовок таблицы описания доменов

В графе " Имя домена" указывается имя используемого домена.

В графе "Имя общего домена" указывается имя домена, на котором определен используемый домен.

В графе "Описание домена" приводятся правила, по которым строится используемый домен.

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

В графе "Множество сущностей" указывается имя и номер сущности, к которой относится атрибут.

В графе "Имя атрибута" указывается имя атрибута.

В графе "Имя домена" указывается имя домена, на котором построен данный атрибут.

Множество сущностей Имя атрибута Имя домена Признак обязательности Примечание

Рис. 2.21. Заголовок таблицы описания атрибутов в инфологической модели

В графе "Признак обязательности" указывается:

· NULL, если допускается, что атрибут может не иметь значений;

· NOT NULL, если атрибут должен обязательно иметь значения. Этот признак обязательно относится ко всем первичным ключам.

В графе "Примечание" указываются дополнительные сведения об атрибуте (первичный ключ, альтернативный ключ, внешний ключ и др.).

Далее приступают к реализации связей между сущностями.

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

На рис. 2.22 приведен пример отображения идентифицирующей определенной связи в KB-диаграмме, соответствующий ER-диаграмме, приведенной на рис. 2.7.

На рис. 2.23 приведен пример отображения обязательной не идентифицирующей определенной связи в KB-диаграмме, соответствующий ER-диаграмме, приведенной на рис. 2.8.

Если связь является иерархической рекурсией, то первичный ключ этой сущности мигрирует в область атрибутов этой же сущности. При этом внешнему ключу должно быть обязательно назначено имя роли. На рис. 2.24 приведен пример отображения иерархической рекурсивной связи в KB-диаграмме, соответствующий ER-диаграмме, приведенной на рис. 2.10. В данном примере внешнему ключу НОМЕР СОТРУДНИКА присвоено имя роли РУКОВОДИТЕЛЬ.

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

в KB-диаграмме

Рис. 2.23. Пример отображения обязательной не идентифицирующей

определенной связи в KB-диаграмме

Рис. 2.24. Пример отображения иерархической рекурсивной связи

в KB-диаграмме

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

На рис. 2.25 приведен пример отображения связи типа категория в KB-диаграмме, соответствующий ER-диаграмме, приведенной на рис. 2.14.

Рис. 2.25. Пример отображения связи типа категория в KB-диаграмме

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

На рис. 2.26 приведен результат преобразования неопределенной связи, представленной на рис. 2.11. Неопределенная связь лечит/лечится заменяется на сущность ЛЕЧЕНИЕ и две идентифицирующие определенные связи: проводит и получает.

Рис. 2.26. Результат преобразования неопределенной связи в определенную

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

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

Рис. 2.27. Добавление собственных атрибутов в первичный ключ

при использовании идентифицирующих связей

Вариант 2 (рис. 2.28). Вводится искусственный ключевой атрибут НОМЕР ПОСЕЩЕНИЯ. В этом случае атрибуты первичных ключей родительских сущностей мигрируют в область атрибутов новой сущности. Связи становятся не идентифицирующими, новая сущность – независимой по идентификации.

Рис. 2.28. Введение искусственного атрибута первичного ключа

при использовании не идентифицирующих связей

Вариант 3 (рис. 2.29). Может оказаться удобным вести отдельный подсчет посещений для каждого врача. В этом случае первичный ключ новой сущности состоит из мигрировавшего атрибута НОМЕР ВРАЧА и дополнительного атрибута НОМЕР ПОСЕЩЕНИЯ. Одна из новых связей является идентифицирующей, другая – не идентифицирующей. Новая сущность является зависимой по идентификации.

Рис. 2.29. Создание первичного ключа на основе одной

идентифицирующей связи

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

На рис. 2.30 приведен пример отображения сетевой рекурсивной связи в KB-диаграмме, соответствующий ER-диаграмме, приведенной на рис. 2.12. Внешним ключам назначены следующие имена ролей: ПЕРВЫЙ и ВТОРОЙ.

Рис. 2.30. Пример отображения сетевой рекурсивной связи

в KB-диаграмме

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

· связь является 1-й р.е. (R1) указывает на денежную единицу, для которой зафиксирован курс;

· связь является 2-й р.е. (R2) указывает на денежную единицу, в которой измеряется курс.

ER-диаграмма рассмотренного примера приведена на рис. 2.31.

Рис. 2.31. ER-диаграмма рассмотренного примера

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

Рис. 2.32. KB-диаграмма рассмотренного примера

На рис. 2.33 приведена KB-диаграмма, представляющая собой вариант развития ER-диаграммы, приведенной на рис. 2.19.


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



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