Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф.сис_вместе..doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

6.5.Нормальные формы отношений Первая нормальная форма

Атрибут называется простым, если значение его атомарно, т.е. неделимо (пример простых атрибутов: табельный номер сотрудника, фамилия сотрудника, оклад). Атрибут называется сложным, если его значение представляет собой объединение значений различных атрибутов (на Пример: атрибут Адрес [индекс, город, улица, дом, квартира]). Отношение называется отношением в первой нормальной форме, если все его атрибуты простые. Отношение «начальник отдела» находится в первой нормальной форме.

Вторая нормальная форма

П олная функциональная зависимость. Пусть А – это некоторый атрибут, Х – это набор атрибутов. Говорят, что А функционально полно зависит от Х, если Х  А, Y А, где Y любое подмножество Х. Набор атрибутов Х называют детерминантом отношения. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждый неключевой атрибут функционально полно зависит от возможного ключа. Так, отношение с зависимостью Сном, Лном, ТномСном не находится во второй нормальной форме.

Третья нормальная форма

Т ранзитивная зависимость. Пусть X, Y, Z – наборы атрибутов некоторого отношения.

Если XY, YZ но Y Х то XZ , тогда говорят что Z транзитивно зависит от X

Пример: транзитивной зависимости СномТном, ТномЛном  СномЛном.

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

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

Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)

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

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

Сном

Лном

Тном

Сфам, Проект, Квартал

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

6.6.Общая схема проектирования баз данных

  • Строим универсальное отношение;

  • Определяем все функциональные зависимости между атрибутами отношения;

  • Определяем, находится ли отношение в НФБК, если да - проектирование закончить, если нет – отношение разбивается на два.

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

Декомпозиция получается приведением к получению двух отношений из одного.

Например, было R(X,Y,Z), а в результате декомпозиции получили два R1(X,Y), R2(Y,Z).

Декомпозиция аномального отношения выполняется следующим образом.

Пусть R – отношение, не находящееся в НФБК, ai – некоторый атрибут, детерминант и является первичным ключом. Пусть ai зависит от aj (ai  aj). Эта зависимость препятствует нахождению отношения в НФБК. Отношение R(a1,…,ai,…,aj) разбивают на два

R1 (a1,…,ai,…,aj-1,aj) и R2(ai,aj)

Отношение R2 называется проекцией отношения R.

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

Теория реляционных баз данных говорит, что результаты запроса будут совпадать, если декомпозиция выполнена способом, при котором соединение R1 и R2 дает в точности исходное соотношение R1 – это декомпозиция без потерь.

Если естественное соединение R1 и R2 в итоге дает больше кортежей, чем в R – то это декомпозиция с потерями.

Отсутствие потерь при декомпозиции отношения R(X,Y,Z) в R1(X,Y), R2(Y,Z) гарантируется при условии, что от общего атрибута (Y) функционально зависит хотя бы один атрибут из двух оставшихся (теорема Хеза).

Возвратимся снова к нашему примеру.

У нас имеются следующие детерминанты:

Сном

Лном

Тном

Сфам, Проект, Квартал

Цепочки функциональных зависимостей:

Сном  Лном Тном

Сном  Тном  Лном

Сном, Проект, КварталВклад

Формируем отношения.

R1 (Сном, Сфам, Лном, Проект, Квартал, Вклад) – не находится в НФБК.

Рис. 6.2 Исходное отношение R1.

R2 (Лном, Тном) – находится в НФБК.

Сном  Сфам и одновременно Сном  Лном, значит Сном  Сфам, Лном.

R3 (Сном, Проект, Квартал, Вклад) – находится в НФБК.

R4 (Сном, Сфам, Лном) – находится в НФБК.

Таким образом, в результате декомпозиции мы получили следующие отношения

R 2 (Лном, Тном)

R3 (Сном, Проект, Квартал, Вклад)

R4 (Сном, Сфам, Лном)

Рис. 6.3 Отношение R4 (Сном, Сфам, Лном)

Рис. 6.4 Отношение R 2 (Лном, Тном)

Рис. 6.5 Отношение R3 (Сном, Проект, Квартал, Вклад)

R2

R4

R3

Лном

Тном

Сном

Сфам

Лном

Сном

Проект

Квартал

Вклад

25АП

5-17

289

Иванов

25АП

289

РКТ14

1990,3

3

4КТ

8-29

315

Николаев

4КТ

289

Зенит

1990,3

5

14ММ

4-85

429

Андреев

25АМ

289

ВКТ14

1990,4

2

559

Зайцев

14ММ

289

ВТА2

1990,4

4

315

ВКТ14

1990,3

6

315

ВТА8

1990,4

7

315

ВКТ14

1990,4

8

429

Зенит

1990,3

2

429

ОТР6

1990,4

7

429

ВКТ14

1990,4

4

559

ОВ77

1990,3

6

Присутствуют ли в этой БД аномалии вставки, удаления и обновления?

Вставка. На работу в лабораторию 25АР приняли Сорокина, его номер 687. Эта информация помещается в отношение R3 <687,Сорокин, 25АР>. Если теперь сделать запрос составить список сотрудников, вклад которых хотя бы в один проект равен или меньше 2, мы получим ответ: Иванов, Андреев. Сорокина здесь нет таким образом аномалия вставки, присутствующая в исходном отношении, устроена в результате декомпозиции.

Обновление. В исходном отношении возникла проблема при изменении телефона у Иванова на 9-17

Запрос: напечатать телефон лаборатории 25АР

Ответ: 9-17

Аномалия обновления, исходного отношения устранена в результате декомпозиции.

Удаление. Финансирование проекта ОВ77 прекращено. Информация о проекте должна быть удалена из БД. В отношении R4 нужно удалить все записи со значением

Проект=ОВ77

В исходном отношении это правило к удалению из базы информации о сотруднике 559 Зайцев.

В нашем случае информация о сотрудниках храниться в R3 и не будет потеряна при удалении кортежей со значением Проект=ОВ77 из отношения R4 , таким образом, в результате декомпозиции устранена аномалия удаления. Цена за устранение аномалии – увеличение количества отношений. Теперь запросы к БД будут реализовываться более сложно, т.к. возможно понадобится прохождение цепочки из двух или трех отношений при поиске требуемых данных.