Инфологическая модель

advertisement
Этапы проектирования базы данных
Процесс проектирования включает в себя следующие этапы:
1. Инфологическое проектирование.
2. Определение требований к операционной обстановке, в которой будет
функционировать информационная система.
3. Выбор системы управления базой данных (СУБД) и других инструментальных
программных средств.
4. Даталогическое(логическое) проектирование БД.
5. Физическое проектирование БД.
На первом этапе разработчик (администратор базы данных), объединяя частные
представления о содержимом базы данных, полученные в результате опроса
пользователей, и свои собственные представления о данных, которые могут потребоваться
в будущих приложениях, создает обобщенное неформальное описание базы данных. Это
описание выполняется с использованием естественного языка, математических формул,
таблиц, графиков и других средств, понятных всем людям, работающих над
проектированием базы данных. Такое описание предметной области называется
инфологической моделью данных.
Инфологическая модель данных является человеко-ориентированной моделью и
полностью независима от физических параметров среды хранения данных. Такой средой
хранения данных может быть память человека, а не компьютер. Поэтому инфологическая
модель не изменяется до тех пор, пока какие-то изменения в реальном мире не потребуют
внесения в нее соответствующих изменений так, чтобы эта модель продолжала отражать
предметную область.
2
Остальные
модели,
даталогическая
и
физическая,
являются
компьютероориентированными. С их помощью СУБД дает возможность программам и пользователям
осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом
расположении этих данных. Нужные данные отыскиваются СУБД на внешних
запоминающих устройствах по физической модели данных.
Так как указанный доступ осуществляется с помощью конкретной СУБД, то модели
должны быть описаны на языке описания данных этой СУБД. Такое описание называют
даталогической моделью данных.
Трехуровневая архитектура (инфологический, даталогический и физический уровни)
позволяет обеспечить независимость хранимых данных от использующих их программ.
Разработчик может при необходимости переписать хранимые данные на другие носители
информации или реорганизовать их физическую структуру, изменив лишь физическую
модель данных. АБД может подключить к системе любое число новых пользователей
(новых приложений), дополнив, если надо, даталогическую модель. Указанные изменения
физической и даталогической моделей не будут замечены существующими
пользователями системы (окажутся "прозрачными" для них), так же как не будут
замечены и новые пользователи. Следовательно, независимость данных обеспечивает
возможность развития системы баз данных без разрушения существующих приложений.
Инфологическая (информационно-логическая) модель
Цель инфологического этапа проектирования состоит в получении семантических
(концептуальных) моделей, отражающих предметную область и информационные
потребности пользователей. Поэтому этот этап называют еще как семантическое
моделирование. Семантическое моделирование представляет собой моделирование
структуры данных, опираясь на смысл этих данных.
Понятие “Предметная область” - базисное в теории БД и не имеет строгого определения.
Оно вытекает из понятий “объект” и “предмет”. Предметная область (ПО) – часть
реального мира, подлежащая изучению с целью организации управления и, в конечном
итоге, автоматизации. ПО представляется множеством фрагментов, которые
характеризуются множеством объектов, множеством процессов, использующих объекты,
а также множеством пользователей, характеризуемых единым взглядом на предметную
область.
Объектом называется явление внешнего мира. Это либо нечто реально существующее человек, товар, изделие, либо процесс - учет рождаемости, получение товаров, выпуск
изделий. Каждый объект обладает огромным количеством свойств.
Примеры.
Объект "Человек" обладает свойствами: рост, имя, дата рождения … ,
объект - "Изделие" обладает свойствами: качество, дата изготовления, внешний вид….
Между объектами существуют многочисленные связи. Например:

Человек покупает, продает, производит Изделие

