Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

8. Модель данных «сущность-связь»

Проектирование базы данных невозможно без инфологического моделирования. Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. В этой главе описана модель данных «СУЩНОСТЬ-СВЯЗЬ», наиболее часто используемая для инфологического моделирования. Как и любую модель данных, модель «СУЩНОСТЬ-СВЯЗЬ» следует рассматривать с трех сторон: определение структур данных, определение ОЦ и множество допустимых операций над данными.

Модель «СУЩНОСТЬ-СВЯЗЬ» предложена Питером Пин Шен Ченом и подробно описана в статье [44]. Данную модель часто называют ER-моделью (от английского «entity-relationship model»).

Будем считать, что любая предметная область представляет собой совокупность некоторых объектов реального мира, которые взаимодействуют между собой. В терминах ER-модели объекты реального мира называются сущностями (англ. «entity»). Для отражения в модели взаимодействия сущностей между собой используются связи (англ. «relationship»).

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

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

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

В качестве примера приведена ER-диаграмма БД ВУЗ в развёрнутом и свёрнутом виде.

Пример ЕR-диаграммы (рис. 6).

Развернутый вид Свернутый вид

факультеты

факультеты

название

ФИО_декана

кафедры

кафедры

название

ФИО_зав

ФИО

з/п

преподаватели

возраст

преподаватели

стаж

Рис. 6. Пример ER-диаграммы

Ограничения целостности

В ER-модели предусмотрены следующие виды ограничений целостности.

А) Ограничения на значения атрибутов, которые являются элементом схемы (структуры) данных. Представляют собой явные указания множеств допустимых значений для некоторых или всех атрибутов, а также соотношения между значениями атрибутов, которые должны выполняться. Множество значений может быть задано несколькими способами, в том числе перечислением допустимых значений, указанием типа (int, float, string и т.д.) или указанием условия принадлежности. В описаниях функций принадлежности и при определении допустимых отношений можно применять операции сравнения, логические связки и другие средства используемого языка определений ограничений целостности. На ER-диаграмме ограничения этого типа показаны в овалах.

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

С) Ограничения по типу связи. Можно указать кардинальные числа сущностей в каждой связи. Совокупность этих чисел называется типом данной связи. Модель допускает только связи с кардинальными числами «1» и «M» («N», бесконечность). Тип связи «М:N» практически указывает на отсутствие ограничений. Максимальные кардинальные числа (тип связи) проставляются на ER-диаграмме.

D) Ограничения по существованию. Иногда сам факт существования сущности зависит от существования какой-либо связи данной сущности с другой сущностью (в этом случае минимальное кардинальное число данной сущности равно 1, а не 0). Тогда соответствующее множество сущностей называется множеством слабых сущностей относительно данной связи. В противном случае множества сущностей и связей называются множествами регулярных сущностей и связей. По умолчанию все множества являются регулярными. Множества слабых сущностей на ER-диаграмме обозначаются с помощью двойных линий.

Операции над данными

В связи с тем, что модель данных «СУЩНОСТЬ-СВЯЗЬ» используется в основном для инфологического моделирования, остановимся только на спецификационном подходе, как более абстрагированном от физической организации данных на внешнем носителе.

Развернутый вид Свернутый вид

факультеты

факультеты

название

1 1

ФИО_декана

кафедры

кафедры

N название N

ФИО_зав

1 ФИО 1

з/п

преподаватели

N возраст N

преподаватели

стаж

Рис. 7. Ограничения целостности

Для манипулирования данными в спецификационном языке для ER-модели достаточно селекции по данным и селекции по связям, и обыкновенных теоретико-множественных операций

Для примера рассмотрим здесь одну из модификаций удобного языка манипулирования данными – CABLE’а. (анг. «chaine based language» – язык, основанный на цепочках).

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

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

Относительно высокая мощность CABLE’а при всей его простоте объясняется тем, что в ER-модели явным образом хранится информация о связях между объектами реального мира.

Рассмотрим команды языка.

А) select – создает выборку. Формат команды:

<выборка>=select <имя множества сущностей или связей>.[<условие>]\…

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

B) Теоретико-множественные операции: объединение (union), пересечение (intersect) и разность (minus).

C) Команды, определяющие действия над данными, вошедшими в выборку:

delete <выборка> - удаление записей, входящих в выборку.

output <выборка>.<список атрибутов через пробел> - вывод результата запроса

Возможны также и другие действия над данными.

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

Пример запроса 1. Выдать ФИО всех преподавателей старше 40 лет.

S1= select ПРЕПОДАВАТЕЛИ.возраст>40

Output s1.ФИО

Пример запроса 2. Выдать ФИО всех преподавателей физико-математического факультета, получающих зарплату больше 5000 рублей.

S1 = select ФАКУЛЬТЕТЫ.название=’ФМФ’\СОСТОЯТЬ_ИЗ\ КАФЕДРЫ \ БЫТЬ_СОТРУДНИКОМ. З/п>5000\ ПРЕПОДАВАТЕЛИ

Output S1.ФИО

Пример запроса 3. Выдать названия тех кафедр ФМФ, на которых нет сотрудников со стажем больше 20 лет.

S1 = select ФАКУЛЬТЕТЫ.название=’ФМФ’\СОСТОЯТЬ_ИЗ\ КАФЕДРЫ

S2 = select ПРЕПОДАВАТЕЛИ.Стаж>20\БЫТЬ_СОТРУДНИКОМ\ КАФЕДРЫ

minus S1, S2

Output S1.название

Примечание. В s1 мы находим все кафедры ФМФ, а в S2 все кафедры, на которых есть сотрудники со стажем больше 20 лет. Для решения нашей задачи остается вычесть из множества s1 множество s2, что мы и делаем.

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

Перечислим основные достоинства модели.

A) Естественность. Структуры в ER-модели сравнительно неплохо соответствуют структурам реального мира по сравнению со структурами в других моделях.

B) Возможность явного определения ограничений на существование.

C) Хранение явной информации о связях, что позволяет избежать неоднозначности в вопросе существования связи, что характерно для многих других моделей.

К недостаткам следует отнести.

A) Трудность практической реализации.

B) Неприспособленность для распределенных