КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Первая, вторая и третья нормальные формы
Лекция №15 Функциональная зависимость как семантическое понятие. ФЗ – это особый вид ограничений целостности, т. е. это, несомненно, семантическое понятие. Если отношение удовлетворяет ФЗ код_поставщика→город, это значит, что каждый поставщик находится точно в одном городе. Это ограничение существует в реальном мире (по крайней мере, в некоторой модели реального мира). Это ограничение является частью семантики и должно быть представлено в базе данных таким образом, чтобы оно могло быть приведено в действие СУБД. Способом задания ограничений в определении базы данных является объявление ФЗ.
Название лекции: Первая, вторая и третья нормальные формы. План: 1. Определение неключевого атрибута и взаимно независимых атрибутов. 2. Неформальное определение 3НФ. Первая, вторая и третья нормальные формы.
1. Определение неключевого атрибута и взаимно независимых атрибутов. Допущение: Для простоты изложения предполагаем, что каждое отношение имеет только один потенциальный ключ, который является первичным ключом. Неключевой атрибут – это атрибут, который не входит в первичный ключ рассматриваемого отношения. Два или несколько атрибутов образующих множество А называются взаимно независимыми, если ни один из них не зависит функционально от какого-либо подмножества остальных атрибутов множества А. Физический смысл взаимно независимости: каждый атрибут из множества взаимно независимых атрибутов А может быть обновлен независимо от остальных атрибутов множества А.
2. Первая, вторая и третья нормальные формы. Отношение находится в первой нормальной форме тогда и только тогда, когда все используемые домены содержат только скалярное значение. Любое нормализованное отношение находится в 1НФ. Недостатки 1НФ рассмотрим на примере:
Отношение R1:
S={{код, товар}® {количество}; {код} ® {город}; {код} ®{статус}; {город} ® {статус}} множество ФЗ отношения R1. Первичный ключ в отношении {код, товар} Статус поставщика определяется его месторасположением. Данное отношение обладает избыточностью (для каждого поставщика указан город и статус). Избыточность приводит к различным аномалиям обновления: - аномалия – вставки INSERT. Нельзя добавить информацию о поставщике, который не поставил ни одного товара. - аномалия – удаления DELETE. Возможна, что с удалением некоторой строки таблица (удаление поставки) исчезнет информация о поставщике. - аномалия UPDATE (переписать, обновить) – эта проблема возникает в том случае, если необходимо переместить поставщика из одного города в другой. Например, 1 из Москвы в Новгород. Необходимо откорректировать все записи о поставках от этого поставщика. Для решения этих проблем заменим отношение R1 несколькими проекциями. В одно включим первичный ключ и все неключевые атрибуты, неприводимо зависимые от первичного ключа. В остальные проекции включим неключевые атрибуты, приводимо зависимые от первичного ключа и ту часть первичного ключа, от которой данные атрибуты неприводимо зависят. Итак, получим 2 отношения: R2: R3:
ФЗ для отношения R2:{код, товар}→{кол-во} ФЗ для отношения R3:{код}→{город}, {код}→{статус}, {город}→{статус} Такие отношения позволяют преодолеть указанные противоречия: INSERT: Можно вставить поставщика из Новгорода, который не поставлял товар; DELETE: Можно удалить товар 2 от поставщика 3, а сведения о поставщике останутся; UPDATE: Для того, чтобы переместить поставщика 1 из Москвы в Новгород, достаточно поменять запись в отношении R3. Физический смысл противоречия в отношении R1 в том, что это отношение описывает не один объект (поставку товара) а два: поставку и поставщика. Определение 2ФН (при условии единственности потенциального ключа). Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в 1НФ и каждый его неключевой атрибут неприводимо зависим от первичного ключа. В общем случае: пусть имеется отношение R: {А, В, С, D} где {А, В} первичный ключ, кроме того, имеется ФЗ A → D, тогда R заменяем на 2 отношения: R1: {A, B, C} = ПрA,B,C (R), где первичный ключ {A, B}, А – внешний ключ. R2: {A, D} → первичный ключ {А}. Исходное: R = R1 JOIN R2.
Проблемы, возникающие в R3. INSERT: Нельзя включить город с некоторым статусом, из которого нет ни одного поставщика. DELETE: удалив поставщика 5, удалим информацию о том, что Новгороду был установлен статус 30. UPDATE: информация о статусе повторяется, т.о. изменив статус Москвы с 20 на 30 необходимо откорректировать несколько записей. Физический смысл противоречия тот же: информация о двух объектах предметной области (город и поставщик) находится в одном отношении. Формальным признаком проблем в R3 является наличие транзитивной ФЗ. Для этого отношения неприводимое множество ФЗ: {код} → {город} и {город} → {статус}. Для решения проблемы найдем от R3 проекции, в которые включим первичный ключ и атрибут, через который осуществляется транзитивная зависимость. А во второе отношении, этот же атрибут и атрибут, транзитивно зависящий от первичного ключа исходного отношения. Получим отношение: R5: R6:
ФЗ для отношения R5: {код} →{город} ФЗ для отношения R6: {город}→ {статус} Каждое отношение описывает только одну сущность (объект предметной области). Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится в 2НФ и каждый его неключевой атрибут не транзитивно зависим от первичного ключа. Не транзитивная зависимость означает, что все неключевые атрибуты взаимно независимы. Отношение, находящееся в 2НФ, можно получить из отношения находящегося в 3НФ. Соединение 3НФ дают 2НФ, но в 3НФ может содержаться информация, которой нет в 2НФ. Итак, переход от 2НФ в 3НФ заключается в исключении транзитивных зависимостей. Пример: Отношение R с атрибутами {A, B, C}, где {A} – первичный ключ; есть ФЗ: B→C (A → B и A → C – очевидно). R1: {A, B}, где {A} – первичный ключ, В – внешний ключ, А→В. R2: {B, C}, где {B} – первичный ключ, В→С. Отношение R может быть восстановлено соединением R1 и R2: R = R1 join R2 Замечание: Уровень нормализации данного отношения определяется семантикой, а не конкретными значениями данных в некоторый момент времени. Нельзя с первого взгляда на таблицу с данными для некоторого отношения определить, находится ли оно, например в 3НФ. Для этого также необходимо проанализировать существующие ФЗ. Даже при наличии всех ФЗ можно только высказать предположение, что данные не противоречат гипотезе о принадлежности отношения к 3НФ. Однако этот факт гарантирует, что предложенная гипотеза верна.
Дата добавления: 2014-01-05; Просмотров: 946; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |