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