Изделие создается, покупается, продается Человеком.
Предмет – модель реального объекта, в котором зафиксированы лишь выделенные для
ИС свойства и связи. Совокупность отобранных предметов образует объектное ядро
предметной области, а совокупность их взаимосвязей - структуру фрагмента
действительности. Т.о. понятие “Предметная область” соответствует точке зрения
потребителя на объектное ядро: в ней выделены только те объекты, свойства объектов и
связи между объектами, которые представляют ценность для ИС и должны быть
сохранены в БД.
3
Все действия по выявлению ядра предметной области производятся на этапе анализа ИС.
Объектное ядро системы в течение ЖЦ ИС не остается постоянным: пропадают и
возникают объекты, меняются их свойства и взаимосвязи. Зафиксированные во времени
цепочки этих изменений называются траекториями предметной области, а совокупность
общих свойств траекторией – семантикой предметной области
Имеется целый ряд методик моделирования предметной области. Одна из наиболее
популярных в настоящее время методик базируется на использовании графических
диаграмм, включающих небольшое число разнородных компонентов ERD (EntityRelationship Diagrams). В русскоязычной литературе эти диаграммы называют "объект –
отношение" либо "сущность - связь".
Модель ERD была предложена в 1976 г. Питером Пин-Шэн Ченом. В дальнейшем
многими авторами были разработаны свои варианты подобных моделей: нотация (notation
– система обозначения, записи) Мартина, нотация IDEF1X, нотация Баркера), но все они
базируются на графических диаграммах, предложенных Ченом.
На использовании разновидностей ER-модели основано большинство современных
подходов к проектированию реляционных баз данных.
По сути, все варианты диаграмм сущность-связь исходят из одной идеи - рисунок всегда
нагляднее текстового описания. Все такие диаграммы используют графическое
изображение сущностей предметной области, их свойств (атрибутов), и взаимосвязей
между сущностями.
Мы познакомимся с ER-диаграммами в нотации Баркера, как довольно легкой в
понимании основных идей.
Основные понятия ER-диаграмм
Основными понятиями ER-модели являются сущность, связь и атрибут.
Для большей выразительности и лучшего понимания имя сущности может
сопровождаться примерами конкретных объектов этого типа.
Определение 1. Сущность - это реальный или представляемый объект, информация о
котором должна сохраняться и быть доступна. Сущностями могут быть люди, места,
самолеты, рейсы, вкус, цвет и т.д.
Каждая сущность должна иметь наименование, выраженное существительным в
единственном числе. При этом имя сущности - это имя типа, а не некоторого конкретного
экземпляра этого типа. Понятие тип сущности относится к набору однородных личностей,
предметов, событий или идей, выступающих как целое.
Примерами сущностей могут быть такие классы объектов как "Поставщик", "Сотрудник",
"Накладная".
Каждая сущность в модели изображается в виде прямоугольника, содержащего имя
сущности:
4
Определение 2. Экземпляр сущности - это конкретный представитель данной сущности.
Например, представителем сущности "Сотрудник" может быть "Сотрудник Иванов".
Экземпляры сущностей должны быть различимы, т.е. сущности должны иметь некоторые
свойства, уникальные для каждого экземпляра этой сущности.
Определение 3. Атрибут сущности - это поименованная характеристика сущности. Его
наименование должно быть уникальным для конкретного типа сущности, но может быть
одинаковым для различного типа сущностей (например, ЦВЕТ может быть определен для
многих сущностей: СОБАКА, АВТОМОБИЛЬ, КРАСКА и т.д.). Атрибуты используются
для определения того, какая информация должна быть собрана о сущности. Примерами
атрибутов для сущности АВТОМОБИЛЬ являются ТИП, МАРКА, НОМЕРНОЙ ЗНАК,
ЦВЕТ и т.д.
Здесь также существует различие между типом атрибута и экземпляром. Тип атрибута
ЦВЕТ имеет много экземпляров или значений: Красный, Синий, Банановый, Белая ночь и
т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.
Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут
является таковым только в связи с типом сущности. В другом контексте атрибут может
выступать как самостоятельная сущность. Например, для автомобильного завода цвет –
это только атрибут продукта производства, а для лакокрасочной фабрики цвет – тип
сущности.
Каждый атрибут обеспечивается именем, уникальным в пределах сущности.
Наименование атрибута должно быть выражено существительным в единственном числе
(возможно, с характеризующими прилагательными).
Примерами атрибутов сущности "Сотрудник" могут быть такие атрибуты как "Табельный
номер", "Фамилия", "Имя", "Отчество", "Должность", "Зарплата" и т.п.
Атрибуты изображаются в пределах прямоугольника, определяющего сущность:
Атрибуты могут классифицироваться по принадлежности к одному из трех различных
типов: описательные, указывающие, вспомогательные.
Описательные атрибуты представляют факты, внутренне присущие каждому экземпляру
сущности.
Указывающие атрибуты используются для присвоения имени или обозначения
экземплярам сущности.
Вспомогательные атрибуты используются для связи экземпляра одной сущности с
экземпляром другого. Атрибуты подчиняются строго определенным правилам.
5
Определение 4. Ключ сущности - минимальный набор атрибутов, по значениям которых
можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что
исключение из набора любого атрибута не позволяет идентифицировать сущность по
оставшимся.
Например, для сущности Расписание ключом является атрибут Номер_рейса или набор:
Пункт_отправления, Время_вылета и Пункт_назначения (при условии, что из пункта в
пункт вылетает в каждый момент времени один самолет).
Сущность может иметь несколько различных ключей.
Ключевые атрибуты изображаются на диаграмме подчеркиванием:
Определение 5. Связь - это некоторая ассоциация между двумя сущностями. Одна
сущность может быть связана с другой сущностью или сама с собою. Связи позволяют по
одной сущности находить другие сущности, связанные с нею.
Если бы назначением базы данных было только хранение отдельных, не связанных между
собой данных, то ее структура могла бы быть очень простой. Однако одно из основных
требований к организации базы данных – это обеспечение возможности отыскания одних
сущностей по значениям других, для чего необходимо установить между ними
определенные связи. А так как в реальных базах данных нередко содержатся сотни или
даже тысячи сущностей, то теоретически между ними может быть установлено более
миллиона связей. Наличие такого множества связей и определяет сложность
инфологических моделей.
Например, связи между сущностями могут выражаться следующими фразами "СОТРУДНИК может иметь несколько ДЕТЕЙ", "каждый СОТРУДНИК обязан числиться
ровно в одном ОТДЕЛЕ".
Графически связь изображается линией, соединяющей две сущности:
6
Каждая связь имеет два конца и одно или два наименования. Наименование обычно
выражается в неопределенной глагольной форме: "иметь", "принадлежать" и т.п. Каждое
из наименований относится к своему концу связи. Иногда наименования не пишутся
ввиду их очевидности.
Каждая связь может иметь один из следующих типов связи:
Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с
одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего
свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно
разделенную на две.
Связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан
с несколькими экземплярами второй сущности (правой). Это наиболее часто
используемый тип связи. Левая сущность (со стороны "один") называется родительской,
правая (со стороны "много") - дочерней. (см. рис. графического изображения связи)
Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может
быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй
сущности может быть связан с несколькими экземплярами первой сущности. Тип связи
много-ко-многим является временным типом связи, допустимым на ранних этапах
разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями
типа один-ко-многим путем создания промежуточной сущности.
Каждая связь может иметь одну из двух модальностей связи:
Модальность "может" означает, что экземпляр одной сущности может быть связан с
одним или несколькими экземплярами другой сущности, а может быть и не связан ни с
одним экземпляром.
Модальность "должен" означает, что экземпляр одной сущности обязан быть связан не
менее чем с одним экземпляром другой сущности.
Связь может иметь разную модальность с разных концов.
7
Описанный графический синтаксис позволяет однозначно читать диаграммы, пользуясь
следующей схемой построения фраз:
<Каждый экземпляр СУЩНОСТИ 1> <МОДАЛЬНОСТЬ СВЯЗИ> <НАИМЕНОВАНИЕ
СВЯЗИ> <ТИП СВЯЗИ> <экземпляр СУЩНОСТИ 2>.
Каждая связь может быть прочитана как слева направо, так и справа налево. Например,
связь, представленная на рисунке выше 4 читается так:
Слева направо: "каждый сотрудник может иметь несколько детей".
Справа налево: "Каждый ребенок обязан принадлежать ровно одному сотруднику".
Нормальные формы ER-схем
Как и в реляционных схемах баз данных, в ER-диаграмах вводится понятие нормальных
форм, причем их смысл очень близко соответствует смыслу реляционных нормальных
форм. Приведем только очень краткие и неформальные определения трех первых
нормальных форм.
В первой нормальной форме ER-диаграммы устраняются повторяющиеся атрибуты или
группы атрибутов, т.е. производится выявление неявных сущностей, "замаскированных"
под атрибуты.
Во второй нормальной форме устраняются атрибуты, зависящие только от части
уникального идентификатора (ключа сущности). Эта часть уникального идентификатора
определяет отдельную сущность.
В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не
входящих в уникальный идентификатор (ключ сущности). Эти атрибуты являются
основой отдельной сущности.
При правильном определении сущностей, полученные таблицы будут сразу находиться в
3НФ. Основное достоинство метода состоит в том, модель строится методом
последовательных уточнений первоначальных диаграмм.
Получение реляционной схемы из ER-схемы
Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится
именем таблицы.
Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем; может
выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам,
могут содержать неопределенные значения; столбцы, соответствующие обязательным
атрибутам, - не могут.
8
Шаг 3. Компоненты уникального идентификатора сущности превращаются в
первичный ключ таблицы. Если имеется несколько возможных уникальных
идентификатора, выбирается наиболее используемый. Если в состав уникального
идентификатора входят связи, к числу столбцов первичного ключа добавляется копия
уникального идентификатора сущности, находящейся на дальнем конце связи (этот
процесс может продолжаться рекурсивно). Для именования этих столбцов используются
имена концов связей и/или имена сущностей.
Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т.е.
делается копия уникального идентификатора с конца связи "один", и соответствующие
столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам,
допускающим неопределенные значения; обязательные связи - столбцам, не
допускающим неопределенные значения.
Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних
ключей и тех атрибутов, на которых предполагается в основном базировать запросы.
Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два
способа:


все подтипы в одной таблице (а)
для каждого подтипа - отдельная таблица (б)
При применении способа (а) таблица создается для наиболее внешнего супертипа, а для
подтипов могут создаваться представления. В таблицу добавляется по крайней мере один
столбец, содержащий код ТИПА; он становится частью первичного ключа.
При использовании метода (б) для каждого подтипа первого уровня (для более нижних представления) супертип воссоздается с помощью представления UNION (из всех таблиц
подтипов выбираются общие столбцы - столбцы супертипа).
Все в одной таблице
Таблица - на подтип
Преимущества
Все хранится вместе
Легкий доступ к супертипу и подтипам
Требуется меньше таблиц
Более ясны правила подтипов
Программы работают только с нужными
таблицами
Недостатки
Слишком общее решение
Требуется дополнительная логика работы с разными
наборами столбцов и разными ограничениями
Потенциальное узкое место (в связи с блокировками)
Столбцы подтипов должны быть необязательными
В некоторых СУБД для хранения неопределенных
значений требуется дополнительная память
Слишком много таблиц
Смущающие столбцы в представлении
UNION
Потенциальная потеря производительности
при работе через UNION
Над супертипом невозможны модификации
9
Шаг 7. Имеется два способа работы при наличии исключающих связей:


общий домен (а)
явные внешние ключи (б)
Если остающиеся внешние ключи все в одном домене, т.е. имеют общий формат (способ
(а)), то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец
идентификатора связи используется для различения связей, покрываемых дугой
исключения. Столбец идентификатора сущности используется для хранения значений
уникального идентификатора сущности на дальнем конце соответствующей связи.
Если результирующие внешние ключи не относятся к одному домену, то для каждой
связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей; все
эти столбцы могут содержать неопределенные значения.
Общий домен
Явные внешние ключи
Преимущества
Нужно только два столбца
Условия соединения - явные
Недостатки
Оба дополнительных атрибута должны использоваться в соединениях
Слишком много столбцов
Пример разработки простой ER-модели
При разработке ER-моделей мы должны получить следующую информацию о предметной
области:
1. Список сущностей предметной области.
2. Список атрибутов сущностей.
3. Описание взаимосвязей между сущностями.
ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей
является итерационным. Разработав первый приближенный вариант диаграмм, мы
уточняем их, опрашивая экспертов предметной области. При этом документацией, в
которой фиксируются результаты бесед, являются сами ER-диаграммы.
Предположим, что перед нами стоит задача разработать информационную систему по
заказу некоторой оптовой торговой фирмы. В первую очередь мы должны изучить
предметную область и процессы, происходящие в ней. Для этого мы опрашиваем
сотрудников фирмы, читаем документацию, изучаем формы заказов, накладных и т.п.
Например, в ходе беседы с менеджером по продажам, выяснилось, что он (менеджер)
считает, что проектируемая система должна выполнять следующие действия:



Хранить информацию о покупателях.
Печатать накладные на отпущенные товары.
Следить за наличием товаров на складе.
10
Выделим все существительные в этих предложениях - это будут потенциальные
кандидаты на сущности и атрибуты, и проанализируем их (непонятные термины будем
выделять знаком вопроса):





Покупатель - явный кандидат на сущность.
Накладная - явный кандидат на сущность.
Товар - явный кандидат на сущность
(?)Склад - а вообще, сколько складов имеет фирма? Если несколько, то это будет
кандидатом на новую сущность.
(?)Наличие товара – это, скорее всего, атрибут, но атрибут какой сущности?
Сразу возникает очевидная связь между сущностями - "покупатели могут покупать много
товаров" и "товары могут продаваться многим покупателям". Первый вариант диаграммы
выглядит так:
Задав дополнительные вопросы менеджеру, мы выяснили, что фирма имеет несколько
складов. Причем, каждый товар может храниться на нескольких складах и быть
проданным с любого склада.
Куда поместить сущности "Накладная" и "Склад" и с чем их связать? Спросим себя, как
связаны эти сущности между собой и с сущностями "Покупатель" и "Товар"?

Покупатели покупают товары, получая при этом накладные, в которые внесены
данные о количестве и цене купленного товара.

Каждый покупатель может получить несколько накладных.

Каждая накладная обязана выписываться на одного покупателя.

Каждая накладная обязана содержать несколько товаров (не бывает пустых
накладных). Каждый товар, в свою очередь, может быть продан нескольким
покупателям через несколько накладных.

Кроме того, каждая накладная должна быть выписана с определенного склада, и с
любого склада может быть выписано много накладных.
11
Таким образом, после уточнения, диаграмма будет выглядеть следующим образом:
Пора подумать об атрибутах сущностей. Беседуя с сотрудниками фирмы, мы выяснили
следующее:

Каждый покупатель является юридическим лицом и имеет наименование, адрес,
банковские реквизиты.

Каждый товар имеет наименование, цену, а также характеризуется единицами
измерения.

Каждая накладная имеет уникальный номер, дату выписки, список товаров с
количествами и ценами, а также общую сумму накладной. Накладная
выписывается с определенного склада и на определенного покупателя.

Каждый склад имеет свое наименование.
Снова выпишем все существительные, которые будут потенциальными атрибутами, и
проанализируем их:

Юридическое лицо - термин риторический, мы не работаем с физическими лицами.
Не обращаем внимания.

Наименование покупателя - явная характеристика покупателя.

Адрес - явная характеристика покупателя.

Банковские реквизиты - явная характеристика покупателя.

Наименование товара - явная характеристика товара.

(?)Цена товара - похоже, что это характеристика товара. Отличается ли эта
характеристика от цены в накладной?

Единица измерения - явная характеристика товара.

Номер накладной - явная уникальная характеристика накладной.

