TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
SQL: Реляционные базы данных

26 Mar 2025, 19:22

Открыть в Telegram Поделиться Пожаловаться

📊 Нормальные формы в реляционных базах данных: что это и зачем нужно?

При проектировании и пользовательской эксплуатации реляционной базы данных важно следовать нормальным формам (NF), чтобы избежать избыточности, аномалий обновления и повысить целостность данных. Давайте разберёмся, какие бывают нормальные формы и как они работают.

Нормальная форма в реляционной модели данных — это свойство отношения, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных, чем меньше избыточность тем выше "нормальность данных"

Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.

Разберем на примерах первые три вида нормальных форм являющихся фундаментом нормализации БД.

1️⃣ Первая нормальная форма (1NF)
Требование:
1. Все атрибуты содержат только атомарные значения (неделимые).
2. Нет повторяющихся групп (множественных значений в одной ячейке).

❌ Плохо (не 1NF):
id name phones
1 Иван +123, +456, +789
✔️ Хорошо (1NF):
id name phone
1 Иван +123
1 Иван +456
1 Иван +789
Разделили атрибут phones на отдельные строки — теперь каждая ячейка содержит одно значение.

2️⃣ Вторая нормальная форма (2NF)
Требование:
1. Таблица уже в 1NF.
2. Все неключевые атрибуты зависят только от полного первичного ключа (если ключ составной).

❌ Плохо (не 2NF):
student_id course_id course_name
1 SQL101 Основы SQL
2 SQL101 Основы SQL
course_name зависит только от course_id, а не от полного составного ключа (student_id, course_id).

✔️ Хорошо (2NF):
Разбиваем таблицу на две таблицы содержащие логически единую информацию.

Таблица студентов и курсов:
student_id course_id
1 SQL101
2 SQL101
Таблица курсов:
course_id course_name
SQL101 Основы SQL
Теперь course_name зависит только от course_id, а не от полного ключа.

3️⃣ Третья нормальная форма (3NF)
Требование:
1. Таблица уже в 2NF.
2. Нет транзитивных зависимостей (атрибуты зависят только от первичного ключа, а не друг от друга).

❌ Плохо (не 3NF):
employee_id dep_id dep_name
1 10 IT
2 20 HR
dep_name зависит от dep_id, а не от первичного ключа employee_id.

✔️ Хорошо (3NF):
Разделяем таблицы логически делящие информацию.

Таблица сотрудников:
employee_id dep_id
1 10
2 20
Таблица отделов:
dep_id dep_name
10 IT
20 HR
Теперь dep_name хранится отдельно и зависит только от dep_id.

💡Вывод
Нормализация помогает избежать дублирования данных, уменьшить избыточность и повысить целостность БД.
1NF — атомарные значения.
2NF — зависимость только от полного первичного ключа.
3NF — отсутствие транзитивных зависимостей.

#Реляционные_базы_данных #Оптимизация_SQL #Нормализация

📱 Подписаться на канал | Курс автора по SQL DDL

714 0 15 1 18
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot