Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных проектирование и реализация. Учебное пособие
.pdf
– связь 1 : М (один к многим) означает, что каждый экземпляр одной
сущности связан не более чем с М экземплярами другой сущности, но
не наоборот;
– связь М : М (многие к многим) означает, что каждый экземпляр одной сущности связан не более чем с М экземплярами другой сущности
и наоборот;
обязательность (
модальность) – способ, которым экземпляры одной сущности связаны с экземплярами другой сущности (обязательная
связь, возможная связь, не обязательная связь):
– обязательная связь означает, что все объекты обеих сущностей обя-
зательно должны быть связаны (обязательно все участвуют в связи);
– возможная связь означает, что все объекты одной сущности обя-
зательно должны участвовать
в связи, но не все объекты другой сущ-
ности могут быть связаны с ними (могут не участвовать в связи);
– не обязательная связь означает, что не все объекты обеих сущно-
стей могут участвовать в связи;
арность, или степень, определяет количество сущностей, участ-
вующих в связи. Выделяют связи:
– унарные (связь
существует между объектами одной сущности).
Пример: Сотрудник – Руководитель (руководитель является сотрудником);
– бинарные (связь существует между объектами двух сущностей).
Пример: Товар – Производитель;
– тернарные (связь существует между объектами трех сущностей).
Пример: связь между объектами сущностей Врач, Пациент, Анализ.
Эту связь нельзя представить в виде трёх бинарных связей (Врач – Па-
, Врач – Анализ, Пациент – Анализ), поскольку при этом
циент
нельзя получить ответы на вопросы, касающиеся одновременно трех
объектов, например, кто из врачей назначил конкретному пациенту
данный анализ;
– в общем случае n-арные.
Отметим, что между конкретными сущностями возможно несколько
различных по смыслу связей, например, между сущностями Врач и Па-
циент могут
быть связи ВрачКонсультант и ЛечащийВрач.
Иллюстрация (документирование) этого этапа проектирования
производится с помощью диаграмм Сущность – Связь (ER-диаграмм). Существуют различные варианты отображения (нотации)
21

ER-диаграмм [24, 31] (см. приложение А), но все варианты исходят из
одной идеи – рисунок всегда нагляднее текстового описания. ER-диаграммы используют графическое изображение сущностей предметной
области, их свойств (атрибутов) и взаимосвязей между сущностями.
Часто атрибуты на схеме не показывают, чтобы ее не перегружать,
а анализируют отдельно.
При изложении материала пособия
на ER-диаграммах сущности
будут изображаться в виде прямоугольников, внутри которых записывается имя сущности, а связи между сущностями будут обозначаться
стрелками (одинарная стрелка соответствует кардинальности 1, двойная – М, рядом со стрелками будет указываться имя связи, а также обязательность связи символами; О – обязательное участие объектов
в связи или Н – не
обязательное), или символами значности 1, М и обя-
зательности – Н, О.
Рис. 3.2 показывает применение используемой в пособии нотации
для отображения возможных отношений между экземплярами сущностей. Здесь черные кружки обозначают объекты соответствующих сущностей, а линии – связи (взаимодействие) между объектами.
Для автоматизации процесса построения ER-диаграмм можно использовать программный пакет MS Visio или
подобные свободные аналоги с учетом того, что графическая нотация (способ обозначения сущностей и свойств связи) зависит от используемых инструментальных
средств.
5. Определение множества допустимых значений (домена) и форму-
лирование ограничений для каждого атрибута.
6. Определение для каждой сущности набора атрибутов, значения ко-
торых однозначно идентифицируют экземпляры сущностей – первич-
ные ключи
(Primary Key, PK). Скорее всего, это будут искусственные
(суррогатные) атрибуты (коды, идентификаторы), поскольку естествен-
ные атрибуты склонны к изменению своих значений, что недопустимо
(нежелательно) для первичных ключей. Для реализации связей между эк-
земплярами сущностей выделяют внешние ключи (Foreign Key, FK) –
атрибуты, семантика и значения которых совпадают со значениями первичных ключей.
Возможны классификации сущностей и
связей по другим призна-
кам [24].
1. Сущности подразделяются на сильные и слабые. Сущность явля-
ется слабой, если ее существование зависит от другой сущности – сильной
22

по отношению к ней. Например, сущность «Заказ», представляющая
сведения о заказанных клиентами товарах, будет слабой по отношению
к сущности «Клиент»: если будет удален экземпляр сущности «Клиент», соответствующий реальному клиенту, заказавшему некоторые товары, то сведения о заказе этого клиента (все экземпляры сущности «Заказ», связанные с удаляемым экземпляром сущности «
Клиент») также
должны быть удалены. Сильная сущность называется родительской,
а слабая – дочерней (потомком).
2. Идентифицирующие и неидентифицирующие связи. Идентифи-
цирующие, когда экземпляр сущности-потомка (слабая сущность) од-
нозначно определяется своей связью с сущностью-родителем (сильная
сущность). В идентифицирующей связи экземпляр дочерней зависит от
родительской сущности и не может существовать без экземпляра
родительской сущности, например, «Клиент» и «Заказ». Родительская сущность передает свой ключ (PK) в группу атрибутов, образующих первичный ключ сущности-потомка (слабая сущность).
Неидентифицирующая связь используется для соединения двух
сильных сущностей, например, «Отдел» и «Сотрудник». Обе эти сущности независимы друг от друга. В неидентифицирующей
связи одна
сущность (родительская) передает свой ключ (PK) в область неключевых атрибутов (FK) другой сущности (потомка).
В процессе моделирования данных могут быть выявлены сущности,
часть атрибутов и связей которых совпадает. Эта ситуация соответствует иерархии наследования. Иерархия наследования представляет
собой особый тип связи – обобщение (общее-частное, is-a), или категоризация, объединение сущностей,
которые разделяют общие характеристики. Все общие атрибуты можно выделить в сущность, называемую
супертипом, а несовпадающие (уникальные для каждой категории) атрибуты определяют сущности-подтипы (категории), связанные с супертипом. Для каждой категории можно указать дискриминатор – атрибут
родового предка (супертипа), позволяющий определить, с экземпляром
какого подтипа связан экземпляр супертипа. Первичный ключ
родительского объекта переносится в состав первичного ключа дочерних
объектов.
Этот тип связи можно рассматривать как частный случай связи один
к одному, поскольку он отражает единственность взаимосвязи экземпляра объекта-подтипа с тем же экземпляром объекта-супертипа.
23

На ER-диаграмме такие связи можно показать следующим образом
(рис. 3.1).
Рис. 3.1. Связь полной категории
Пример
Читателями библиотеки вуза являются студенты, преподаватели и
сотрудники. Каждая из этих категорий описывается разным набором атрибутов.
Читатель (ФИО, Адрес, Номер читательского билета, Дата регистрации, Категория).
Студент (Факультет, Курс, Группа).
Преподаватель (Кафедра, Должность, Степень, Звание).
Сотрудник (Отдел, Должность).
Несколько иная ситуация возникает при рассмотрении связи типа агрегация (
целое-часть, part of). При агрегации родительский объект (или
агрегат) связывается с несколькими дочерними объектами (или компонентами). Компоненты родительского объекта ссылаются на агрегат посредством внешнего ключа, не входящего в состав первичного ключа,
т. е. связи являются неидентфицирующими. При этом компоненты агрегата могут существовать или не существовать вне агрегата.
24

М
у
у
М:М
М:М
М
М:М
Имя сущности 1 Имя сущности 1
Имя связи Имя связи Имя связи
Имя с
щности 2
Связь 1:1
Один к одному
1О 1О
Обязательная
1О МО
Обязательная
МО МО
связь 1:1
связь 1:М
Обязательная
связь
Имя с
щности 2
Связь 1:М
Один ко многим
1О 1Н
Возможная
связь 1:1
1Н МО
Возможная
связь 1:
МО МН
Возможная
связь
Имя сущности 1
Имя сущности 2
Связь М:М
Многие ко многим
1Н 1Н
Не обязательная
связь 1:1
1Н МН
Не обязательная
связь 1:
МН М Н
Не обязательная
связь
Рис. 3.2. Классификация связей по значности и обязательности
25

Примером такой связи может служить описание маркированных
(имеющих индивидуальные идентификаторы-маркеры) компонентов
автомобилей: каждый компонент может быть частью конкретного автомобиля, а может существовать самостоятельно вне связи с конкретным автомобилем (двигатель, шасси, кузов, коробка скоростей и т. п.).
26

4. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ
БАЗЫ ДАННЫХ
Логическое проектирование заключается в преобразовании (отображении) концептуальной модели в модель данных (логическую модель),
поддерживаемую некоторым классом СУБД.
Модель данных – совокупность правил порождения структур данных в БД, операций над ними, а также ограничений целостности, определяющих допустимые связи и значения данных, последовательность
их изменения [13].
Логическая модель – модель базы данных, выраженная
модели данных. Этим она отличается от концептуальной модели, описывающей семантику предметной области без указания технологии
(конкретных методов реализации), и от физической модели, которая
описывает конкретные физические механизмы, применяемые для хранения данных и манипуляции с ними.
В логической модели данных описывается некоторый набор родовых понятий и
дящие в определенный класс (множество), и управляемые ими базы данных, если они основываются на этой модели.
Описание логической модели состоит из трех частей, относящихся
к разным аспектам использования базы данных: структурной, манипу-
ляционной и целостной. В структурной части модели данных фиксируются
няться на уровне пользователя при организации БД, соответствующих
этой модели. Манипуляционная часть модели содержит спецификацию
одного или нескольких языков, предназначенных:
удаление);
основные логические структуры данных, которые могут приме-
для создания физических структур и их модификации (изменение,
признаков, которыми должны обладать все СУБД, вхо-
в понятиях
27

для работы с данными (добавление, изменение, удаление, вы-
борка);
для реализации некоторых алгоритмов (создание процедур и/или
функций).
Основное назначение манипуляционной части модели данных –
обеспечить эталонный язык БД, уровень выразительности которого должен поддерживаться в реализациях СУБД, соответствующих этой модели.
Наконец, в целостной части модели данных специфицируются
механизмы ограничений целостности, которые непременно должны поддерживаться во всех реализациях СУБД, соответствующих данной модели.
История логических моделей начинается с 1968 года, когда фирма
IBM выпустила Information Management System (IMS) – систему управления иерархическими базами данных [27].
К настоящему времени, кроме иерархической, известны и другие
модели данных (подходы к организации хранения): сетевая, реляционная, объектно
-ориентированная и семейство других, обозначаемых как
NOSQL [28, 29].
4.1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ
Появление реляционной модели связано с опубликованием в 1975 году
статьи Э.Ф. Кода [30], в которой было приведено формальное описание
структуры хранения данных как совокупности связанных отношений.
Реляционная модель характеризуется высоким уровнем абстракции
данных, тем не менее является удобной и наиболее привычной
формой
представления данных, поэтому в настоящее время эта модель служит
фактическим стандартом, на который ориентируются практически все
современные коммерческие СУБД.
В соответствии с [32] три составные части реляционной модели дан-
ных описываются следующим образом.
Структурная часть модели указывает, что единственной структу-
рой данных является нормализованное n-арное отношение.
Манипуляционная часть модели определяет
два базовых меха-
низма манипулирования данными: основанная на теории множеств
реляционная алгебра и основанное на математической логике реляционное исчисление. Функцией манипуляционной части реляционной
28

модели является обеспечение меры реляционности любого конкрет-
R
R
ного языка реляционных БД: язык называется реляционным, если он
обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.
Целостная часть модели определяет требования целостности отношений и целостности ссылок. Первое требование состоит в том, что кортежи любого отношения
уникальны. Требование целостности ссылок
устанавливает взаимосвязь между отношениями.
Таким образом, реляционная модель данных – логическая модель
данных, описывающая:
структуры данных в виде изменяющихся во времени наборов от-
ношений;
теоретико-множественные операции над данными: объединение,
пересечение, разность и декартово произведение;
специальные реляционные операции: селекцию, проекцию, со-
единение и деление;
специальные правила, гарантирующие целостность данных.
Реляционная модель обеспечивает высокую степень независимости
приложений от физического представления данных, а наличие формального аппарата представления (теория отношений) и манипулирования
данными (реляционная алгебра или реляционное исчисление) обусловили ее широкое использование в системах обработки данных, а большое количество реляционных СУБД как проприетарных, так и
относящихся к классу OPEN SOURCE (Oracle, MS SQL Server, MySQL,
PostgreSQL) и их использование в самых разнообразных приложениях
показывают, что реляционная модель данных достаточна для моделирования многих предметных областей.
В соответствии с [33] отношение определяется следующим образом.
, , ...,
Пусть
DD D
12
n
– некоторые множества, не обязательно различ-
ные, называемые доменами.
Тогда отношением R со схемой
DD D
12
,(, ,., )..
называется подмножество декартова произведения
n
DD D
12
, обозначаемое как
n
, , ...,
упомянутых множеств, т. е.:
,,.( .., * * *)
DD D D D D
12 1 2
nn
.
Отношение R состоит из заголовка (схемы) и тела. Заголовок пред-
ставляет собой множество атрибутов (имен доменов), а тело – множество
29

кортежей, соответствующих заголовку. Каждый кортеж представляет
множество значений
ющих доменов (
dD
ii
dd d
12
). Количество кортежей называют мощностью
),,(,
, взятых по одному из соответству-
n
отношения.
Основные свойства отношения:
в отношении нет двух одинаковых кортежей;
порядок кортежей в отношении не определен;
порядок атрибутов в заголовке отношения не определен;
все значения атрибутов атомарные (нормализованное отноше-
ние).
Подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости), называется потенциальным ключом. Поскольку все кортежи в отношении по определению уникальны, в любом отношении должен существовать, по
крайней мере, один потенциальный ключ.
Отношение имеет простую графическую интерпретацию в виде
«плоской» таблицы,
в которой нет составных столбцов и повторяющихся групп (рис. 4.1). В таблице содержатся сведения о множестве однотипных (однородных) объектов, например, товарах, поставщиках, сотрудниках. При этом каждая строка таблицы (запись) содержит сведения об одном объекте (сотруднике, товаре, поставщике). Каждый столбец таблицы содержит значения какой-либо характеристики объектов,
например
, фамилии сотрудников, цены товаров.
Рис. 4.1. Схема «плоской» таблицы
Столбцы таблицы соответствуют атрибутам, а строки – кортежам,
а в клетках таблицы находятся значения атрибутов в кортежах. Однако
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
