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

Модуль2_Проектирование БД

.pdf
Скачиваний:
12
Добавлен:
16.03.2015
Размер:
799.34 Кб
Скачать

Присутствующая в исходном множестве зависимость {А1, А2} Æ {А5} может быть получена применением правила расширения к выведенной зависимости {А1} Æ {А5}, следовательно, также является выводимой. Удалив обе выводимых зависимости, получим граф, представленный на рис. 13.5.

A2

A1

A4

 

 

A5

A3

Рис. 13.5 Граф для минимального покрытия ФЗ

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

{А1}

Æ

{А2},

{А1}

Æ

{А3},

{А2}

Æ

{А4},

{А3}

Æ

{А4},

{А3}

Æ

{А5}.

2. Для перехода к 3НФ выполняем декомпозицию схемы С, сохраняя зависимости найденного минимального покрытия. В соответствии с ранее приведенным алгоритмом получим три отношения, находящиеся в 3НФ:

S1 1, А2, А3), S2 2, А4),

S3 3, А4, А5).

100

Дополнительные нормальные формы отношений

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

Нормальная форма Бойса-Кодда (НФБК)

Пусть задано отношение

R со схемой

С, в котором Х, У

и Z -

подмножества атрибутов, т.е. X C, Y C и Z C .

 

 

Подмножество атрибутов

X C

называется

детерминантом

отношения R, если существует нерефлексивная

(т.е. Y X )

ФЗ вида

 

Х Æ У и при этом не существует зависимости

Z Æ У, где Z X .

Т.е.

детерминант – аргумент функциональной зависимости, который не включает аргументов других ФЗ – «наименьший аргумент».

Отношение R находится в НФБК, если каждый его детерминант является возможным ключом этого отношения. Другими словами отношение находится в НФБК, если аргумент каждой ФЗ из минимального покрытия является ключом отношения.

Нормальная форма Бойса-Кодда устанавливает дополнительные ограничения в отношении, и поэтому не всякое отношение в 3НФ принадлежит НФБК.

Например, имеем схему отношения C(A, B, E) с ключом {A, B} и функциональными зависимостями: { A, B } Æ { E }, { E } Æ { A }, т.е.

C (A, B, E)

Данное отношение находится в 3НФ, т.к. единственный неключевой атрибут E зависит от всего ключа {A, B}, а дополнительная зависимость { E } Æ { A}, ключевого атрибута от неключевого не противоречит требованиям 3НФ. Однако, поскольку в отношении присутствует детерминант { E }, не являющийся ключом, это отношение не находится в НФБК. Более того,

101

невозможна декомпозиция такого отношения в НФБК без разрушения зависимости {A, B} Æ { E }.

Особенность НФБК состоит в том, что в ее определении кроме первичного ключа и ФЗ участвуют детерминанты и другие ключи отношения.

Для изучения способов улучшения структуры РБД продолжим преобразование отношения СТУДЕНТ, находящегося в 3НФ. Поскольку в отношении присутствует единственная ФЗ и детерминант {Специальность, Фамилия И.О.} совпадает с первичным ключом, то данное отношение находится в НФБК.

Дальнейшее преобразование отношения связано с включением в базу новых данных. Пусть в отношении СТУДЕНТ требуется представлять номер академической группы, в которой учится студент. Добавим такой атрибут и получим новое отношение с новыми ФЗ.

СТУДЕНТ (Специальность, Фамилия И.О., № группы, Успеваемость)

Поскольку в данном отношении {Специальность, Фамилия И.О.} являлись ключом, однозначно определяя студента, в нем присутствует зависимость

{ Специальность, Фамилия И.О.} Æ {№ группы}.

Новой ФЗ отношения является зависимость {№ группы} Æ {Специальность}, отражающая факт групповой подготовки по

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

Используя определение для 3НФ, можно убедиться, что новое отношение СТУДЕНТ находится в 3НФ, но поскольку детерминант { № группы } не является ключом отношения, оно не принадлежит НФБК.

