|
Лекция 6
Модель “сущность-связь”
Концептуальная модель данных (не зависит от конкретной СУБД или аппаратной платформы), служит для семантического моделирования данных – формализованного выражения пользовательского восприятия данных. Достаточно просто могут преобразовываться как к реляционной, так и к объектно-реляционной форме.
Основные концепции :
- Типы сущностей
- Типы связей
- Атрибуты
Тип сущностей – объект или концепция, которые характеризуются как имеющие независимое существование . Могут быть как физическими, там и абстрактными (например, тип “Employee” и тип “LengthOfService”).
Сущность – уникально идентифицируемый экземпляр типа сущности.
Слабые (зависимые от других типов) и сильные (независимые) типы сущности.
Атрибут – свойство типа сущности или типа связи.
Домен атрибута – область его возможных значений.
Простые и составные атрибуты.
Однозначные (атомарные) и многозначные атрибуты (например, несколько телефонов отдела компании).
Производные атрибуты – атрибуты, значение которых определяется значением других атрибутов некоторого типа сущности.
Потенциальные ключи. Первичный ключ. Простой ключ. Составной ключ. – так же, как и в реляционной модели. При этом слабые сущности не имеют своего первичного ключа, а выводятся из первичных ключей соотв. им сильных сущностей.
Тип связи – осмысленная ассоциация между сущностями .
Связь – ассоциация между сущностями, включающая по одной сущности из каждого участвующего в связи типа сущности.
Связь между слабой и сильной сущностями существует всегда и выражает зависимость слабой сущности от сильной.
Степень связи – количество сущностей, охваченных данной связью . Бинарные, тернарные, кватернарные связи.
Рекурсивные связи – связи, где одни и те же сущности участвуют несколько раз и в разных ролях. Унарные связи.
Ролевые имена связей – используются для указания ролей сущностей в данной связи.
Связи могут иметь атрибуты, так же, как и сущности.
Ограничения, которые могут накладываться на связь:
- Кардинальность – количество возможных связей для каждой из сущностей-участниц (One-
To-One, One-To-Many, Many-To-Many)
- Степень участия – определяет, зависит ли существование некой сущности от участия в связи некой другой сущности. Полная и частичная степени.
Полная степень участия – сущность не может существовать, не будучи связана с некой другой сущностью определённой связью. Пример – ученик должен быть приписан к определённой группе.
Частичная – не полная. Пример – работник может быть приписан к некоторому отделу, но это не обязательно (торговые агенты, пр.)
Допускается более гибкое ограничение кардинальности связи ( Min:Max), где Min >= 0, Max <= * - бесконечность.
Проблемы ER-моделирования.
Ловушки разветвления – Модель отображает связь между типами сущностей, но путь между отдельными сущностями определён неоднозначно. Появляется, когда несколько связей One-To-Many выходят из одной сущности.
Ловушки разрыва – предполагается наличие связи между типами сущностей, но пути между отдельными сущностями не существует. Пример – наличие связи с частичным участием.
Дополнения к ER-модели: E xtended ER.
Типы сущностей делятся на суперклассы и подклассы, расширяющие свои суперклассы . Допускается множественное наследование (shared subclass).
Специализация – выделение отличительных характеристик отдельных элементов типа сущности. Пересекающиеся (nondisjoint) и непересекающиеся (disjoint) специализации.
Полное и частичное участие в специализации. Полное – каждая сущность суперкласса является членом какого-либо подкласса по этой специализации. Частичная – наоборот, сущности суперкласса не обязаны быть специализированными.
Пересечение/непересечение и полное/частичное участие – ортогональные характеристики.
Категоризация – моделирование одного подкласса-категории со связью, которая охватывает несколько разных суперклассов. При этом каждый экземпляр сущности класса-категории настедует атрибуты только одного суперкласса.
К категориям применимо понятие полного/частичного участия.
Процесс моделирования:
- Спецификации требований
- Определение типов сущностей
- Определение типов связей
- Определение показателей кардинальности и степеней участия сторон для типов связей
- Определение атрибутов и связывание их с типами сущностей и связей
- Определение потенциальных и первичных ключей
- Специализация
(выделение подклассов) / генерализация (выделение суперклассов) типов сущностей
- Категоризация типов сущностей
Программные средства для построения ER-диаграмм: ERwin, Visio
Преобразование ER-модели в реляционную:
Типы сущностей - отношения (атрибуты и ключи переходят практически без изменений)
Суперклассы/подклассы – связь на основе внешнего ключа, указывающего на первичный ключ суперкласса.
Связь One-To-One: внешний ключ + ограничение целостности, либо пара внешних ключей.
Связь One-To-Many: внешний ключ.
Связь Many-To-Many: специальная таблица пересечения, состоящая из 2 внешних ключей, каждый кортеж которой представляет собой экземпляр связи.
Атрибуты связей – уходят во внешние ключи.
При использовании CASE-средств обычно можно произвести подобное преобразование автоматически.
|
|