Ответ
Нормализация — это процесс проектирования схемы реляционной базы данных для устранения избыточности данных и минимизации аномалий при операциях вставки, обновления и удаления.
Основные цели:
- Исключить дублирование данных.
- Предотвратить аномалии модификации данных.
- Обеспечить целостность и непротиворечивость данных.
Ключевые нормальные формы:
| Форма | Правило | Пример нарушения и исправления |
|---|---|---|
| 1NF | Все значения атрибутов атомарны, нет повторяющихся групп. | Поля: (OrderID, Item1, Item2) → (OrderID, Item) |
| 2NF | Выполнена 1NF. Все неключевые атрибуты полностью зависят от всего первичного ключа (нет частичных зависимостей). | В таблице (OrderID, ProductID, ProductName) ProductName зависит только от ProductID. Исправление: Вынести (ProductID, ProductName) в отдельную таблицу. |
| 3NF | Выполнена 2NF. Нет транзитивных зависимостей (неключевой атрибут не должен зависеть от другого неключевого атрибута). | В таблице (OrderID, CustomerID, CustomerCity) CustomerCity зависит от CustomerID. Исправление: Вынести (CustomerID, CustomerCity) в отдельную таблицу. |
Практический итог: Нормализация приводит к созданию большего количества таблиц с четкими связями, что повышает гибкость и целостность данных, но может усложнять запросы (требуются JOIN).