Дата накладной - явная характеристика накладной.

(?)Список товаров в накладной - список не может быть атрибутом. Вероятно,
нужно выделить этот список в отдельную сущность.
12

(?)Количество товара в накладной - это явная характеристика, но характеристика
чего? Это характеристика не просто "товара", а "товара в накладной".

(?)Цена товара в накладной - опять же это должна быть не просто характеристика
товара, а характеристика товара в накладной. Но цена товара уже встречалась выше
- это одно и то же?

Сумма накладной - явная характеристика накладной. Эта характеристика не
является независимой. Сумма накладной равна сумме стоимостей всех товаров,
входящих в накладную.

Наименование склада - явная характеристика склада.
В ходе дополнительной беседы с менеджером удалось прояснить различные понятия цен.
Оказалось, что каждый товар имеет некоторую текущую цену. Эта цена, по которой товар
продается в данный момент. Естественно, что эта цена может меняться со временем. Цена
одного и того же товара в разных накладных, выписанных в разное время, может быть
различной. Таким образом, имеется две цены - цена товара в накладной и текущая цена
товара.
С возникающим понятием "Список товаров в накладной" все довольно ясно.
Сущности "Накладная" и "Товар" связаны друг с другом отношением типа много-комногим. Такая связь, как мы отмечали ранее, должна быть расщеплена на две связи типа
один-ко-многим. Для этого требуется дополнительная сущность.
Этой сущностью и будет сущность "Список товаров в накладной". Связь ее с сущностями
"Накладная" и "Товар" характеризуется следующими фразами
- "каждая накладная обязана иметь несколько записей из списка товаров в накладной",
- "каждая запись из списка товаров в накладной обязана включаться ровно в одну
накладную",
-"каждый товар может включаться в несколько записей из списка товаров в накладной",
- "каждая запись из списка товаров в накладной обязана быть связана ровно с одним
товаром".
Атрибуты "Количество товара в накладной" и "Цена товара в накладной" являются
атрибутами сущности " Список товаров в накладной".
Точно также поступим со связью, соединяющей сущности "Склад" и "Товар". Введем
дополнительную сущность "Товар на складе". Атрибутом этой сущности будет
"Количество товара на складе". Таким образом, товар будет числиться на любом складе и
количество его на каждом складе будет свое.
Теперь можно внести все это в диаграмму:
13
Концептуальные и физические ER-модели
Разработанный выше пример ER-диаграммы является примером концептуальной
диаграммы. Это означает, что диаграмма не учитывает особенности конкретной СУБД.
По данной концептуальной диаграмме можно построить физическую диаграмму, которая
уже будут учитываться такие особенности СУБД, как допустимые типы и наименования
полей и таблиц, ограничения целостности и т.п. Физический вариант приведенной
диаграммы может выглядеть, например, следующим образом:
14
На данной диаграмме каждая сущность представляет собой таблицу базы данных, каждый
атрибут становится колонкой соответствующей таблицы. Обращаем внимание на то, что
во
многих
таблицах,
например,
"CUST_DETAIL"
и
"PROD_IN_SKLAD",
соответствующих сущностям "Запись списка накладной" и "Товар на складе", появились
новые атрибуты, которых не было в концептуальной модели - это ключевые атрибуты
родительских таблиц, мигрировавших в дочерние таблицы для того, чтобы обеспечить
связь между таблицами посредством внешних ключей.
Полученные таблицы находятся в 3НФ.
Выводы
Диаграммы сущность-связь позволяют использовать наглядные графические обозначения
для моделирования сущностей и их взаимосвязей.
Различают концептуальные и физические ER-диаграммы. Концептуальные диаграммы
не учитывают особенностей конкретных СУБД. Физические диаграммы строятся по
концептуальным и представляют собой прообраз конкретной базы данных. Сущности,
определенные в концептуальной диаграмме становятся таблицами, атрибуты становятся
колонками таблиц (при этом учитываются допустимые для данной СУБД типы данных и
наименования столбцов), связи реализуются путем миграции ключевых атрибутов
родительских сущностей и создания внешних ключей.
15
Более сложные элементы ER-модели
Мы остановились только на самых основных и наиболее очевидных понятиях ER-модели
данных. К числу более сложных элементов модели относятся следующие:

