# 16. Нормализация реляционной модели: избыточность, аномалии, суть метода нормальных форм. Виды зависимостей между атрибутами
def Нормализация - преобразование отношения к виду, отвечающему нормальной форме.
TIP
Нормальная форма - некоторая характеристика отношения.
У нормальных форм есть иерархия: каждая следующая является предыдущей.
# Избыточность
Избыточность заключается в дублировании данных. Например, если храним для каждого студента в одной таблице и номер группы и номер факультета
Студент
| Фио | Группа | Образовательная программа |
|---|---|---|
| Либченко М. | M32011 | Программирование |
TIP
Образовательная программа хранится либо у одного студента, либо у всех сразу. В обоих случаях это приводит к своим издержкам.
# Аномалия
Аномалия - отношение или состояние таблицы, которое приводит к несоответствию в хранимых данных или существенно осложняет их обработку.
# 1. Модификации
def Аномалия модификации - изменение значения одной записи привлечёт за собой просмотр всей таблицы и изменения некоторых других записей.
# 2. Удаления
def Аномалия удаления - при удалении записи может пропасть и другая информация.
# 3. Добавления
def Аномалия добавления - информацию в таблицу нельзя поместить, пока она неполная или требуется дополнительный просмотр таблиц.
TIP
Аномалии потенциально приводят нас к нарушению целостности данных.
# Решение проблемы аномалии
Расширенная таблица студентов
Фио (PK) | Группа (PK) | Образовательная программа | Факультет | Форма обучения |
|---|---|---|---|---|
| Либченко М. | M32011 | Программирование | ФИТиП | Очная |
# Виды зависимостей между атрибутами
# Функциональная зависимость между аттрибутами
def Функциональная зависимость между аттрибутами (X -> Y) - в отношении R атрибут y функцинально зависит от атрибута x тогда и только тогда, когда каждому значению x соответствует в точности одно значение y.
TIP
Факультет функционально зависит от образовательной программы.
# Частичная функциональная зависимость
def Частичная функциональная зависимость (ФИО + Группа) -> Образовательная программа - зависимость неключевого атрибута от части составного ключа.
# Полная функциональная зависимость
def Полная функциональная зависимость (ФИО + Группа) -> Форма обучения - неключевой атрибут зависит от всего составного ключа.
# Транзитивная функциональная зависимость
def Транзитивная функциональная зависимость (X -> Z, Y: X -> Y && Y -> Z) - существует такое множество атрибутов Y, что выполняется требование о существовании зависимостей X -> Y && Y -> Z)