# 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)