Что такое нормализация БД)))))😍
Это читала)?
Нормализация базы данных (БД) — это процесс организации структуры базы данных для минимизации избыточности данных, устранения аномалий (например, противоречий при обновлении или удалении данных) и обеспечения целостности информации. Этот процесс основан на применении нормальных форм — правил, которые определяют, как данные должны быть структурированы.
---
### Основные цели нормализации БД:
1. Устранение дублирования данных (например, хранение одних и тех же данных в нескольких таблицах).
2. Предотвращение аномалий:
- Вставки (невозможность добавить данные без связанной информации).
- Обновления (необходимость изменять данные в нескольких местах).
- Удаления (потеря связанных данных при удалении записи).
3. Упрощение запросов и поддержки БД.
---
### Основные нормальные формы:
1. 1НФ (Первая нормальная форма):
- Все атрибуты (столбцы) содержат атомарные (неделимые) значения.
- Нет повторяющихся групп данных.
- Пример: вместо столбца «Телефоны» с данными «+79001112233, +79004445555» создается отдельная таблица для хранения телефонов.
2. 2НФ (Вторая нормальная форма):
- Выполнена 1НФ.
- Все неключевые атрибуты зависят от полного первичного ключа (нет частичных зависимостей).
3. 3НФ (Третья нормальная форма):
- Выполнена 2НФ.
- Нет транзитивных зависимостей (неключевые атрибуты не зависят друг от друга).
4. НФБК (Нормальная форма Бойса-Кодда):
- Усиленная версия 3НФ: каждая детерминанта (атрибут, определяющий другие атрибуты) является потенциальным ключом.
---
### Пример нормализации:
Исходная таблица "Заказы":
| OrderID | Customer | Product | Price | Quantity | Total |
|---------|-----------|---------------|-------|----------|-------|
| 1 | Иванов | Книга, Ручка | 500 | 2, 3 | 1900 |
Проблемы:
- Повторяющиеся группы (Product, Price, Quantity).
- Неатомарные значения (списки в ячейках).
После 1НФ:
Таблицы:
- Orders: OrderID, CustomerID
- OrderItems: OrderID, Product, Price, Quantity
После 2НФ и 3НФ:
- Products: ProductID, Product, Price
- Customers: CustomerID, Customer
- Orders: OrderID, CustomerID
- OrderItems: OrderID, ProductID, Quantity
---
### Плюсы и минусы нормализации:
✅ Плюсы:
- Уменьшение избыточности данных.
- Повышение целостности и согласованности.
- Упрощение масштабирования.
❌ Минусы:
- Усложнение структуры БД (больше таблиц и связей).
- Возможное снижение производительности при сложных JOIN-запросах.
---
Нормализация — это баланс между идеальной структурой и практической эффективностью. Иногда для оптимизации запросов используют денормализацию (сознательное нарушение нормальных форм).