Концептуальное проектирование реляционных баз данных (Лабораторная работа № 1), страница 2

Связь – это графически изображаемая именованная (!) ассоциация между двумя сущностями. Эта ассоциация может существовать между разными сущностями или быть рекурсивной (т. е. связывать сущность с собой же; примером может служить связь двух сотрудников типа «начальник – подчинённый»). Связь может иметь атрибуты. Конкретные значения атрибутов связи между сущностями A и B характеризуют параметры взаимодействия одного экземпляра сущности A с одним экземпляром сущности B. Также связь характеризуется множественностью. Множественность показывается на обоих концах связи: точечный вход означает, что в связи участвует один экземпляр данной сущности; трёхточечный вход показывает, что в связи может участвовать множество экземпляров данной сущности. Пример графического изображения связей между сущностями с указанием типов множественности приведен на рис. 3.

Рисунок 3 – Изображение связей между сущностями

Связь «проезжает» между сущностями ПОЕЗД и СТАНЦИЯ характеризуется тремя атрибутами: время прибытия (тип дата/время), время отправления (тип дата/время) и детали (строковый тип). Что описывает конкретный экземпляр данной связи? Он описывает факт пребывания некоторого поезда (например, «Смена») на одной из станций (например, «Бологое»). Каждый экземпляр связи показывает время прибытия данного поезда на данную станцию и время отправления данного поезда с данной станции. Последний атрибут позволят указать, что для данного поезда данная станция является станцией отправления, или станцией назначения, или промежуточной станцией.

Связь «проезжает» отмечена трехточечными входами с обоих концов. Эта связь имеет тип «многие-ко-многим». Действительно, поезд по пути следования проезжает множество станций (в данном случае пункт отправления и пункт прибытия также включаются в число проезжаемых станций). В свою очередь, каждую станцию всегда проезжает множество поездов.

Связь «состоит из» между сущностями ПОЕЗД и ВАГОН имеет другой тип связи: «один-ко-многим». Поезд состоит из множества вагонов, поэтому напротив сущности ВАГОН нарисован трехточечный вход. В то же время, каждый отдельный вагон относится к одному поезду, а не ко множеству; именно это показывает точечный вход напротив сущности ПОЕЗД.

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

Дополнительно на ER-диаграммах показывается кардинальность связи, которая означает обязательность участия экземпляров сущности в ассоциации. Для любого пассажирского вагона должен быть известен поезд, в состав которого он входит, а значит, сущность ПОЕЗД обязательно участвует в связи с сущностью ВАГОН, т. е. имеет обязательный класс принадлежностик этой связи. В свою очередь, необязательный класс принадлежности означает, что, даже если экземпляр данной сущности есть в природе, это еще не значит, что он участвует в данной связи. На ER-диаграмме это показывается следующим образом (рис. 4).

Рисунок 4 – Обязательность включения сущностей в связь

Таким образом, любая связь может быть охарактеризована аналитической записью вида:

,

где:

m1, m2 – класс принадлежности сущности к связи (0 – необязательный, 1 – обязательный);

n1, n2 – степень конца связи.

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

·  (1,1):(1,1) – связь «один-к-одному», класс принадлежности обеих сущностей обязателен;

·  (0,1):(0,1) – связь «один-к-одному», класс принадлежности обеих сущностей необязателен;

·  (1,1):(0,N) – связь «один-ко-многим», первая сущность обязательно включается в связь;

·  (0,M):(0,N) – связь «многие-ко-многим», включение обеих сущностей не обязательно.

Приведенный способ обозначения элементов ER-диаграмм не является единственно возможным. Сведения о других нотациях можно найти в работе [1].

Для того чтобы построить концептуальную схему БД, необходимо внимательно изучить предметную область и текстовое описание конкретной задачи (если оно есть; если нет, желательно его составить). На основании анализа предметной области определяются сущности и их атрибуты. Такая работа требует творческого подхода, и не всегда удается полностью формализовать ее. Но на начальном этапе разработки модели может помочь выписывание из текста задачи всех имен существительных: часть из них будет обозначать сущности, часть – атрибуты и, возможно, останутся слова, которые не будут обозначать ни то, ни другое. Затем можно приступать к определению связей между сущностями, для чего выяснить, как объекты предметной области взаимодействуют между собой в реальном мире.

Необходимо помнить, что:

·  любая сущность должна иметь атрибуты;

·  атрибут сущности не может быть другой сущностью (например, у сущности ФАКУЛЬТЕТ не может быть атрибута «декан», т. к. декан – это отдельная сущность со своими особыми характеристиками; речь здесь должна идти о связи декана с факультетом);

·  каждая сущность должна участвовать хотя бы в одной связи.

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

3. Порядок выполнения работы

1. Изучить теоретическую часть.

2. В соответствии с выбранным вариантом задания построить концептуальную схему БД в виде ER-диаграммы.

3. Подготовить и защитить отчёт.

4. Содержание отчёта

1. Цель работы.

2. Краткое описание выбранной предметной области.

3. Концептуальную схему БД в виде ER-диаграммы.

5. Литература

1. Введение в базы данных. Учебный курс / Зеленков Ю. А. http://www.mstu.edu.ru/education/materials/zelenkov/toc.html.