Нормализация
.docПостроение информационно-логической модели реляционной базы данных методом нормализации
ПРАКТИЧЕСКАЯ РАБОТА
Цель: Получение практических навыков проектирования таблиц с использованием метода нормальных форм
Теоретическая информация
Первая нормальная форма. Отношение находится в первой нормальной форме (1НФ), если все его атрибуты являются атомарными или простыми (имеют единственное значение).
Исходное отношение строится таким образом, чтобы оно было в 1НФ. Отношение ПРЕПОДАВАТЕЛЬ, используемое для иллюстрации метода нормализации, находится в 1НФ, поскольку все его атрибуты простые.
ФИО |
Должн |
Оклад |
Стаж |
Д_Стаж |
Кафедра |
Предмет |
Группа |
ВидЗан |
ИвановА. |
ассистент |
1000 |
5 |
100 |
ИВТ |
ПО ЭВМ |
256 |
Практ |
ИвановА. |
ассистент |
1000 |
5 |
100 |
ИВТ |
Пролог |
123 |
Практ |
ПетровМ. |
доцент |
1400 |
7 |
100 |
ИВТ |
ПО ЭВМ |
256 |
Лекция |
ПетровМ. |
доцент |
1400 |
7 |
100 |
ИВТ |
Паскаль |
256 |
Практ |
СидоровН. |
ассистент |
1000 |
10 |
150 |
ИВТ |
Пролог |
123 |
Лекция |
СидоровН. |
ассистент |
1000 |
10 |
150 |
ИВТ |
Паскаль |
256 |
Лекция |
ЕгоровВ. |
ассистент |
1000 |
5 |
100 |
Физики |
Информ. |
244 |
Лекция |
Первичный ключ этого отношения получается в предположении, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. Поэтому ключ будет составным ФИО, Предм, Группа.
Перевод отношения в следующую нормальную форму осуществляется методом «декомпозиции без потерь». Такая декомпозиция должна обеспечить эквивалентность запросов (выборки данных по условию) к исходному отношению и к отношениям, получаемым в результате декомпозиции. Эквивалентность состоит в том, что эти запросы дадут одинаковый результат.
В отношении ПРЕПОДАВАТЕЛЬ можно выделить частичную зависимость атрибутов Стаж, Д_Стаж, Каф, Должн, Оклад от ключа - указанные атрибуты находятся в функциональной зависимости только от атрибута ФИО, являющегося частью составного ключа.
Эта частичная зависимость от ключа приводит к следующему:
1. В отношении присутствует явное и неявное избыточное дублирование данных, например: повторение сведений о стаже, должности и окладе преподавателей, проводящих занятия в нескольких группах и/или по разным предметам; повторение сведений об окладах для одной и той же должности или о надбавках за одинаковый стаж.
2. Следствием избыточного дублирования данных является проблема их редактирования. Например, изменение должности у преподавателя Иванова И.М. потребует просмотра всех кортежей отношения и внесения изменений в те из них, которые содержат сведения о данном преподавателе.
Часть избыточности устраняется при переводе отношения во вторую нормальную форму (2НФ).
Вторая нормальная форма. Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от составного первичного ключа.
Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на несколько отношений следующим образом:
- построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
- построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей. В результате получим два отношения R1 и R2 в 2НФ (Рис 1).
R1:
|
|
R2:
|
|
Рис. 1 – Пример перехода исходного отношения в 2НФ
В отношении R1 первичный ключ является составным и также состоит из атрибутов ФИО. Предм, Группа.. В отношении R2 ключ простой - ФИО.
Исследование отношений R1 и R2 показывает, что переход к 2НФ позволил исключить явную избыточность данных в таблице R1 - повторение строк со сведениями о преподавателях. В R2 по-прежнему имеет место неявное дублирование данных. Оно связано с повторением значения Оклад для одинаковых значений атрибута Должн. и Д_Стаж для одинаковых значений атрибута Стаж.
Для дальнейшего совершенствования отношения необходимо преобразовать его к третьей нормальной форме (3НФ).
Третья нормальная форма.
Определение 1. Отношение находится в ЗНФ, если оно находится в 2НФ, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Существует и альтернативное определение.
Определение 2. Отношение находится в ЗНФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
В отношении R1 транзитивные зависимости отсутствуют, в отношении R2 они есть:
ФИО ->Должн->Оклад, ФИО->Oклад->Должн, ФИО->Стаж->Д_Стаж
Транзитивные зависимости также порождают избыточное дублирование информации в отношении. Устраним их. Для этого, используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей, преобразуем отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в ЗНФ. Графически эти отношения представлены на Рисунке 2. Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.
R3:
ФИО |
Должн |
Стаж |
Кафедра |
ИвановА. |
ассистент |
5 |
ИВТ |
ПетровМ. |
доцент |
7 |
ИВТ |
СидоровН. |
ассистент |
10 |
ИВТ |
ЕгоровВ. |
ассистент |
5 |
Физики |
R4: R5:
|
|
Рис. 2 – Представление 3НФ
Задание: Необходимо спроектировать БД, содержащую сведения, представленные в виде группы представленных ниже атрибутов. Шесть первых атрибутов являются обязательными для всех вариантов, остальные определяются порядковым номером студента в списке журнала (Таблица 1). Приведенные атрибуты характеризуют некоторую группу людей и позволяют с учетом их профессиональной деятельности рассчитать денежное вознаграждение.
Состав атрибутов:
-
FIO - фамилия и инициалы;
-
God - год рождения;
-
Dolgn - должность занимаемая;
-
0_Dolgn - оклад по должности;
-
Stag - стаж работы;
-
D_Stag - надбавка за стаж (свыше 5, 10, 15, 20, 25, 30, 35, 40 лет);
-
Udal - удаленность (средняя, большая, очень большая);
-
D_Udal - надбавка за удаленность;
-
Slogn - сложность (средняя, высокая, очень высокая);
-
D_Slogn - надбавка за сложность;
-
Vredn - вредность (по категориям: 1, 2, 3, 4, 5);
-
D_Vredn - надбавка за вредность;
-
Clasn - классность (мастер, первая, вторая, третья);
-
D_ Clasn - надбавка за классность;
-
U_Zvan - ученое звание (доцент, профессор);
-
D_Uzvan - надбавка за ученое звание;
-
U_Step - ученая степень (ктн, дтн);
-
D_UStep - надбавка за ученую степень;
-
Zvanie - воинское звание (мл. лейтенант, лейтенант, ст.лейтенант, капитан, майор, подполковник, полковник);
-
D _Zvanie - надбавка за воинское звание.
Необходимо в соответствии с номером варианта:
-
Составить исходное отношение в 1НФ
-
Выявить зависимости между атрибутами отношения
-
Перевести исходное отношение к 3НФ
-
Определить ключевые поля в отношениях, основные и дополнительные таблицы, поля связи, типы связей
Таблица 1- Распределение атрибутов по вариантам
Вариант |
Номер атрибута |
|||||||||||||
|
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
1 |
|
|
* |
* |
|
|
|
|
|
|
|
|
* |
* |
2 |
|
|
* |
* |
|
|
|
|
|
|
* |
* |
|
|
3 |
|
|
* |
* |
|
|
|
|
* |
* |
|
|
|
|
4 |
|
|
*
|
* |
|
|
* |
* |
|
|
|
|
|
|
5 |
|
|
* |
* |
* |
* |
|
|
|
|
|
|
|
|
6 |
|
|
|
|
* |
* |
|
|
|
|
|
|
* |
* |
7 |
|
|
|
|
* |
* |
|
|
|
|
* |
* |
|
|
8 |
|
|
|
|
*
|
* |
|
|
* |
* |
|
|
|
|
9 |
|
|
|
|
* |
* |
*
|
* |
|
|
|
|
*
|
*
|
10 |
|
|
|
|
|
|
* |
* |
|
|
* |
* |
|
|
11 |
|
|
|
|
|
|
*
|
*
|
* |
* |
|
|
|
|
12 |
|
|
|
|
|
|
* |
* |
|
|
|
|
|
|
13 |
|
|
|
|
|
|
|
|
* |
*
|
|
|
* |
* |
14 |
|
|
|
|
|
|
|
|
* |
* |
* |
* |
|
|
15 |
|
|
|
|
|
|
|
|
|
|
* |
*
|
* |
* |
16 |
* |
* |
|
|
|
|
|
|
|
|
|
|
* |
* |
17 |
* |
* |
|
|
|
|
|
|
|
|
* |
* |
|
|
18 |
* |
* |
|
|
|
|
|
|
* |
* |
|
|
|
|
19 |
* |
* |
|
|
|
|
* |
* |
|
|
|
|
|
|
20 |
* |
* |
|
|
* |
* |
|
|
|
|
|
|
|
|
21 |
* |
* |
* |
* |
|
|
|
|
|
|
|
|
|
|
22 |
* |
* |
|
|
|
|
* |
* |
|
|
|
|
|
|
23 |
|
|
* |
* |
|
|
|
|
* |
* |
|
|
|
|
24 |
* |
* |
|
|
|
|
|
|
|
|
* |
* |
|
|
25 |
|
|
|
|
* |
* |
|
|
|
|
|
|
* |
* |
26 |
|
|
* |
* |
* |
* |
|
|
|
|
|
|
|
|
27 |
|
|
|
|
|
|
* |
* |
|
|
* |
* |
|
|
28 |
|
|
|
|
|
|
|
|
* |
* |
|
|
* |
* |