73. Проектирование баз
данных. Метод нормальных форм
Особенности проектирования структуры базы данных методом нормальных форм. Зависимости между атрибутами отношений: функциональная зависимость, функциональная взаимозависимость. Формирование исходного отношения.
Определение отношения находящегося во второй нормальной форме. Правила формирования отношений находящихся в 2НФ. Частичная зависимость неключевого атрибута от составного первичного ключа. Два определения отношения находящегося в третьей нормальной форме. Транзитивная зависимость между атрибутами отношения. Пример декомпозиции отношений.
1
Особенности проектирования БД методом нормальных форм
Процесс проектирования БД с использованием метода НФ является итерационным и заключается в последовательном переводе отношений из первой НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивает определенный тип функциональных зависимостей, устраняет соответствующие аномалии при выполнении операций над отношениями БД и сохраняет свойства предшествующих нормальных форм.
Наиболее часто выделяют следующую последовательность нормальных форм: 1НФ, 2НФ, 3НФ, усиленная третья нормальная форма (нормальная форма Бойса-Кодда (БКНФ)), 4НФ, 5НФ.
2
Исходное отношение
1НФ. Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение, на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов). Исходное отношение строится таким образом, чтобы оно было в 1НФ.
Таблица Библиотека
3
автораКод |
|
изданияКод |
|
|
Издатель |
|
|
|
Автор |
|
Заголовок |
Вид |
ство |
Город |
Год |
8 |
Богумирский Б.С. |
3 |
Руководство |
Учебник |
Питер |
Санкт- |
1988 |
|
|
|
пользователя ПЭВМ |
|
|
Петербу |
|
|
|
|
|
|
|
рг |
|
8 |
Богумирский Б.С. |
5 |
Руководство |
Учебник |
Питер |
Санкт- |
1988 |
|
|
|
пользователя ПЭВМ |
|
|
Петербу |
|
|
|
|
|
|
|
рг |
|
8 |
Богумирский Б.С |
5 |
Руководство |
Учебник |
Питер |
Санкт- |
1988 |
|
|
|
пользователя ПЭВМ |
|
|
Петербу |
|
|
|
|
|
|
|
рг |
|
8 |
Богумирский Б.С. |
5 |
Руководство |
Учебник |
Питер |
Санкт- |
1988 |
|
|
|
пользователя ПЭВМ |
|
|
Петербу |
|
|
|
|
|
|
|
рг |
|
2 |
Баженова И.Ю. |
8 |
ORACLE 8/8i. Уроки |
Учебник |
Диалог- |
Москва |
2001 |
|
|
|
программирования |
|
МИФИ |
|
|
1 |
К. Дж. Дейт |
9 |
Введение в системы баз |
Монограф Вильямс |
Москва |
1999 |
|
|
|
|
данных |
ия |
|
|
|
5 |
Оливер В.Г. |
10 |
Руководство по |
Учебник |
Финансы Москва |
1995 |
|
|
|
|
реляционной СУБД DB2 |
|
и |
|
|
|
|
|
|
|
статистик |
|
|
|
|
|
|
|
а |
|
|
7 |
Саймон Алан Р. |
11 |
Стратегические |
Монограф Финансы Москва |
2000 |
||
|
|
|
технологии баз данных |
ия |
и |
|
|
|
|
|
|
|
статистик |
|
|
|
|
|
|
|
а |
|
|
7 |
Саймон Алан Р. |
11 |
Стратегические |
Монограф Финансы Москва |
2000 |
||
|
|
|
технологии баз данных |
ия |
и |
|
|
|
|
|
|
|
статистик |
|
|
|
|
|
|
|
а |
|
|
7 |
Саймон Алан Р. |
11 |
Стратегические |
Монограф Финансы Москва |
2000 |
||
|
|
|
технологии баз данных |
ия |
и |
|
|
|
|
|
|
|
статистик |
|
|
|
|
|
|
|
а |
|
|
Переплет |
|
Дата_выда |
|
Дата_возв |
Билет |
|
|
|
|
|
|
|
|
|
|
||
|
Стоимость |
чи |
Срок |
рата |
|
Фамилия |
Имя |
Отчество |
1 |
120,00р. |
03.09.2004 |
30 |
|
1 |
ИВАНОВ |
Иван |
Иваныч |
2 |
200,00р. |
02.11.2004 |
60 |
02.01.2005 |
2 |
ПЕТРОВ |
Петр |
Петрович |
2 |
200,00р. |
|
0 |
|
1 |
ИВАНОВ |
Иван |
Иваныч |
2 |
200,00р. |
22.02.2005 |
14 |
|
1234 |
СИДОРОВ |
Сидор |
Сидорович |
4 |
65,00р. |
01.10.2004 |
60 |
01.12.2004 |
4 |
КУЗНЕЦОВ |
Михаи |
Григорьеви |
|
|
|
|
|
|
|
л |
ч |
5 |
240,00р. |
30.08.2004 |
90 |
|
5 |
ИВАНОВ |
Антон |
Петрович |
6 |
70,00р. |
29.10.2004 |
30 |
01.11.2004 |
6 |
ПЕТРОВ |
Иван |
Петрович |
7 |
150,00р. |
29.12.2004 |
5 |
|
7 |
КУЗНЕЦОВ |
Сергей Иваныч |
|
7 |
150,00р. |
|
0 |
|
2 |
ПЕТРОВ |
Петр |
Петрович |
7 |
150,00р. |
21.02.2005 |
14 |
|
2 |
ПЕТРОВ |
Петр |
Петрович |
Зависимости между атрибутами отношения
Атрибут B функционально зависит от атрибута A (A→B), если каждому
значению |
A |
соответствует |
в |
точности |
одно |
значение |
B. |
|
|
В рассматривавшемся отношении можно выделить |
функциональные |
||||||
зависимости |
Код_автора→Автор, |
|
Издательство→Город |
и |
другие. |
Функциональная взаимозависимость (взаимно однозначное соответствие) между A и B имеется в том случае если существуют функциональные зависимости вида A→B и B→A.
Пример. Код_автора Автор (если нет авторов с одинаковыми фамилиями,
именами |
и |
отчествами). |
Частичной зависимостью называется зависимость неключевого атрибута от |
||
части |
составного |
ключа. |
Пример. Атрибут |
Фамилия находится |
в функциональной зависимости от |
атрибута Билет, являющегося частью первичного ключа. Следовательно атрибут Фамилия находится в частичной зависимости от ключа отношения. Альтернативным вариантом является полная функциональная зависимость ключевого
атрибута от всего составного ключа. (Дата_выдачи, Дата_Возврата, Срок) |
5 |
Исходное отношение (1НФ)
Библиотека (Переплет, Билет, Код_автора, Автор, Код_издания, Заголовок, Вид, Издательство, Город, Год, Переплет, Стоимость, Дата_выдачи, Срок, Дата_возврата, Билет, Фамилия, Имя, Отчество)
Код_издания
Стоимость
Переплет
Дата_выдачи
Дата_возврата
Срок
Билет Фамилия
Имя
Отчество
Заголовок
Вид
ИздательствоГород
Год
Код_Автора
Автор
6
2НФ
Определение
Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного (составного) ключа.
Правила
Для устранения частичной зависимости и перевода отношения в 2НФ, необходимо разложить исходное отношение на несколько отношений
следующим |
|
|
|
образом: |
- построить проекцию без атрибутов, находящихся в частичной |
||||
функциональной |
зависимости |
от |
первичного |
ключа; |
- построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей.
7
2НФ
Библиотека (Переплет, Билет, Дата_выдачи, Дата_возврата, Срок)
Переплет(Переплет, Код_издания, Стоимость, Заголовок, Вид, Издательство, Год, Город, Код_автора, Автор).
Код_издания Заголовок
Вид
Переплет
Издательство Город
Стоимость
Год
Код_автора |
Автор |
8
2НФ
Читатель (Билет, Фамилия, Имя, Отчество)
Билет
Фамилия
Имя
Отчество
9
3НФ
Определение 1.
Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Определение 2.
Отношение находится в 3НФ в том и только том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
Атрибут C зависит от атрибута A транзитивно (существует транзитивная зависимость), если для атрибутов A, B, C выполняются условия A→B и B→C, но обратная зависимость отсутствует.
Пример. |
|
Код_издания→Издательство→Город |
10 |
3НФ
Библиотека (Переплет, Билет, Дата_выдачи, Дата_возврата, Срок) Переплет (Переплет, Код_издания, Стоимость).
Издание (Код_издания, Заголовок, Вид, Издательство, Год)
Код_издания Заголовок
Вид
Издательство
Год
Издательство (Издательство, Город)
Издательство Город
11
3НФ
Автор (Код_автора, Автор)
Код_автора Автор
Читатель (Билет, Фамилия, Имя, Отчество)
Билет Фамилия
Имя Отчество
12