Подтипы и супертипы сущностей. Как в языках программирования с развитыми
типовыми системами (например, в языках объектно-ориентированного
программирования), вводится возможность наследования типа сущности, исходя из
одного или нескольких супертипов.
Сущность может быть расщеплена на два или более взаимно исключающих
подтипа, каждый из которых включает общие атрибуты и/или связи. Эти общие
атрибуты и/или связи явно определяются один раз на более высоком уровне. В
подтипах могут определяться собственные атрибуты и/или связи. В принципе
подтипизация может продолжаться на более низких уровнях, но опыт показывает,
что в большинстве случаев оказывается достаточно двух-трех уровней.
Сущность, на основе которой определяются подтипы, называется супертипом.
Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа
должен относиться к некоторому подтипу. Иногда для полноты приходится
определять дополнительный подтип ПРОЧИЕ.
Пример: Супертип ЛЕТАТЕЛЬНЫЙ АППАРАТ
Как полагается это читать? От супертипа: ЛЕТАТЕЛЬНЫЙ АППАРАТ, который
должен быть АЭРОПЛАНОМ, ВЕРТОЛЕТОМ, ПТИЦЕЛЕТОМ или ДРУГИМ
ЛЕТАТЕЛЬНЫМ АППАРАТОМ. От подтипа: ВЕРТОЛЕТ, который относится к
типу ЛЕТАТЕЛЬНОГО АППАРАТА. От подтипа, который является одновременно
супертипа: АЭРОПЛАН, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТА
и должен быть ПЛАНЕРОМ или МОТОРНЫМ САМОЛЕТОМ.
Иногда удобно иметь два или более разных разбиения сущности на подтипы.
Например, сущность ЧЕЛОВЕК может быть разбита на подтипы по
профессиональному признаку (ПРОГРАММИСТ, ДОЯРКА и т.д.), а может - по
половому признаку (МУЖЧИНА, ЖЕНЩИНА).
16

Связи "many-to-many". Иногда бывает необходимо связывать сущности таким
образом, что с обоих концов связи могут присутствовать несколько экземпляров
сущности (например, все члены кооператива сообща владеют имуществом
кооператива). Для этого вводится разновидность связи "многие-со-многими".

Уточняемые степени связи. Иногда бывает полезно определить возможное
количество экземпляров сущности, участвующих в данной связи (например,
служащему разрешается участвовать не более, чем в трех проектах одновременно).
Для выражения этого семантического ограничения разрешается указывать на конце
связи ее максимальную или обязательную степень.

Каскадные удаления экземпляров сущностей. Некоторые связи бывают
настолько сильными (конечно, в случае связи "один-ко-многим"), что при удалении
опорного экземпляра сущности (соответствующего концу связи "один") нужно
удалить и все экземпляры сущности, соответствующие концу связи "многие".
Соответствующее требование "каскадного удаления" можно сформулировать при
определении сущности.

Домены. Как и в случае реляционной модели данных бывает полезна возможность
определения потенциально допустимого множества значений атрибута сущности
(домена).
Наиболее правильной интуитивной трактовкой понятия домена является
понимание домена как допустимого потенциального множества значений данного
типа. Например, домен "Имена" определен на базовом типе строк символов, но в
число его значений могут входить только те строки, которые могут изображать имя
(в частности, такие строки не могут начинаться с мягкого знака).
Следует отметить также семантическую нагрузку понятия домена: данные
считаются сравнимыми только в том случае, когда они относятся к одному домену.
В нашем примере значения доменов "Номера пропусков" и "Номера групп"
относятся к типу целых чисел, но не являются сравнимыми.
Эти и другие более сложные элементы модели данных "Сущность-Связи" делают ее
существенно более мощной, но одновременно несколько усложняют ее использование.
Download