Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мои билеты.docx
Скачиваний:
7
Добавлен:
27.09.2019
Размер:
2.85 Mб
Скачать

19. Нормализация отношений. Нормальная форма Бойса-Кодда. Примеры.

Нормализация – это процесс последовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ.

Бойс и Кодд обосновали и предложили более строгое определение для 3НФ, которое учитывает, что в таблице может быть несколько первичных ключей.

Таблица находится в нормальной форме Бойса-Кодда тогда и только тогда, когда любая функциональная зависимость между ее атрибутами сводится к полной функциональной зависимости от возможного первичного ключа.

По определению отношение находится в НФБК, если каждый детерминант является первичным ключом.

Детерминант - любой атрибут, от которого полностью функционально зависит некоторый другой атрибут.

Пример:

Результаты сессии (Студент*, Учебный план*, Оценка)

Учебный план (№*, Дисциплина, Семестр, Кол-во часов, Форма отчетности, ФИО преподавателя)

Преподаватели (ФИО преподавателя*, Должность преподавателя) – НФБК (здесь = 3НФ)

20. Нормализация отношений. Четвертая и пятая нормальные формы. Примеры.

Нормализация – это процесс последовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ.

Таблица находится в пятой нормальной форме тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.

Четвертая нормальная форма является частным случаем 5НФ, когда полная декомпозиция должна быть соединением ровно этих проекций. На практике непросто подобрать реальную таблицу, которая находилась бы в 4НФ, но не была бы в 5НФ.

(Возможный ключ - поле или несколько атрибутов (полей) отношения (таблицы), совокупность значений которых отвечает требованиям, предъявляемым к первичному ключу, то есть является уникальной для каждой записи в таблице.)

21. Нормализация отношений. Процедура нормализации. Примеры применения процедуры нормализации к универсальному отношению.

Нормализация – это процесс последовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ. Однако оказывается, что достаточно привести таблицы к НФБК (Нормальная форма Бойса-Кодда) и с большой гарантией считать, что они находятся в 5НФ (это утверждение нуждается в проверке, но пока не существует эффективного алгоритма такой проверки).

Рассмотрим процедуру приведения таблиц к НФБК.

Такая процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида А->К, где К – первичный ключ, а А – некоторый атрибут. Принцип «один факт в одном месте» говорит о том, что не должно существовать в рамках таблицы никаких других функциональных зависимостей. Цель нормализации и состоит в удалении этих «других» функциональных зависимостей.

Рассмотрим два возможных случая.

1. Таблица имеет составной первичный ключ вида, скажем, (К1,К2), и включает также атрибут А, который функционально зависит от части этого ключа (например, от К2), но не от полного ключа. В этом случае рекомендуется сформировать другую таблицу, содержащую атрибуты К2 и А (первичный ключ – К2), и удалить атрибут А из первоначальной таблицы.

2. Таблица имеет первичный (возможный) ключ К, атрибут А1, который не является возможным ключом, но функционально зависит от К, и другой неключевой атрибут А2, который функционально зависит от А1. Решение здесь, по существу, то же самое, что и прежде – формируется другая таблица, содержащая атрибуты А1 и А2, с первичным ключом А1, а атрибут А2 удаляется из первоначальной таблицы.

Таким образом, повторяя применение двух рассмотренных правил, для любой заданной таблицы почти во всех реальных практических ситуациях можно получить в конечном счете множество таблиц, которые находятся в НФБК и не содержат каких-либо функциональных зависимостей вида, отличного от А->К.

Пример:

1. Определение первичного ключа таблицы.

Сессия (ФИО студента, Семестр, Дисциплина, Форма отчетности, Оценка, Количество часов, ФИО преподавателя)

Первичный ключ - ФИО студента, Дисциплина, Семестр, Форма отчетности.

2. Выявление атрибутов, функционально зависящих от части составного ключа.

ФИО преподавателя и Количество часов функционально зависит только от атрибутов Дисциплина, Семестр и Форма отчетности, т.е. этот атрибут вместе с совокупностью атрибутов первичного ключа составит вторую таблицу:

Учебный план (Дисциплина*, Семестр*, Форма отчетности*, Количество часов, ФИО преподавателя).

Из исходной таблицы при этом удаляются атрибуты Количество часов и ФИО преподавателя.

3. Ликвидация избыточности информации:

Учебный план (№. Уч. плана*, Дисциплина, Семестр, Форма отчетности, Количество часов, ФИО преподавателя).

Результат сессии (ФИО студента*, № Уч. плана*, Оценка).