Содержание
-
Теория нормализации
-
Цели теории нормализации:
устранение дублирования информации; решение проблемы “присоединенных записей”. Почему дублирование информации – это плохо? Лишний расход памяти. Проблемы с корректировкой данных.
-
Дублирование информации
Сотрудники
-
«Присоединенные» записи
Сотрудники Пусть требуется добавить новый отдел с номером 10 и названием «Отдел логистики». Как это сделать в текущей таблице?
-
Полная декомпозиция
Таблицу «Сотрудники» следует разбить на 2 проекции: Сотрудники2(ТабельныйНом, ФИО, НомОтдела) Отдел (НомОтдела, НазОтдела) Если к этим проекциям применить операцию join, то получим исходную таблицу. Полная декомпозиция таблицы – это набор произвольного числа ее проекций, соединение которых идентично исходной таблице. Процесс нормализации заключается в переходе от исходной таблицы к ее полной декомпозиции вплоть до получения таблиц в пятой нормальной форме.
-
Первая нормальная форма
Таблица находится в 1НФ тогда и только тогда, когда в каждом ее поле (на пересечении строки и столбца) находится ровно одно значение (не более одного и не ноль значений). Специально для выполнения этого требования придумано значение NULL. Пример нарушения 1НФ: в поле НомерТелефона указано несколько номеров через запятую.
-
Что делать? Создать новую таблицу для многозначного атрибута, в которую нужно добавить исходный первичный ключ
-
Функциональная зависимость
Пусть X и Y – списки полей таблицы. Говорят, что Yфункционально зависит от X, если каждому значению X соответствует единственное значение Y. Обозначают X->Y. Любое неключевое поле функционально зависит от первичного ключа!
-
Полная функциональная зависимость
Пусть X и Y – списки полей таблицы. Говорят, что Y находится в полной функциональной зависимости от X, если: Y функционально зависит от X; Y функционально не зависит ни от какого подмножества X, не совпадающего с X. Заказы (НомерЗаказа, НомерТовара, ОписаниеТовара, Количество) Поле «ОписаниеТовара» зависит от части ключа «НомерТовара», т.е., не находится в полной функциональной зависимости от первичного ключа таблицы.
-
Вторая нормальная форма
Таблица находится в 2НФ тогда и только тогда, когда каждое неключевое поле таблицы связано полной функциональной зависимостью с первичным ключом. Пример нарушения 2НФ: рассмотрим таблицу: Заказы (НомерЗаказа, НомерТовара, ОписаниеТовара, Количество) Поле «ОписаниеТовара» зависит от части ключа «НомерТовара», т.е., не находится в полной функциональной зависимости от первичного ключа таблицы, требования 2НФ нарушаются. Что делать?
-
Теорема Хита
Теорема Хита (устанавливает связь между функциональной зависимостью и полной декомпозицией таблицы). Пусть список столбцов таблицы разбит на 3 непересекающиеся части: H, J, K. Если K функционально зависит от J, то выполняется утверждение: Таблица = proj H, J (Таблица) join proj J, K (Таблица)
-
Вторая нормальная форма
Заказы (НомерЗаказа, НомерТовара, ОписаниеТовара, Количество) Поле «ОписаниеТовара» зависит от части ключа «НомерТовара». Положим J=«НомерТовара», K= «ОписаниеТовара», H=остальные столбцы, применим теорему Хита. Получим 2 проекции: Заказы2 (НомерЗаказа, НомерТовара, Количество) Товары(НомерТовара, ОписаниеТовара,)
-
Третья нормальная форма
Таблица находится в 3НФ тогда и только тогда, когда она находится во 2НФ, и не существует функциональных зависимостей между неключевыми полями. Пример нарушения 3НФ: рассмотрим таблицу: Сотрудники (ТабельныйНомер, ФИО, НомерОтдела, НазваниеОтдела) НазваниеОтдела функционально зависит от НомерОтдела т.е, от неключевого поля. Такие зависимости называются транзитивными. Применяя теорему Хита, разобьем эту таблицу на 2 проекции: Сотрудники2 (ТабельныйНомер, ФИО, НомерОтдела) Отделы (НомерОтдела, НазваниеОтдела)
-
Процесс нормализации – когда остановиться?
Примечание: Обычно на практике достаточно ограничиться таблицами в 3НФ, остальные нормальные формы нарушаются редко и представляют только теоретический интерес.
-
Нормальная форма Бойса-Кодда
Таблица находится в НФБК тогда и только тогда, когда любая функциональная зависимость сводится к полной функциональной зависимости от первичного ключа (т.е., нет функциональных зависимостей ключевых полей от неключевых). Пример нарушения НФБК: рассмотрим таблицу (предполагается, что нет одинаковых городов): Адреса (Индекс, Город, Улица) Город функционально зависит от Индекс. Разбивать такую таблицу на 2 проекции не стоит. Лучше смириться с таким нарушением.
-
Четвертая нормальная форма
Таблица находится в 4НФ тогда и только тогда, когда в каждой ее полной декомпозиции, состоящей из двух проекций, каждая проекция содержит первичный ключ исходной таблицы. Пример нарушения 4НФ: рассмотрим таблицу Сотрудник
-
Это нарушение происходит из-за того, что два множественных атрибута объекта (т.е., такие атрибуты, которых у каждого объекта может быть несколько) поместили в одну и ту же таблицу, в то время как для каждого множественного свойства нужно создавать отдельную таблицу Исходную таблицу нужно разбить на две проекции:
-
Пятая нормальная форма
Таблица находится в 5НФ тогда и только тогда, когда в каждой ее полной декомпозиции каждая проекция содержит первичный ключ исходной таблицы.
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.