Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17-06-2015_23-01-11 / Учебное пособие ИОБД_2013.doc
Скачиваний:
138
Добавлен:
15.02.2016
Размер:
2.9 Mб
Скачать

5.2. Семантическая модель данных

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

Главным назначением семантических моделей является обеспечение возможности выражения семантики (смысла) данных и их взаимосвязей.

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

При автоматизированной компиляции известны два подхода:

на основе явного представления концептуальной схемы как исходной информации для компилятора;

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

И в том, и в другом случае в результате производится реляционная схема базы данных.

Наконец, третья возможность, которая еще не вышла (или только выходит) за пределы исследовательских и экспериментальных проектов, - это работа с базой данных в семантической модели, т.е. в СУБД, основанных на семантических моделях данных. При этом снова рассматриваются два варианта:

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

прямая реализация в СУБД, основанной на какой-либо семантической модели данных.

Наиболее близко ко второму подходу находятся современные объектно-ориентированные СУБД, модели данных которых по многим параметрам близки к семантическим моделям (хотя в некоторых аспектах они более мощны, а в некоторых - более слабы).

Одной из наиболее популярных семантических моделей данных является модель Сущность-Связь (часто ее называют кратко ER-моделью).

На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области в этом случае базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных, ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных.

Основными понятиями ER-модели являются сущность, связь и атрибут.

Сущность - это реальный или абстрактный объект, информация о котором должна сохраняться и быть доступна.

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

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

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

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

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

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

Сущность в IDEF1X описывает собой совокупность или набор экземпляров похожих по свойствам, но однозначно отличаемых друг от друга по одному или нескольким признакам. Каждый экземпляр является реализацией сущности. Таким образом, сущность в IDEF1X описывает конкретный набор экземпляров предметной области. Примером сущности IDEF1X может быть сущность СТУДЕНТ, свойства которой присущи всем студента университета, а один из них, скажем, Иванов Петр Сергеевич, является конкретной реализацией этой сущности. В примере, приведенном на рис.14, каждый экземпляр сущности СТУДЕНТ содержит некоторую информацию. В IDEF1X-модели эти свойства называются атрибутами сущности. Каждый атрибут содержит только часть информации о сущности.

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

Е/ Студент

Номер зачетной книжки

Номер группы

Фамилия

Имя

Отчество

Дата рождения

Коммерческий

Рис.14. Сущность СТУДЕНТ

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

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

Сущность называется зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности (рис.15).

Рис.15. Сущности в IDEF1X

Каждой сущности присваивается уникальное имя и номер, разделяемые косой чертой «/» и помещаемые над блоком (рис.16).

Сущности могут иметь также внешние ключи (Foreign Key), которые могут использоваться в качестве части или целого первичного ключа или неключевого атрибута.

Рис.16. Сущность и атрибуты

Внешний ключ изображается с помощью помещения внутрь блока сущности имен атрибутов, после которых следуют буквы FK в скобках (рис.17).

Рис.17. Примеры внешних ключей

В стандарте IDEF1X определены типы связей, показанные в табл.6.

Таблица 6

Типы связей стандарта IDEF1X

Графический вид

Наименование

Сущность-родитель Сущность-потомок

Имя связи

Идентифицирующая связь

Неидентифицирующая связь

Рекурсивная связь

Связь типа «многие-ко-многим»

Связь супертипа с подтипами

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

Пунктирная линия изображает неидентифицирующую связь. Сущность-потомок в неидентифицирующей связи будет независимой от идентификатора, если она не является также сущностью-потомком в какой-либо идентифицирующей связи.

Для изучения рекурсивной связи рассмотрим пример отражения в БД иерархической структуры компаний (рис.18).

Рис.18. Иерархия компаний

Иерархию компаний, изображенную на рис.18 можно представить и по другому, как показано в табл.7.

Таблица 7

Формализации иерархии компаний

Идентификатор компании

Идентификатор «родительской» компании

Наименование компании

С1

NULL

Big Monster Company

С2

С1

Smaller Monster Company

С3

С1

Other Smaller Company

С4

С2

Big Subsidiary

С5

С2

Small Subsidiary

С6

NULL

Independent Company

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

Е/Компания

Идент_комп

Наименование_компании

Идент_род_комп.Идент_комп (FK)

Рис.19. Сущность КОМПАНИЯ

Связь типа «многие-ко-многим» показаны на рис.20.

Е/ Предмет Е/ Студент

Рис.20. Связь типа «многие-ко-многим»

Н

еобходимо отметить, что связей типа «многие-ко-многим» следует избегать при создании БД. Эта связь порождает чрезмерное дублирование данных, а, самое главное, существенно затрудняет обеспечение целостности по ссылкам. Разрешение связей данного типа показано на рис.21.

Рис.21. Разрешение связей типа «многие-ко-многим»

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

Таблица 8

Связь супертипа с подтипами

Подтипы

Complete

(полные)

Incomplete

(неполные)

Exclusive Subtype

(взаимоисключающие)

Inclusive Subtype

(входящие, содержащиеся)

Для типа inclusive subtype, каждый экземпляр в супертипе может быть связан с одним или несколькими входящими подтипами.

СТУДЕНТ

Мужчины Женщины

Рис.22. Взаимоисключающие полные подтипы

Дневная Вечерняя

Рис.23. Взаимоисключающие неполные подтипы

О

днако связь супертипа с подтипами может быть трансформирована в соответствии с одним из вариантов, показанных на рис. 24.

Рис.24. Разрешение связей супертипа с подтипами

Средства метода IDEF1X в полном объеме реализуют семантическую модель данных. Вместе с этим, IDEF1X ориетирован, в основном, на дальнейшую физическую реализацию реляционной БД в соответствующей СУБД. Поэтому между объектами IDEF1X-модели и объектами реляционной модели данных существует определенная взаимосвязь. Соответствие объектов IDEF1X и реляционной модели данных показано в табл.9.

Таблица 9

Соответствие объектов IDEF1X объектам

реляционной модели

IDEF1X

Реляционная модель

Зависимая сущность

(Dependent entity)

Внешний ключ таблицы входит в состав первичного ключа

Независимая сущность

(Independent entity)

Родительская таблица или дочерняя таблица, внешний ключ которой не входит в состав первичного ключа

Атрибут (Attribute)

Поле таблицы

Домен (Domain)

Домен

Первичный ключ (PK)

Первичный ключ

Внешний ключ (FK), альтернативный ключ (АК), инверсионный вход (IE), групповой ключ (KG)

Индексы отношения (таблицы)

Поведение (business rule)

Триггер или хранимая процедура

Связь (Relationship)

Ссылка отношений (связь таблиц)

Идентифицирующая связь

(identifying)

Атрибуты внешнего ключа входят в состав первичного ключа ссылающегося отношения

Неидентифицирующая связь

(non-identifying)

Атрибуты внешнего не входят в состав первичного ключа ссылающегося отношения

Связи подтипов

Денормализованные отношения (таблицы)

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

Рис. 25. Построение реляционной схемы из ER-модели

Соседние файлы в папке 17-06-2015_23-01-11