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

Управление данными / Исходная ненормализованная таблица

.docx
Скачиваний:
29
Добавлен:
16.03.2016
Размер:
21.57 Кб
Скачать

Исходная ненормализованная таблица (нарушение условия атомарности)

Личный № сотрудника

Фамилия

Звание

Мероприятия, в которых участвовал сотрудник

Кабинет

Сл. тел.

Условное название

Награда

001

Пронин

Майор

Операция «Ы»

Оклад

110

11 22 33

Операция «Бриллинантовая рука»

Отпуск

002

Исаев

Полковник

Операция «Берн»

-

110

11 22 33

007

Бонд

Капитан

Операция «Золотой глаз»

Ягуар

С-110

33 22 11

Операция «Багамы»

Феррари

Таблица в первой нормальной форме

Личный № сотрудника

Условное наименование мероприятий, в которых участвовал сотрудник

Награда

Фамилия

Звание

Кабинет

Сл. тел.

001

Операция «Ы»

Оклад

Пронин

Майор

110

11 22 33

001

Операция «Бриллинантовая рука»

Отпуск

Пронин

Майор

110

11 22 33

002

Операция «Берн»

-

Исаев

Полковник

110

11 22 33

007

Операция «Золотой глаз»

Ягуар

Бонд

Капитан

С-110

33 22 11

007

Операция «Багамы»

Феррари

Бонд

Капитан

С-110

33 22 11

Что выбрать в качестве первичного ключа (PK)?

Из приведенного примера видно, что таблицы в первой нормальной форме могут содержать многочисленные ситуации дублирования данных (в приведенном примере по полям «Фамилия», «Звание», «Кабинет», «Сл. Тел.»). Кроме того, в таблице, находящейся в первой нормальной форме, могут встречаться и другие аномалии схемы таблиц-отношений. В частности, в приведенном примере нельзя образовать запись для сотрудника, не участвовавшего ни в одной операции. Удаляя запись об участии определенного сотрудника в определенной операции, можно удалить информацию о том, что он вообще работает в определенном подразделении. При переводе сотрудника в другое подразделение или при его перемещении в другой кабинет приходится изменять все записи-кортежи с данным сотрудником по различным операциям.

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

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

• образовать проекцию (вертикальное подмножество) исходной таблицы на составной ключ и на поля, находящиеся в полной функциональной зависимости от составного ключа;

• построить еще одну или несколько проекций на часть составного ключа с полями, функционально зависящими от этой части ключа.

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

Личный № сотрудника

Условное наименование мероприятий, в которых участвовал сотрудник

Награда

001

Операция «Ы»

Оклад

001

Операция «Бриллинантовая рука»

Отпуск

002

Операция «Берн»

-

007

Операция «Золотой глаз»

Ягуар

007

Операция «Багамы»

Феррари

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

Личный № сотрудника

Фамилия

Звание

Кабинет

Сл. тел.

001

Пронин

Майор

110

11 22 33

002

Исаев

Полковник

110

11 22 33

007

Бонд

Капитан

С-110

33 22 11

В таблицах, находящихся во второй нормальной форме, большинство аномалий, присущих первой скорме, устранено. Вместе с тем по определенным атрибутам также могут сохраняться многочисленные ситуации дублирования данных. Так, например, в приведенном на рис. 3.5 примере происходит неоправданное дублирование информации о служебном телефоне «11 22 33», так как атрибут «Сл. тел.» фактически зависит не от атрибута «Лич.№ сотр.»», а от атрибута «Кабинет».

* Иначе говоря, наблюдается цепочка функциональной зависимости атрибутов «Лич. № сотр.» — «Кабинет» — «Сл. тел.», а функциональная зависимость атрибута «Сл.тел.» от атрибута «Лич. № сотр.» является лишь логическим следствием такой цепочки зависимостей. В таких ситуациях говорят о транзитивной зависимости атрибута «Сл. тел.» от атрибута «Лич. № сотр.».

* В большинстве жизненных ситуаций в одной комнате для сотрудников установлен один общий телефон.

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

Для преобразования из второй в третью нормальную форму таблицу-отношение разделяют на две или более проекции так, чтобы конечные поля-атрибуты в цепочках транзитивной зависимости вынести в отдельные таблицы, связав разделившиеся части таблицы внешними ключами по полям-атрибутам, находящимся внутри цепочек транзитивной зависимости. На рис. 3.6 проиллюстрирован процесс приведения таблицы из второй в третью нормальную форму путем разделения цепочки транзитивной зависимости «Лич.№ сотр.» — «Кабинет» — «Сл. тел.». Внутреннее в этой цепочке поле-атрибут «Кабинет» стало соответственно внешним ключом в первой таблице и первичным ключом во второй таблице.

Декомпозированная таблица в третью нормальную форму

Личный № сотрудника

Фамилия

Звание

Кабинет

001

Пронин

Майор

110

002

Исаев

Полковник

110

007

Бонд

Капитан

С-110

Кабинет

Сл. тел.

110

11 22 33

С-110

33 22 11

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