Нормализация базы данных — это процесс организации данных в таблицах для уменьшения избыточности и обеспечения целостности данных.



Этот процесс включает деление данных на связанные таблицы и установку между ними логических связей.



Основной целью нормализации является устранение аномалий обновления, вставки и удаления данных.



👨‍💻 Основные формы нормализации



1️⃣ Первая нормальная форма (1НФ):



Каждое поле таблицы содержит только одно значение (атомарность данных).

В таблице нет повторяющихся строк.

Пример нарушения: поле, содержащее список элементов через запятую (например, 123, 456, 789).

Решение: разбить такие данные на отдельные строки.



Не нормализовано:

Студент | Курсы

-----------------------

Иван | Математика, Физика

Ольга | Химия


Нормализовано:

Студент | Курс

-----------------

Иван | Математика

Иван | Физика

Ольга | Химия




2️⃣ Вторая нормальная форма (2НФ):



Таблица находится в 1НФ.

Все неключевые поля зависят от всего первичного ключа (нет частичных зависимостей).

Применяется, если первичный ключ составной.



Не нормализовано:

(Студент, Курс)    | Имя_Преподавателя | Кабинет

------------------------------------------------

(Иван, Математика) | Петров | 115

(Иван, Физика) | Иванов | 122


Здесь Имя_Преподавателя и Кабинет зависят только от Курс, а не от всего ключа (Студент, Курс).



Нормализовано:

[ - Курсы - ]

Курс | Имя_Преподавателя | Кабинет

----------------------------------------

Математика | Петров | 115

Физика | Иванов | 122



[ - Записи - ]

Студент | Курс

-----------------

Иван | Математика

Иван | Физика




3️⃣ Третья нормальная форма (3НФ):



Таблица находится во 2НФ.

Все не ключевые поля зависят только от первичного ключа (нет транзитивных зависимостей).



Не нормализовано:

Курс       | Преподаватель | Кафедра

---------------------------------------

Математика | Петров | Математики

Физика | Иванов | Физики


Здесь Кафедра зависит от Преподаватель, а не от Курс.



Нормализовано:

[ - Курсы - ]

Курс | Преподаватель

--------------------------

Математика | Петров

Физика | Иванов



[ - Преподаватели - ]

Преподаватель | Кафедра

--------------------------

Петров | Математики

Иванов | Физики




💻 Когда нормализация может быть излишней ?



🚩 Иногда избыточность данных допускается для повышения производительности (денормализация), особенно в системах, где:

➡️ Преобладают запросы на чтение.

➡️ Изменения данных редки или контролируемы.



⌨️ Теги: #курсы #преподаватели #нормализация #база #данные #базы_данных #сопровождение #разработка #аналитика #maximdupley #quadd4rv1n7 #database #courses #teachers #normalize #develop #dev #analytcs #2024