Синтез концептуальной схемы. Концептуальная схема реляционной БД, как правило, описывается диаграммой «сущность–связь» (ERD, ER-диаграмма), предназначенной для разработки модели данных и обеспечивающей стандартный способ определения данных и отношений между ними. Фактически с помощью ERD осуществляется детализация хранилищ данных проектируемой системы, а также документируются сущности системы и способы их взаимодействия, включая идентификацию объектов (сущностей), свойств этих объектов (атрибутов) и отношений с другими объектами (связей).
ER-диаграммы были введены Ченом (Chen) и получили дальнейшее развитие в работах Баркера (Barker). Рассмотрим нотацию ER-диаграммы, предложенную Баркером, так как в основном она используется при описании КС в современных СУБД (например, в Oracle).
Сущность (Entity).Сущность на ER-диаграмме представляется прямоугольником любого размера, содержащим имя сущности, список имен атрибутов (возможно неполный) и указатели ключевых атрибутов (знак # перед именем атрибута).
Связь (Relationship).Связь в нотации Баркера является бинарной, т.е. представляет собой линию, соединяющую две сущности (А и В).Для связи должны быть определены:
имя связи со стороны сущности А и сущности В;
обязательность связи. Если любой экземпляр сущности А обязательно должен быть связан с каким-либо экземпляром сущности В, то прилегающая к прямоугольнику А половина линии – сплошная, в противном случае она – пунктирная.
Множественность связи. Для множественной связи М линия присоединяется к прямоугольнику сущности в трех точках, для одиночной связи – в одной точке.
Из имени связи следует, что клиент владеет кредитной картой, а кредитная карта принадлежит клиенту. При включении в БД записи «Клиент» клиент может и не иметь кредитную карту (связь является необязательной – может быть). При включении в БД записи «Кредитная карта» она должна быть связана с каким-либо клиентом (связь является обязательной – должен быть). При установлении связи многие CASE-средства автоматически добавят в сущность «Кредитная карта» ключ сущности «Клиент». Это обеспечит при включении в БД записи «Кредитная карта» ее связь с записью «Клиент» по атрибуту «Код клиента». Каждый клиент может владеть одной или более кредитной картой (связь 1: М). При этом каждая кредитная карта должна принадлежать только одному клиенту (связь М:l). В табл. 11.1 приведены основные типы связей в нотации Баркера.
|
Таблица 11.1. Основные типы связей
Окончание табл. 11.1
Супертип (Supertype) и подтип (SubType) сущности (категоризация).Часто сущности имеют пересекающийся набор атрибутов. В этом случае общую часть атрибутов помещают в сущность-супертип, а отличающиеся части атрибутов помещают в сущности-подтипы.
Например, сущности «Физическое лицо» и «Юридическое лицо» имеют общие атрибуты «Адрес», «Телефон», «Факс». Поэтому эти атрибуты можно объединить в сущность-супертип «Клиент». Остальные атрибуты можно описать в сущностях-подтипах. В базе данных будут храниться три сущности: «Клиент», «Физическое лицо», «Юридическое лицо». Основное преимущество использования супертипов и подтипов заключается в том, что СУБД автоматически обеспечивает ссылочную целостность (с помощью триггеров):
после удаления записи-супертипа удаляются все связанные с ней записи-подтипов;
|
после обновления ключа записи-супертипа обновляются ключи всех связанных с ней записей-подтипов;
после включения записи-подтипа проверяется, есть ли запись-супертип с соответствующим ключом;
после обновления ключа записи-подтипа проверяется, есть ли запись-супертип с тем же ключом.
Следует отметить, что разработка КС БД – процесс творческий. Автоматизировать эту работу практически невозможно, так как при этом требуется учитывать много неформальных параметров. CASE-продукты предоставляют только средства описания КС.
Ниже приведены примеры разработки ER-диаграмм.
Пример описания КС БД с помощью средства CASE*Designer. В CASE*Designer (Oracle) разработка ER-диаграммы ведется в нотации Баркера, рассмотренной выше. Рассмотрим пример разработки КС (ER-диаграммы) БД «БДЗ. Ценные бумаги», которая была введена при описании потоков данных (см. рис. 10.3).
Рис. 11.1. ER-диаграмма со связями и атрибутами
1. Выберите пункт меню Techniques/Entity Diagrammer. На экране появится окно Entity Relationship Diagrammer.
Чтобы построить диаграмму, выберите пункт меню Diagram/New. CASE*Designer запросит имя новой ER-диаграммы и размеры страницы, которую вы должны позиционировать в окне Entity Relationship Diagrammer.
2. Инструментальным средством Entity можно добавить к ER-диаграмме сущности, которые на рис. 11.1 обозначены прямоугольниками. При этом сущности «Эмитент» и «Торговая площадка» являются подтипами супертипа «Организация». Затем инструментальными средствами M:l, M: M и 1:1 описывают связи между сущностями.
3. Для ввода имен атрибутов выберите на диаграмме сущностей пункт меню Forms/Attribute Definition. После описания всех атрибутов ER-диаграмма будет иметь вид, представленный на рис. 11.1.
|
4. Чтобы сохранить ER-диаграмму и выйти из Entity Relationship Diagrammer выполните пункты меню Diagram/Save и Diagram/Quit.
Пример описания концептуальной схемы с помощью пакета Erwin. После запуска пакета Erwin на экране появляется основное окно пакета.
В окне инструментов Erwin Toolbox отображаются следующие кнопки:
выбор объекта или группы объектов на ER-диаграмме;
перемещение объекта на ER-диаграмме;
определение независимой сущности;
определение зависимой сущности;
построение связи, определяющей зависимую сущность как подтип (совокупность подтипов является неполной);
построение связи, определяющей зависимую сущность как подтип (совокупность подтипов является полной);
построение идентифицирующей связи;
построение неидентифицирующей связи;
построение связи «многие-ко-многим»;
отображение на экране поясняющего текста.
Следует отметить, что нотация (изображение) ER-диаграммы в пакете Erwin несколько отличается от нотации Баркера. В табл. 11.2–11.4 представлены отличия нотаций Баркера и пакета Erwin.
Таблица 11.2. Отличия в обозначении сущностей
Таблица 11.3. Отличия в обозначении связей
Необходимо отметить, чтобы на ER-диаграмме отображались идентификаторы связи: ее имя, признаки Р и Z (см. табл. 11.3), следует установить опции Option/Show Display Menu, Display/VebPhrase и Display/Cardinality.
Используя инструментальные средства Erwin, можно построить КС БД «БДЗ. Ценные бумаги» на уровне сущностей и связей (рис. 11.2).
Чтобы определить атрибуты какой-либо сущности, следует отметить эту сущность на диаграмме, щелкнуть правой клавишей мыши и выбрать пункт Entity Attribute. После описания атрибутов всех сущностей на экране отображается ER-диаграмма со связями и атрибутами.
Чтобы сохранить ER-диаграмму и выйти из Erwin выберите пункты File/Save и File/Exit.
Таблица 11.4. Отличия в обозначениях супертипов и подтипов
Рис. 11.2. ER-диаграмма со связями, но без атрибутов