всех строках, наша БД будет содержать противоречивую (нецелостную) информацию: в одних строках Смит будет числиться по старому месту, а в других по новому.
Аномалии включения – невозможность добавить новый кортеж поскольку атрибуты являются неопределенными.
Для преодоления этих недостатков БД подвергается дальнейшей нормализации. Приведение таблиц к 2НФ и выше производится с использованием аппарата функциональных зависимостей.
Нормальные формы
Нормальные формы отношений основываются на фундаментальных в теории реляционных баз данных понятиях функциональной и многозначной зависимости.
Определение функциональной зависимости (ФЗ) ФЗ - связь типа N:1 (или 1:1) в пределах одного отношения.
Пусть R - отношение, а X и Y - некоторые подмножества множества его атрибутов. Говорят, что Y функционально зависит от X или X функционально определяет Y, если каждое значение X связано с одним и только с одним значением Y.
Обозначение: X->Y
В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X ->R.Y.
Функциональная зависимость Y от X обозначается: X -> Y или графически:
Например: R.X, R.Z -> R.Y;
Табельный номер ->Фамилия;
Должность ->Зарплата.
Атрибут А находится в полной функциональной зависимости от множества атрибутов {X,Y}, если он функционально зависит от этого множества атрибутов {X,Y}->A и не существует функциональной зависимости A ни от какого подмножества данного множества.
Если же существует функциональная зависимость X->A, то А находится в частичной зависимости от XY.
Для нашего примера после приведения таблицы к 1НФ ФЗ изображены на рисунке 14:
Рис.14
Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут полностью зависит от первичного ключа |
Для нашого примера это правило не соблюдается, так как первичным ключом является {Sid, Pid}, а некоторые атрибуты зависят от отдельных частей первичного ключа. Мы не можем отменить/изменить ФЗ, так как они существуют объективно, но мы можем разбить нашу таблицу таким образом, чтобы левые части ФЗ стали первичными ключами новых таблиц. Проделав такую операцию, получим таблицы:
Рис.15
И ФЗ:
Рис.16
Но и в 2НФ сохраняются некоторые проблемы избыточности и аномалий. Например:
· добавление - мы не можем добавить новый город, если в нем нет ни одного поставщика
· удаление - если удаляется информация о единственном поставщике в городе, то удаляется и информация о городе.
· изменение - если Чикаго переедет США в, например, Австралию, то придется менять много кортежей, содержащих Чикаго.
Определение Неключевым атрибутом называется любой атрибут отношения
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.