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

Вид материалаДокументы

Содержание


Тема: Модель «сущность – связь» (ER - модель)
Эта модель позволяет моделировать объекты ПО, а также взаимоотношения объектов
Основное назначение неформальной модели «сущность-связь»
Информация о проекте объединяется с помощью графических диаграмм.
Основное назначение атрибута – описание свойств сущности, а также идентификация экземпляров сущностей.
ОТОБРАЖЕНИЕ 1:М (связь один – ко – многим).
ОТОБРАЖЕНИЕ М : 1 (связь многие – к – одному) является обратным отображению 1 : М.
Факультет (
СТУДЕНТ (Номер зачетной книжки. ФИО_студента, Дата_рождения).
Лечение (
Связи между объектами
Мощность связи
Показатель кардинальности
Для бинарных связей показатель кардинальности может иметь следующие значения
Факультет < > декан.
Группа < » студент.
Преподаватель « » группа.
КУРС в связи ЧИТАЕТ
Рекурсивная связь
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   23

Тема: Модель «сущность – связь»

(ER - модель)



Модель типа «сущность – связь» - это неформальная модель предметной области, которая используется на этапе инфологического проектирования БД.

Эта модель позволяет моделировать объекты ПО, а также взаимоотношения объектов. Относительная простота, применение естественного языка и легкость понимания позволяют использовать модель как инструмент для общения с будущими пользователями для сбора информации о ПО при проектирования БД.

Основное назначение неформальной модели «сущность-связь» - описание предметной области и представление информации для обоснования выбора видов моделей и структур данных, которые в дальнейшем будут использованы в системе.

Существует несколько подходов к построению моделей типа «сущность-связь». Общим для всех подходов является использование трех основных конструктивных элементов для представления составляющих ПО – сущность, атрибут и связь.

Информация о проекте объединяется с помощью графических диаграмм. Составляющая «время» в составе конструктивных элементов в явном виде отсутствует. Время наступления событий может быть представлено в модели использованием атрибутов. Например, ГОД – РОЖДЕНИЯ, ДАТА – ПОСТУПЛЕНИЯ, ДАТА – ОКОНЧАНИЯ.

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

В модели используется также понятие «экземпляр сущности».

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

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

Атрибут – это поименованная характеристика сущности, которая принимает значения из некоторого множества значений. В модели атрибут выступает в качестве средства, с помощью которого моделируются свойства сущностей. Например, для описания свойств сущности КНИГА можно использовать атрибуты НАЗВАНИЕ, ФАИМИЛИЯ – АВТОРА, ГОД – ИЗДАНИЯ. Чтобы задать атрибут в модели, необходимо присвоить ему наименование, привести смысловое описание атрибута, определить множество его допустимых значений и указать для чего он используется.

Основное назначение атрибута – описание свойств сущности, а также идентификация экземпляров сущностей. Например, атрибут ШИФР – ДЕТАЛИ, которому соответствует множество уникальных значений шифров деталей, позволяет однозначно идентифицировать конкретные экземпляры сущности ДЕТАЛЬ в соответствующем наборе. Атрибут можно использовать и для представления связей (отношений) между сущностями, поскольку связь (отношение) характеризует именно те объекты, между которыми она существует (например, отношение ОТЕЦ – характер родства), и поэтому может выступать в роли свойства, признака сущности.

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

Тип связи рассматривается между типами сущностей, а конкретный экземпляр связи рассматриваемого типа существует между конкретными экземплярами рассматриваемых типов сущностей. При анализе связей между сущностями могут встречаться бинарные, тернарные и, в общем случае n-арные связи. Наиболее часто встречаются бинарные связи. Для определения характера взаимосвязей между двумя типами сущностей используется прямое и обратное отображение между двумя соответствующими множествами экземпляров сущностей.

Классификация бинарных связей

ОТОБРАЖЕНИЕ 1:1 (связь один – к – одному). С его помощью определяют такой тип связи между типами сущностей А и В, когда каждому экземпляру сущности А соответствует один и только один экземпляр сущности В и, наоборот, каждому экземпляру сущности В соответствует один и только один экземпляр сущности А. Это означает, что один экземпляр сущности, от которого направлена связь, идентифицирует один и только один экземпляр другой сущности и наоборот. Идентификация экземпляров сущностей уникальна в обоих направлениях для отображений 1:1. т. е. Каждой связанной записи одной таблицы соответствует в точности одна связанная запись в другой таблице. Данный тип связи образуется путем связывания таблиц по одноименным и однотипным ключевым полям, т.е. когда связываемые таблицы имеют одинаковые ключевые поля.

ОТОБРАЖЕНИЕ 1:М (связь один – ко – многим). С его помощью определяют тип связи между типами сущностей А и В, когда одному экземпляру сущности А может соответствовать 0, 1 или несколько экземпляров сущности В, однако каждому экземпляру сущности В соответствует только один экземпляр сущности А. Это означает, что с одним экземпляром сущности А может быть связано либо несколько экземпляров сущности В, либо один, либо ни одного. Но при этом каждый экземпляр сущности В связан только с одним экземпляром сущности А, т. е. идентификация экземпляров при отображении 1:М уникальна только в направлении от В к А.

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

На втором этапе определяется связь между таблицами путем установления факта соответствия ключевого поля таблицы на стороне «один» полю внешнего ключа в таблице на стороне «многие». Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. В отношении «один – ко -многим» главной таблицей является таблица, которая содержит первичный ключ и составляет часть «один» в этом отношении. Таблица со стороны «много» является подчиненной таблицей


ОТОБРАЖЕНИЕ М : 1 (связь многие – к – одному) является обратным отображению 1 : М.

ОТОБРАЖЕНИЕ М : N (многие –ко – многим) определяет тип связи между типами сущностей А и В, при котором каждому экземпляру сущности А может соответствовать 0,1 или несколько экземпляров сущности В и наоборот. С одним экземпляром сущности А может быть связано либо несколько экземпляров сущности В, либо один, либо ни одного и наоборот. Идентификация экземпляров сущностей неуникальна в обоих направлениях.

Связь (многие –ко – многим) фактически представляет две связи с отношением (один – ко – многим) через третью таблицу, ключ которой состоит, по крайней мере, из двух полей, которые являются полями внешнего ключа в двух других таблицах.

Ключи

Среди атрибутов особое положение занимают такие, с помощью которых можно идентифицировать экземпляр объекта. Такие атрибуты называются ключами. Атрибут или несколько атрибутов, значения которых уникальным образом идентифицируют каждый экземпляр объекта, являются потенциаль­ным ключом данного объекта. Потенциальных ключей может быть несколь­ко. Например, экземпляр объекта ФАКУЛЬТЕТ (Код факультета. Назва-ние_факультета, ФИО_декана) может однозначно идентифицироваться любым из первых двух указанных атрибутов. Третий атрибут не рекоменду­ется использовать в качестве идентификационного, поскольку нельзя гаран­тировать отсутствие полного совпадения значений атрибута ФИО_декана для нескольких экземпляров данного объекта.

Рассмотрим объект:

СТУДЕНТ (Номер зачетной книжки. ФИО_студента, Дата_рождения).

Из трех перечисленных атрибутов в приведенном примере только атрибут Номер_зачетной_книжки однозначно идентифицирует каждый экземпляр объекта СТУДЕНТ. Атрибут Дата_Рождения, напротив, не может служить ключом, так как любая данная дата может быть днем рождения нескольких разных людей.

Один из потенциальных ключей может быть выбран в качестве первичного ключа. Обычно в качестве первичного ключа выбирается тот, который имеет наименьшую длину. Остальные потенциальные ключи называются альтер­нативными. В рассмотренном выше примере атрибут Код_факультета имеет меньшую длину, чем атрибут Название_факультета, поэтому его следует вы­брать в качестве первичного ключа. Тот факт, что атрибут служит первич­ным ключом, отмечается его подчеркиванием.

Идентификацию некоторых объектов иногда приходится осуществлять при помощи составных ключей, которые включают несколько атрибутов.

Например, объект:

ЛЕЧЕНИЕ (ФИОврача. ФИО пациента. Дата назначения. Лекарство)

однозначно идентифицировать можно только составным ключом: (ФИО врача. ФИО пациента. Дата назначения).

С другой стороны, если нужно, всегда можно создать идентификационный номер, однозначность которого будет заложена в системе. Во избежание из­лишней детализации на диаграммах часто атрибуты вовсе не изображают или изображают только первичные атрибуты, опуская остальные.

Связи между объектами

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

Каждому типу связи присваивается имя, которое должно представлять его функцию. Рассмотрим объекты ПРЕПОДАВАТЕЛЬ и КУРС. Между этими

объектами можно определить связь ЧИТАЕТ, сопоставив каждому препода­вателю ту дисциплину, по которой он читает лекции, или, наоборот, каждой дисциплине — преподавателя. Связь ЧИТАЕТ составлена из множества пар, в каждой из которых преподаватель — из объекта ПРЕПОДАВАТЕЛЬ, а дисциплина — из объекта КУРС (рис. 3.6).



Полученная структура сама по себе является объектом, состоящим из пар экземпляров, взятых из двух объектов, связанных между собой. Объект ЧИТАЕТ, полученный путем связи между объектами ПРЕПОДАВАТЕЛЬ и КУРС, называется составным объектом.

Описанная ситуация на диаграммах имеет свое графическое изображение, где тип связи обозначается в виде ромбика с указанным на нем именем свя­зи, который соединен линиями со связываемыми объектами (рис. 3.7).



В связи могут участвовать не два, а большее количество объектов, которые

в данном случае являются участниками этой связи. Количество участников

некоторой связи называется степенью связи. До сих пор обсуждались связи

между двумя объектами. Такие связи называются бинарными.

Помимо бинарных связей существуют и другие типы связей:
    • тернарные — между тремя объектами;
    • кватернарные — между четырьмя объектами;
    • N-арные — между N объектами.

В подавляющем числе случаев проектирования БД можно ограничиться рас­смотрением бинарных связей.

Для характеристики свойств связи, также как и для объектов, можно ис­пользовать атрибуты.

Мощность связи


Важной характеристикой связи является ее мощность, которая обозначает максимальное количество экземпляров одного объекта, связанных с одним экземпляром другого объекта. Например, если допустить, что у человека может быть только один супруг, то мощность связи ЖЕНАТЫ будет равна одному в каждом направлении (рис. 3.8).

Иногда помимо максимальной мощности полезно определять и минимальную мощность. В рассматриваемом примере не исключаются одинокие мужчины и женщины, поэтому минимальная мощность равна нулю в каждом направле­нии. Такая ситуация может быть обозначена следующим образом:



Некоторые связи не имеют конкретного значения максимальной мощности. Например, преподаватель может читать не один курс, а, возможно, больше. Такую мощность обозначают: 1,*, где 1 обозначает минимальную мощность,

а * обозначает "много" (существует и другой способ обозначения "много" — вместо * ставится N). С другой стороны, если допустить, что каждый дан­ный курс читается одним и только одним преподавателем, то мощность в обратном направлении будет 1,1.

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

Связь, имеющая максимальную мощность в одном из направлений, равную одному, называется функциональной в этом направлении. В последней рас­смотренной ситуации связь между преподавателем и курсом является функ­циональной в направлении от курса к преподавателю. Это означает, что, зная курс, можно однозначно определить преподавателя, читающего его. Это отношение не является функциональным в обратном направлении, по­скольку преподаватель, как было оговорено ранее, может читать несколько курсов.

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

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

"один к одному" (\: 1), "один ко многим" {\: N), "много ко многим" (М:N).

Если максимальная мощность связи в обоих направлениях равна одному, мы называем ее связью "один к одному" {\: 1).

Например, на факультете может быть один декан, и обратно, один и тот же декан может руководить только одним факультетом, что может быть обозна­чено следующим образом:

ФАКУЛЬТЕТ < > ДЕКАН.

Если максимальная мощность в одном направлении равна одному, а в дру­гом — многим, то связь называется "один ко многим" (1:N).

Например, в группе учится много студентов, но каждый студент учится только в одной группе:

ГРУППА < » СТУДЕНТ.

Концептуальная модель подобной связи приведена на рис. 3.9. На диаграм­ме использовано два способа обозначения вида бинарной связи: символиче­ская (со стороны объекта ГРУППА выход связи помечен символом 1, а со стороны объекта СТУДЕНТ — символом N) и стрелками (в направлении, где максимальная мощность равна многим, проставлена двойная стрелка, а со стороны, где она равна единице — одинарная). Реально при построе­нии диаграмм выбирают один из них.



И наконец, если максимальная мощность в обоих направлениях равна многим, то такая связь относится к типу "много ко многим" (M:N). Напри­мер, преподаватель работает в разных группах, и в одной и той же группе работают различные преподаватели:

ПРЕПОДАВАТЕЛЬ « » ГРУППА.

Связь между объектами осуществляется посредством атрибутов.
Например, рассмотрим два объекта:
Объект: СТУДЕНТ

Атрибуты: Номер зачетной книжки

ФИО студента

Объект: ГРУППА

Атрибуты: Код группы

Количество студентов

ФИО старосты

Сейчас эти два объекта не связаны между собой. Для их связи в число атри­бутов объекта СТУДЕНТ необходимо добавить код группы, в которой он учится, и значение которого будет использовано для связи экземпляра од­ного объекта с экземпляром другого объекта.

Следует отметить, что атрибут объекта — частный случай связи одного объ­екта с другим объектом. При нормальном использовании атрибуты имеют функциональные связи в направлении от объекта к атрибуту. Это означает, что значение атрибута однозначно определено для каждого экземпляра объ­екта. Например, у каждого человека есть ровно одна дата рождения и одна мать. Максимальная мощность связи со стороны атрибута в такой ситуации всегда равна одному, поэтому в диаграммах ее можно опустить. Если нет необходимости использовать атрибут как объект, участвующий в других свя­зях, то для его изображения на диаграммах применяют уже рассмотренную краткую запись.

Степень участия

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

Если же для объекта допустимо неучастие его некоторых экземпляров в свя­зи, то степень участия данного объекта в этой связи является частичной, а его класс принадлежности — необязательный.


Концепции проектирования

Рассмотрим еще раз связь, изображенную на рис. 3.7, между объектами ПРЕПОДАВАТЕЛЬ и КУРС. Известно, что в состав преподавателей кафед­ры входят специалисты разных категорий: ассистенты, старшие преподава­тели, доценты, профессора. Ассистентам, как правило, не поручается чтение лекций, поэтому степень участия объекта ПРЕПОДАВАТЕЛЬ в связи ЧИТАЕТ является частичной.




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


участия объекта КУРС в связи ЧИТАЕТ является полной (рис. 3.10). Однако если учебный план содержит изучение дисциплин, по которым чтение лекций не предусмотрено, то в этой ситуации степень уча­стия объекта КУРС в связи ЧИТАЕТ будет также частичной.

На диаграммах участники связи с полным участием соединяются со знаком связи двойной линией, а участники связи с частичным участием — одинар­ной линией


Рекурсивная связь

Рекурсивная связь — это особый вид связи, в которой одни и те же экземп­ляры объекта участвуют несколько раз и в разных ролях. Например, один из сотрудников кафедры является ее заведующим. Различным ролям в этом случае присваиваются различные имена (рис. 3.11).