Преобразование отношения в НФБК возможно, но требует переопределения его первичного ключа.

102

Так как {№ группы } Æ {Специальность} и эти объекты находятся в отношении многие к одному, следует заменить ключ отношения СТУДЕНТ на {№ группы, Фамилия И.О.} и переопределить его ФЗ. В новом отношении СТУДЕНТ пара атрибутов {№ группы, Фамилия И.О.} точнее, чем {Специальность, Фамилия И.О.} идентифицирует кортежи, и поэтому может служить новым первичным ключом. Схема отношения приобретает следующий вид:

СТУДЕНТ (№ группы, Фамилия И.О., Специальность, Успеваемость)

с зависимостями: {№ группы, Фамилия И.О.} Æ {Успеваемость }, {№ группы} Æ {Специальность}.

После переопределения ключа отношение СТУДЕНТ не находится в 3НФ, так как атрибут Специальность зависит от части ключа (№ группы). Выделяя данные атрибуты в отдельное отношение, получим два новых отношения, находящиеся и в 3НФ, и в НФБК:

СТУДЕНТ (№ группы, Фамилия И.О., Успеваемость)

СПЕЦИАЛЬНОСТЬ_ГРУППЫ (№ группы, Специальность).

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

103

Соотношения между формами иллюстрирует рис. 13.6.

Отношения в 1НФ

Отношения во 2НФ Отношения в 3НФ

Отношения в НФБК

Рис. 13.6. Соотношения между нормальными формами

Обобщением нормальной формы Бойса-Кодда является четвертая нормальная форма (4НФ). Данная форма определяется аналогично НФБК, но использует вместо функциональных многозначные зависимости атрибутов. В

отношении со схемой С,

где

X C и

Y C , существует многозначная

зависимость

Х

ÆÆ

У,

если для

заданного подмножества значений

атрибутов X

существует

подмножество,

состоящее из ассоциированных

значений атрибутов из Y, и это множество не связано со значениями атрибутов из подмножества (C \ X \ Y). Таким образом, многозначные зависимости отображают непересекающиеся области значений из множества атрибутов X C в области значений множества атрибутов Y C . Поэтому многозначные зависимости можно представить трубками отображения значений атрибутов, показанными на рис. 13.7.

104

Область

Область возможных

значений Y1,

значений

соответствующая

аргумента X1

области значений X1

 

Область

Область возможных

значений Y2,

значений

соответствующая

аргумента X2

области значений X2

Рис. 13.7. Многозначные зависимости отношения

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

Лекция 14. Семантические модели для разработки баз данных

Семантическая модель – система соглашений для описания состава и атрибутов объектов, логических правил и ограничений, действующих в предметной области.

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

диаграммы Чена,

ERдиаграммы,

семантические сети.

Для разработки информационных систем наибольшее применение нашли диаграммы Чена и ERдиаграммы. Именно они рассматриваются далее.

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

105

области. Выбор множества объектов и образование для них обобщенного типового представителя – сущности зависит от задач, которые предстоит решить с помощью создаваемой БД. Например, для описания множества изданий (наименований книг) в отделе каталогизации библиотеки используется сущность ПЕЧАТНОЕ ИЗДАНИЕ. Отдельные печатные издания различаются названиями, авторами, издательствами и т.д. С точки зрения отдела библиотеки, обслуживающего читателей, необходимо описание каждого экземпляра книги, поэтому должна быть введена другая сущность – КНИГА, экземпляры которой различаются инвентарными номерами, местом нахождения (абонемент или читальный зал), состоянием (хорошее или ветхое). Сущности, включаемые в описание предметной области, различаются именами.

