АЧМ - Алгоритмы и Численные Методы
Поиск  
АЧМ - Алгоритмы и Численные Методы  


Лекция 6

Модельсущность-связь

Концептуальная модель данных (не зависит от конкретной СУБД или аппаратной платформы), служит для семантического моделирования данных – формализованного выражения пользовательского восприятия данных. Достаточно просто могут преобразовываться как к реляционной, так и к объектно-реляционной форме.

Основные концепции:

  • Типы сущностей
  • Типы связей
  • Атрибуты

Тип сущностей – объект или концепция, которые характеризуются как имеющие независимое существование. Могут быть как физическими, там и абстрактными (например, тип “Employee” и тип “LengthOfService”).

Сущность – уникально идентифицируемый экземпляр типа сущности.

Слабые (зависимые от других типов) и сильные (независимые) типы сущности.

Атрибут – свойство типа сущности или типа связи.

Домен атрибута – область его возможных значений.

Простые и составные атрибуты.

Однозначные (атомарные) и многозначные атрибуты (например, несколько телефонов отдела компании).

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

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

 

Тип связи – осмысленная ассоциация между сущностями.

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

Связь между слабой и сильной сущностями существует всегда и выражает зависимость слабой сущности от сильной.

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

Рекурсивные связи – связи, где одни и те же сущности участвуют несколько раз и в разных ролях. Унарные связи.

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

Связи могут иметь атрибуты, так же, как и сущности.

Ограничения, которые могут накладываться на связь:

  • Кардинальность – количество возможных связей для каждой из сущностей-участниц (One-To-One, One-To-Many, Many-To-Many)
  • Степень участия – определяет, зависит ли существование некой сущности от участия в связи некой другой сущности. Полная и частичная степени.

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

Частичная – не полная. Пример – работник может быть приписан к некоторому отделу, но это не обязательно (торговые агенты, пр.)

Допускается более гибкое ограничение кардинальности связи (Min:Max), где Min >= 0, Max <= * - бесконечность.

Проблемы ER-моделирования.

Ловушки разветвления – Модель отображает связь между типами сущностей, но путь между отдельными сущностями определён неоднозначно. Появляется, когда несколько связей One-To-Many выходят из одной сущности.

Ловушки разрыва – предполагается наличие связи между типами сущностей, но пути между отдельными сущностями не существует. Пример – наличие связи с частичным участием.

Дополнения к ER-модели: Extended ER.

Типы сущностей делятся на суперклассы и подклассы, расширяющие свои суперклассы. Допускается множественное наследование (shared subclass).

Специализация – выделение отличительных характеристик отдельных элементов типа сущности. Пересекающиеся (nondisjoint) и непересекающиеся (disjoint) специализации.

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

Пересечение/непересечение и полное/частичное участие – ортогональные характеристики.

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

К категориям применимо понятие полного/частичного участия.

Процесс моделирования:

    1. Спецификации требований
    2. Определение типов сущностей
    3. Определение типов связей
    4. Определение показателей кардинальности и степеней участия сторон для типов связей
    5. Определение атрибутов и связывание их с типами сущностей и связей
    6. Определение потенциальных и первичных ключей
    7. Специализация (выделение подклассов) / генерализация (выделение суперклассов) типов сущностей
    8. Категоризация типов сущностей

Программные средства для построения ER-диаграмм: ERwin, Visio

Преобразование ER-модели в реляционную:

Типы сущностей - отношения (атрибуты и ключи переходят практически без изменений)

Суперклассы/подклассы – связь на основе внешнего ключа, указывающего на первичный ключ суперкласса.

Связь One-To-One: внешний ключ + ограничение целостности, либо пара внешних ключей.

Связь One-To-Many: внешний ключ.

Связь Many-To-Many: специальная таблица пересечения, состоящая из 2 внешних ключей, каждый кортеж которой представляет собой экземпляр связи.

Атрибуты связей – уходят во внешние ключи.

При использовании CASE-средств обычно можно произвести подобное преобразование автоматически.

 

 

 

 


KDSW Logo  © Copyright 2005 KDSW Systems [ Kamaev Dmitry SoftWorks ]