Базы данных
Нормализация баз данных
https://kgeorgiy.info/courses/dbms/
Copyright © Георгий Корнеев
Цели и средства нормализации
Содержание
Цели и средства нормализации
Нормализация
Проекции и соединения
Декомпозиция отношений
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Нормализация
Содержание
Цели и средства нормализации
Нормализация
Проекции и соединения
Декомпозиция отношений
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Нормализация
Оптимизация схемы с целью:
Преобразования ФЗ в ограничения ключей
Упрощения изменения данных
(не ключей)
Ускорения изменения данных
Следствия
Скорость выборки может снижаться
Число изменений —
$O$
(число чтений)
Нормальные формы
Формализация интуиции «хорошая схема»
Первые нормальные формы «самоочевидны»
Позволяют выявлять проблемы в дизайне
Требуют знаний о предметной области
Иерархия нормальных форм
1, 2, 3 – разработал Эдгар Кодд
Бойса–Кодда
4, 5, доменно-ключевая – разработал Рональд Фейгин
Проекции и соединения
Содержание
Цели и средства нормализации
Нормализация
Проекции и соединения
Декомпозиция отношений
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Проекция отношения
Проекция отношения
$R$
на множество атрибутов
$X$
$π_X(R) = \{r ∩ X | r ∈ R\}$
«забывание» части атрибутов
может содержать меньше кортежей
Естественное соединение отношений
Восстановление отношения по проекциям
$R_1 ⋈ R_2 = \{r_1 ∪ r_2 | r_1 ∈ R_1, r_2 ∈ R_2 ∧ π_Y(r_1) = π_Y(r_2)\}$
, соединение по совпадающим атрибутам
коммутативность
ассоциативность
Декомпозиция отношений
Отношение преобразуется в набор проекций
Не менее двух
Сохранение всех атрибутов
Декомпозиция отношений
Содержание
Цели и средства нормализации
Нормализация
Проекции и соединения
Декомпозиция отношений
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Декомпозиция отношения
Декомпозиция отношения
$R(XYZ) = π_{XZ}(R) ⋈ π_{YZ}(R)$
«Разрезание» отношения на две проекции, дающие при соединении исходное отношение
Пример декомпозиции (1)
Проекции на
CId Lecturer
и
Lecturer Phone
Пример декомпозиции (1)
Соединение
CId Lecturer
и
Lecturer Phone
Пример декомпозиции (2)
Проекции на
CId Phone
и
Lecturer Phone
Пример декомпозиции (2)
Соединение
CId Phone
и
Lecturer Phone
Теорема Хита
$R(XYZ)$
и
$X → Y~$
⇒
$~R = π_{XY}(R) ⋈ π_{XZ}(R)$
,
где
$X$
,
$Y$
и
$Z$
– множества атрибутов
⊂
$∀ r ∈ R$
:
$π_{XY}(r) ∈ π_{XY}(R), π_{XZ}(r) ∈ π_{XZ}(R)$
,
$r = π_{XY}(r) ⋈ π_{XZ}(r)$
⇒
$r ∈ π_{XY}(R) ⋈ π_{XZ}(R)$
⊃
$∀ (x, y, z) ∈ π_{XY}(R) ⋈ π_{XZ}(R)$
⇒
$(x, y) ∈ π_{XY}(R)$
,
$(x, z) ∈ π_{XZ}(R)$
Из
$(x, z) ∈ π_{XZ}(R)$
⇒
$∃ y': (x, y', z) ∈ R$
⇒
$(x, y') ∈ π_{XY}(R)$
$X → Y ⇒ ∃! y : (x, y) ∈ π_{XY}(R)$
⇒
$y = y'$
⇒
$(x, y, z) ∈ R$
Первые нормальные формы
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Первая нормальная форма
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Первая нормальная форма
Первая нормальная форма (1НФ)
В отношении нет повторяющихся групп
Все атрибуты атомарны
У отношения есть ключ
1НФ (Дейт)
1НФ ≡ отношение
Примеры 1НФ (1)
Отношение в 1НФ
Примеры 1НФ (2)
Повторяющиеся группы
Примеры 1НФ (3)
Неатомарные атрибуты
Примеры 1НФ (4)
1НФ
Аномалии
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Аномалии
Хранение одной информации зависит от другой информации
Причины
Сложные зависимости данных
Недостаточная нормализация данных
Следствия
Невозможность сохранить некоторые данные
Возможность логически некорректных данных
Сложный процесс внесения и изменения данных
Аномалия вставки
Зависимость возможности записать информацию от наличия другой информации
Пример
Если лектор читает курс, то можно указать телефон, иначе нельзя
Аномалия удаления
Удаление одной информации влечет удаление другой
Пример
При удалении последнего курса лектора теряется информация о телефоне
Аномалия изменения
Частичное изменение информации нарушает целостность БД
Пример
Если изменить телефон только в одной записи, то неясен набор телефонов
Вторая нормальная форма
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Пример ФЗ в 1НФ
Какие есть функциональные зависимости?
CId → Exam
CId Year → Lecturer
Пример аномалий в 1НФ
Какие есть аномалии?
Вставка и удаление
Отчетность без лектора
Обновления
Разная отчетность в разные годы
Вторая нормальная форма
Вторая нормальная форма (2НФ)
1НФ
Неключевые атрибуты функционально зависят от ключа в целом
(не от части ключа)
Неключевой атрибут – не входящий в ключ
Нарушается только в случае составных ключей
Приведение ко 2НФ
Декомпозиция по «мешающим» ФЗ
Пример приведения ко 2НФ
Как декомпозировать?
Пример приведения ко 2НФ
Третья нормальная форма
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Пример аномалий во 2НФ (1)
Какие есть функциональные зависимости?
CId Year → Lecturer
Lecturer → Phone
Пример аномалий во 2НФ (2)
Какие есть аномалии?
Вставка и удаление
Телефон преподавателя без курса
Обновления
Разные телефоны у одного преподавателя
Третья нормальная форма
Третья нормальная форма (3НФ)
2НФ
Неключевые атрибуты непосредственно
(не транзитивно)
зависят от ключей
Приведение к 3НФ
Декомпозиция по последней ФЗ в цепочке
Пример приведения к 3НФ
ФЗ:
CId → Lecturer
,
Lecturer → Phone
Как декомпозировать?
Пример приведения к 3НФ
ФЗ:
CId → Lecturer
,
Lecturer → Phone
Нормальная форма Бойса-Кодда
Содержание
Цели и средства нормализации
Первые нормальные формы
Первая нормальная форма
Аномалии
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Пример ФЗ в 3НФ
Свойства
У каждого преподавателя свой телефон
Каждый преподаватель принимает у одной группы
Какие есть ФЗ?
CId Group → Examiner Phone
CId Examiner → Group Phone
CId Phone → Group Examiner
Phone ↔ Examiner
Пример аномалий в 3НФ
Какие есть аномалии?
Аномалия обновления
Изменен преподаватель, но не телефон
НФ Бойса-Кодда
Нормальная форма Бойса-Кодда (НФБК)
В каждой нетривиальной функциональной зависимости
$X → Y$
,
$X$
является надключом
НФБК сильнее, чем 3НФ
3НФ и неперекрывающиеся ключи ⇒ НФБК
Приведение к НФБК
Декомпозиция по «неправильным» ФЗ
Пример приведения к НФБК
Examiner → Phone
Как декомпозировать?
Пример приведения к НФБК
Examiner → Phone
Теорема о достижимости НФБК
Любое отношение можно декомпозировать на отношения, находящиеся в НФБК
Пока есть «мешающая» ФЗ, декомпозируем на два отношения
Число атрибутов уменьшается
Отношение из двух атрибутов находится в НФБК
Недостижимость НФБК (1)
ФЗ
Dept Course → Lecturer
Lecturer → Course
Особенности НФБК (2)
В НФБК могут «распадаться» ФЗ
Зависимые атрибуты представлены в разных отношениях
Проверка «распределенных» ФЗ
К 3НФ можно привести, сохранив все ФЗ
НФБК – «совершенная» НФ с точки зрения ФЗ
Многозначные зависимости и четвертая НФ
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Аномалии в НФБК
Многозначные зависимости
Четвертая нормальная форма
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Аномалии в НФБК
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Аномалии в НФБК
Многозначные зависимости
Четвертая нормальная форма
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Пример ФЗ в НФБК
Какие есть функциональные зависимости?
Отсутствуют
⇒ Находится в НФБК
Пример аномалий в 3НФ
Какие есть аномалии?
Вставки, удаления, обновления
Многозначные зависимости
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Аномалии в НФБК
Многозначные зависимости
Четвертая нормальная форма
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Многозначная зависимость
$X ↠ Y$
в отношении
$R$
$X$
и
$Y$
– множества атрибутов
Множество значений
$Y$
не зависит от
$Z = R \setminus Y \setminus X$
$∀ x, z_1, z_2$
если
$∃ y_1, y_2$
:
$(x, y_1, z_1) ∈ R$
и
$(x, y_2, z_2) ∈ R$
,
то
$\{y|(x, y, z_1) ∈ R\} = \{y|(x, y, z_2) ∈ R\}$
Любая ФЗ является МЗ
Теорема Фейгина
Обобщение теоремы Хита
$R(XYZ) = π_{XY}(R) ⋈ π_{XZ}(R)$
⇔
$X ↠ Y$
⇒
$R(XYZ) = π_{XY}(R) ⋈ π_{XZ}(R)$
⇒
$(x, y, z) ∈ R ⇔ (x, y) ∈ π_{XY}(R) ∧ (x, z) ∈ π_{XZ}(R)$
Пусть
$(x, z_1) ∈ π_{XZ}(R), (x, z_2) ∈ π_{XZ}(R)$
, тогда
$(x, y, z_1) ∈ R ⇔ (x, y) ∈ π_{XY}(R) ⇔ (x, y, z_2) ∈ R$
⇐
$∀ (x, y, z) ∈ π_{XY}(R) ⋈ π_{XZ}(R)$
⇒
$(x, y) ∈ π_{XY}(R) ∧ (x, z) ∈ π_{XZ}(R)$
Тогда
$∃ y', z' : (x, y', z) ∈ R ∧ (x, y, z') ∈ R$
так как
$X ↠ Y$
, то
$(x, y, z) ∈ R ∧ (x, y', z') ∈ R$
Теорема о дополнении
$R(XYZ)$
и
$X ↠ Y$
⇒
$X ↠ Z$
В доказательстве теоремы Фейгина
$Y$
и
$Z$
равноправны
$X ↠ Y | Z$
Следствие:
$∀ R(XY)$
⇒
$X ↠ Y | ∅$
Тривиальные МЗ
Четвертая нормальная форма
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Аномалии в НФБК
Многозначные зависимости
Четвертая нормальная форма
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Четвертая нормальная форма
Для каждой нетривиальной МЗ
$X ↠ Y | Z$
и атрибута
$A$
:
$X → A$
Для каждой нетривиальной МЗ
$X ↠ Y | Z$
$X$
– надключ
Каждая нетривиальная МЗ является ФЗ,
и отношение находится в НФБК
Теорема о декомпозиции (4НФ)
Любое отношение можно декомпозировать на отношения, находящиеся в 4НФ
Пока есть МЗ, декомпозируем на два отношения
Количество атрибутов уменьшается
Отношение из двух атрибутов находится в 4НФ
Почти всегда
Декартово произведение
Пусть
$R(XY) = R_1(X) × R_2(Y)$
Находится ли
$R$
в 4НФ?
Нужно найти МЗ
$∅ ↠ X | Y$
$→$
не в 4НФ
Как декомпозировать?
На
$R_1$
и
$R_2$
Пример МЗ в 3НФ
Какие есть множественные зависимости?
Course ↠ Lecturer | Book
Как декомпозировать?
Пример МЗ в 3НФ
Зависимости соединения и 5НФ
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Зависимости соединения
Пятая нормальная форма
Процесс нормализации и другие НФ
Литература
Зависимости соединения
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Зависимости соединения
Пятая нормальная форма
Процесс нормализации и другие НФ
Литература
Множественная декомпозиция
Какое условие должно выполняться, чтобы декомпозиция была корректной?
Корректное ограничение
Если
Лектор
$L$
читает курс
$C$
Лектор
$L$
читает группе
$G$
Группа
$G$
слушает курс
$C$
То лектор
$L$
читает курс
$C$
группе
$G$
Аномалии
Какие есть аномалии?
Вставки, удаления, обновления
Зависимость соединения
$*\{X_1, X_2, ..., X_n\}$
$R(X_1X_2...X_n) = π_{X_1}(R) ⋈ π_{X_2}(R) ⋈ ⋅⋅⋅ ⋈ π_{X_n}(R)$
Теорема Фейгина
Для
$R(XYZ)$
:
$X ↠ Y | Z$
⇔
$*\{XY, XZ\}$
Тривиальные зависимости соединения
Для любого
$R$
:
$*\{R, X_1, X_2, ..., X_n\}$
Пятая нормальная форма
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Зависимости соединения
Пятая нормальная форма
Процесс нормализации и другие НФ
Литература
Пятая нормальная форма
5НФ (проекционно-соединительная)
Для каждой нетривиальной ЗС
$*\{X_1, X_2, ..., X_n\}$
каждое
$X_i$
– надключ
Для нормализации требуется найти все ЗС
Это сложно
На практике ЗС, не являющиеся МЗ, встречаются редко
Кольцевые ограничения
Если
$(x_1, x_2) ∈ π_{X_1X_2}(R)$
$(x_2, x_3) ∈ π_{X_2X_3}(R)$
...
$(x_{n-1}, x_n) ∈ π_{X_{n-1}X_n}(R)$
$(x_n, x_1) ∈ π_{X_nX_1}(R)$
То
$(x_1, x_2, ..., x_n) ∈ R$
Процесс нормализации и другие НФ
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Иерархия нормальных форм
1НФ
Отношение
2НФ
3НФ
НФБК
Лучшая для ФЗ
4НФ
Лучшая для декомпозиции на два отношения
5НФ
Лучшая для декомпозиции
Теоремы Дейта-Фейгина
Теорема Дейта-Фейгина 1
Если отношение находится в 3НФ и все ключи простые
$→$
отношение находится в 5НФ
Теорема Дейта-Фейгина 2
Если отношение находится в НФБК и существует простой ключ
$→$
отношение находится в 4НФ
Процесс нормализации
1НФ
НФБК
4 НФ
5 НФ
Отношения, построенные по модели сущность-связь, обычно имеют 3+НФ
Набор операций
Проекция и соединения
Разделение на части
Склейка частей
Разбиение и объединение
Partitioning
Свои нормальные формы
Доменно-ключевая НФ
ДКНФ
Все ограничения являются следствием ограничения доменов и ключей
Ограничение домена – тип атрибута
Ограничение ключа – множество атрибутов является ключом
ДКНФ
$⊊$
5НФ (Фейгин)
Не достижима инкрементально
Денормализация
Нормализация
Большое количество отношений
Сложность для понимания
Падение производительности
Денормализация
Отношения, находящиеся в первых НФ
Хранение вычисляемых значений
Дублирование данных
«Ручное» отслеживание зависимостей и аномалий
Литература
Содержание
Цели и средства нормализации
Первые нормальные формы
Многозначные зависимости и четвертая НФ
Зависимости соединения и 5НФ
Процесс нормализации и другие НФ
Литература
Основная литература
Дейт К.
Введение в системы баз данных (главы 12 и 13)
Уидом Д.
,
Ульман Д.
Основы реляционных баз данных (глава 3)
Дополнительная литература
Fagin R.
Normal forms and relational database operators
Fagin R.
Multivalued Dependencies and a New Normal Form for Relational Databases
Beeri C.
,
Fagin R.
,
Howard J.
A complete axiomatization for functional and multivalued dependencies in database relations
Date C. J., Fagin R.
Simple conditions for guaranteeing higher normal forms in relational databases