В предметной области объекты (процессы), образовавшие сущность, различаются наборами и значениями своих характеристик. Важные для решаемых задач характеристики объектов включаются в описание объекта и называются атрибутами сущности. Атрибут сущности – типовое, абстрагированное представление для характеристики (параметра) объекта, образовавшего сущность. В пределах сущности атрибуты получают уникальные имена. Например, сущность ПЕЧАТНОЕ ИЗДАНИЕ имеет атрибуты Название, Авторы, Год издания и др. Некоторые атрибуты сущности могут быть простыми (неделимыми), например, Название, а другие – множественными, например, Авторы. Каждая сущность из описания данных представляется в базе множеством экземпляров, которые должны различаться значениями своих атрибутов. Важным свойством атрибута является обязательность (NOT NULL) или необязательность (NULL) присутствия какого-либо значения атрибута в экземпляре сущности. Например, в сущности ПЕЧАТНОЕ ИЗДАНИЕ естественно требовать для атрибута Название свойства NOT NULL – название обязательно, а для атрибута Авторы – NULL, так как допускаются книги, не имеющие авторов (например, народные сказки).

106

Справедливо утверждение, что в любой сущности должен быть такой набор атрибутов, значения которых уникальны в экземплярах этой сущности. Такой набор атрибутов называется ключом сущности. Сущность может иметь несколько ключей, один из которых, обычно самый короткий, называется первичным (Primary Key – PK). Во многих сущностях первичный ключ вводится дополнительным атрибутом. Например, это уникальный номер издания, присваиваемый в отделе каталогизации для печатного издания, или инвентарный номер для экземпляра книги. Общепринятым обозначением сущности в диаграммах является прямоугольник, над которым или внутри которого записывается название сущности, а затем перечисляются атрибуты. Например, сущность ИЗДАНИЕ может быть представлена несколькими способами, показанными на рис.14.1.

ИЗДАНИЕ

ИЗДАНИЕ ИЗДАНИЕ

N издания

ББК

Название

Год

издания

Рис. 14.1. Способы изображения сущности в диаграмме

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

107

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

ИЗДАНИЕ

Имеется

КНИГА

Выдана

ЧИТАТЕЛЬ

 

Имеется в

Принадлежит

Находится у

Получил книгу

 

библиотеке

изданию

 

читателя

на абонемент

Рис. 14.2. Диаграмма Чена Имя связи может допускать дополнительную уточняющую

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

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

|| – две вертикальные линии на связи означают обязательное участие в связи одного и только одного экземпляра сущности,

0| – ноль и вертикальная линия, означают участие в связи не более одного объекта. Линия обозначает один экземпляр сущности, участвующий в связи,

>| – один или более объектов могут участвовать в связи, >0 – ноль или более, то есть любое число объектов может участвовать в

связи.

108

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИЗДАНИЕ11

 

 

 

<

 

 

 

> 0

 

0

 

 

 

 

Выдана

 

ЧИТАТЕЛЬ

1

Имеется

 

КНИГА

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N абонем.

 

 

 

 

Инв. Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N издания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Место

 

 

 

 

ФИО

 

ББК

 

 

 

 

пребывания

 

 

 

 

. . . . . . .

 

 

Название

 

 

 

. . . . . . .

 

 

 

 

 

 

 

 

Год издания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.14.3. Диаграмма Чена с размеченными связями

Указанная разметка означает, что в связи «Имеется» точно одному изданию (каждому печатному изданию) соответствует один или более экземпляров книги. А в связи «Книга Выдана Читателю» читатель может не иметь книг (значок 0) или иметь любое количество книг на абонементе (значок > у сущности Книга). Заданные на связи количественные отношения между экземплярами сущности должны быть реализованы в описаниях БД для того, чтобы СУБД их контролировала и не допускала состояний базы, противоречащих этим свойствам предметной области.

Привлекательной особенностью диаграмм Чена является возможность связывать любое количество сущностей, используя многоарные связи. Например, отношение между студентом, учебным предметом и преподавателем можно представить одной связью Обучение с атрибутом Оценка (Рис. 14.4).

СТУДЕНТ

>

Обучение

< ПРЕПОДАВАТЕЛЬ

ПРЕДМЕТ

Рис. 14.4. Диаграмма Чена с небинарной связью

109