Отношение находится в 3 нормальной форме, если оно находится во 2 нф и в нем отсутствуют транзитивные зависимости не первичного ключа. Раскладываем отношение:
Хранение(фирма, склад) Объем склада(склад, объем)
Пример.
Служащий (номер_служащего – А, Имя_служащего – B. Зарплата – C, Номер_проекта – D, дата_окончания – E)
Атрибут А не является функционально зависимым от С, ведь у нескольких А может быть один С. Аналогично А не является функционально зависимым от D. Такой зависимостью обладает атрибут Е. Е зависит от атрибута D, который зависит от А. Таким образом Е транзитивно зависит от А.
Аномалия включения. До момента подключения конкретного служащего к работе над данным проектом Е его негде сохранить.
Аномалия удаления. Если все служащие прекратили работу над данным проектом, проект был бы приостановлен до подключения новых служащих и в БД уничтожаются все картежи, содержащие Е.
Аномалия обновления. Изменение Е приводит к необходимости внесения изменений в нескольких картежах. Информация о Е может потребоваться независимо от информации о служащих. Атрибут Е относится больше к проекту, чем к служащему.
Приводим отношение к 3 нф, разбивая его надвое:
Служащий(А, В, С, D) Проект (D, Е)
1) переход от производной структуры данных, не являющейся двумерной к двумерным отношениям или сегментам.
2)Устранение всех неполных зависимостей атрибутов не являющихся основными от возможных ключей.
3) Устранение всех транзитивных зависимостей атрибутов, не являющихся основными от возможных ключей.
Нормальная форма Бойса-Кодда (НФБК) – 3 усиленная нормальная форма. Пусть имеется отношение:
Проект(ДN, ПРN, ПN) – отражающее использование проектов деталей поставляемых поставщиком. В проекте используется несколько деталей. Но каждая DN проекта поставляется одним поставщиком.
Каждый поставщик обслуживает только один проект. Но проекты могут обеспечиваться несколькими поставщиками разных деталей. В отношении детали, проекты, поставщики идентификаторы соответствуют номерам: ДN, ПРN, ПN. Имеем следующие функциональные зависимости:
DN, ПРN->ПN ПN->ПРN
Рассматриваемое отношение находится в 3нф, так как в нем отсутствуют неполные функциональные зависимости и транзитивные зависимости не первичных атрибутов от ключей. Наблюдаются следующие аномалии:
Аномалия включения. Факт поставки поставщиком деталей для проекта не заносится в БД, пока детали не начнут использоваться.
Аномалия удаления. Если последний запас деталей используется, данные о поставщиках также будут удалены из БД.
Аномалия обновления. Если меняется поставщик, необходим просмотр отношения для изменения всех картежей детали.
Определение. Отношение находится в НФБК если оно находится в 3 нф и в нем отсутствуют зависимости первичных атрибутов от не первичных. Эквивалентное определение – все детерминанты находятся в НФБК, если все они являются возможными ключами.
Проект_деталь (ДN, ПРN) Проект1(ПN, ПРN)
Пример.
Сном – номер студента
Сфам – фамилия студента
Кном – номер комнаты (у каждого одна)
Тном – номер телефона (в каждой комнате по телефону)
Курс – номер курса, посещаемого студентом
Семестр – семестр, в котором курс был завершен студентом
Оценка – оценка, полученная студентом за определенный курс
Сном->Сфам Сном->Тном Сном->Кном
Кном->Тном Сном, курс, семестр -> оценка
Тном->Кном
<Сном, курс, семестр> - один возможный ключ, определяющий все остальные атрибуты картежей.
Детерминант – левая часть всех функциональных зависимостей в отношении, а именно:
<Сном>,<Кном>,<Тном>,<Сном, Курс, Семестр>
Для того, чтобы привести отношении к НФБК проводим декомпозицию.
Выделяем транзитивные зависимости:
(1) Сном->Кном->Тном
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.