Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных проектирование и реализация. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
связь 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]