Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
NF - третья нормальная форма.
Перед обсуждением третьей нормальной формы необходимо ввести понятие транзитивной функциональной зависимости. Определение: Пусть X, Y, Z - три атрибута некоторого отношения. При этом X --> Y и Y --> Z, но обратное
При этом возникают аномалии:
Для устранения этих аномалий необходимо декомпозировать исходное отношение на два:
Определение третьей нормальной формы: Отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. BCNF - нормальная форма Бойса-Кодда. Эта нормальная форма вводит дополнительное ограничение по сравнению с 3НФ. Определение нормальной формы Бойса-Кодда: Отношение находится в BCNF, если оно находится во 3НФ и в ней отсутствуют зависимости атрибутов первичного ключа от неключевых атрибутов. Ситуация, когда отношение будет находится в 3NF, но не в BCNF, возникает при условии, что отношение имеет два (или более) возможных ключа, которые являются составными и имеют общий атрибут. Заметим, что на практике такая ситуация встречается достаточно редко, для всех прочих отношений 3NF и BCNF эквивалентны. Многозначные зависимости и четвертая нормальная форма (4NF). Четвертая нормальная форма касается отношений, в которых имеются повторяющиеся наборы данных. Декомпозиция, основанная на функциональных зависимостях, не приводит к исключению такой избыточности. В этом случае используют декомпозицию, основанную на многозначных зависимостях. Многозначная зависимость является обобщением функциональной зависимости и рассматривает соответствия между множествами значений атрибутов. В качестве примера рассмотрим отношение ПРЕПОДАВАТЕЛЬ (ИМЯ, КУРС, УЧЕБНОЕ_ПОСОБИЕ), хранящее сведения о курсах, читаемых преодавателем, и написанных им учебниках. Пусть профессор N читает курсы " Теория упругости" и " Теория колебаний" и имеет соответствующие учебные пособия, а профессор K читает курс " Теория удара" и является автором учебников " Теория удара" и " Теоретическая механика". Тогда наше отношение будет иметь вид: ---------------------------------------------------- | ИМЯ | КУРС | УЧЕБНОЕ_ПОСОБИЕ | ---------------------------------------------------- | N | Теория упругости | Теория упругости | | N | Теория колебаний | Теория упругости | | N | Теория упругости | Теория колебаний | | N | Теория колебаний | Теория колебаний | | K | Теория удара | Теория удара | | K | Теория удара | Теоретическая механика | ---------------------------------------------------- добавляем: ---------------------------------------------------- | K | Теория упругости | Теория удара | | K | Теория упругости | Теоретическая механика | ---------------------------------------------------- Это отношение имеет значительную избыточность и его использование приводит к возникновению аномалии обновления. Например, добавление информации о том, что профессор K будет также читать лекции по курсу " Теория упругости" приводит к необходимости добавить два кортежа (по одному для каждого написанного им учебника) вместо одного. Тем не менее, отношение ПРЕПОДАВАТЕЛЬ находится в NFBC (ключевой атрибут - ИМЯ). Заметим, что указанные аномалии исчезают при замене отношения ПРЕПОДАВАТЕЛЬ его проекциями: --------------------------- ------------------------------- | ИМЯ | КУРС | | ИМЯ | УЧЕБНОЕ_ПОСОБИЕ | --------------------------- ------------------------------- | N | Теория упругости | | N |Теория упругости | | N | Теория колебаний | | N |Теория колебаний | | K | Теория удара | | K |Теоретическая механика | | K | Теория упругости | | K |Теория удара | --------------------------- ------------------------------- Аномалия обновления возникает в данном случае потому, что в отношении ПРЕПОДАВАТЕЛЬ имеются:
Такие зависимости и называются многозначными и обозначаются как ИМЯ -> > КУРС ИМЯ -> > УЧЕБНОЕ_ПОСОБИЕ Нетрудно показать, что многозначные зависимости всегда образуют связанные пары, поэтому их часто обозначают ИМЯ -> > КУРС | УЧЕБНОЕ_ПОСОБИЕ Очевидно, что каждая функциональная зависимость является многозначной, но не каждая многозначная зависимость является функциональной. Определение четвертой нормальной формы: Отношение находится в 4NF если оно находится в BCNF и в нем отстутсвуют многозначные зависимости, не являющиеся функциональными зависимостями. Зависимости по соединению и пятая нормальная форма (5NF). До сих пор мы предполагали, что единственной операцией, необходимой для устранения избыточности в отношении, была декомпозиция его на две проекции. Однако, существуют отношения, для которых нельзя выполнить декомпозицию без потерь на две проекции, но которые можно подвергнуть декомпозиции без потерь на три (или более) проекций. Этот факт получил название зависимости по соединению, а такие отношения называют 3-декомпозируемые отношения (ясно, что любое отношение можно назвать " n-декомпозируемым", где n > = 2). Детально этот вопрос здесь мы не обсуждаем (полное изложение см. в книге К.Дейта), заметим лишь, что зависимость по соединению является обощением многозначной зависимости. Отношения, в которых имеются зависимости по соединению, не являющиеся одновременно ни многозначными, ни функциональными, также характеризуются аномалиями обновления. Поэтому, вводится понятие пятой нормальной формы. Определение пятой нормальной формы: Отношение находится в 5НФ тогда и только тогда, когда любая зависимость по соединению в нем определяется только его возможными ключами. Другими словами, каждая проекция такого отношения содержит не менее одного возможного ключа и не менее одного неключевого атрибута. Ограничения целостности Целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения целостности:
Целостность сущностей. Объект реального мира представляется в реляционной базе данных как кортеж некоторого отношения. Требование целостности сущностей заключается в следующем: каждый кортеж любого отношения должен отличатся от любого другого кортежа этого отношения (т.е. любое отношение должно обладать первичным ключом). Вполне очевидно, что если данное требование не соблюдается (т.е. кортежи в рамках одного отношения не уникальны), то в базе данных может хранится противоречивая информация об одном и том же объекте. Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений:
Целостность ссылок Сложные объекты реального мира представляются в реляционной базе данных в виде кортежей нескольких нормализованных отношений, связанных между собой. При этом:
Требование целостности по ссылкам состоит в следующем: для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа. Пусть, например, даны отношения ОТДЕЛ (N_ОТДЕЛА, ИМЯ_ОТДЕЛА) и СОТРУДНИК (N_СОТРУДНИКА, N_ОТДЕЛА, ИМЯ_СОТРУДНИКА), в которых хранятся сведения о работниках предприятия и подразделениях, где они работают. Отношение ОТДЕЛ в данной паре является родительским, поэтому его первичный ключ " N_отдела" присутствует в дочернем отношении СОТРУДНИК. Требование целостности по ссылкам означает здесь, что в таблице СОТРУДНИК не может присутствовать кортеж со значением атрибута " N_отдела" , которое не встречается в таблице ОТДЕЛ. Если такое значение в отношении ОТДЕЛ отсутствует, значение внешнего ключа в отношении СОТРУДНИК считается неопределенным. Как правило, поддержание целостности ссылок также возлагается на систему управления базой данных. Например, она может не позволить пользователю добавить запись, содержащую внешний ключ с несуществующим (неопределенным) значением. В заключение этого раздела отметим, что часто вместо выражения " целостность по ссылкам" употребляют его синонимы " ссылочная целостность", " целостность связей" или " требование внешнего ключа". 4.4.Операции над данными (реляционная алгебра). |
Последнее изменение этой страницы: 2017-05-05; Просмотров: 417; Нарушение авторского права страницы