Базы данных. Уровни данных. Нормальные формы схем отношений. Аксиома дополнения (добавления). Способы размещения с применением Хэш-функции, страница 4

Отношение находится в 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)  Сном->Кном->Тном