Skip to content
IRC-CodingIRC-Coding
Проектирование баз данныхНормализация1NF2NF3NFBCNFАномалииФункциональные зависимостиСвязи

Нормализация баз данных просто

Нормализация устраняет избыточность и аномалии. 1NF, 2NF, 3NF, BCNF, функциональные зависимости и ключи.

S

schutzgeist

2 min read
Нормализация баз данных просто

Проектирование баз данных. Нормализация - 1NF, 2NF, 3NF, BCNF, аномалии, отношения

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

In a Nutshell

Нормализация устраняет избыточность и аномалии в базах данных путём пошагового разложения отношений на корректно структурированные нормальные формы, обеспечивая целостность и согласованность данных.

Полное описание

Нормализация — это систематический процесс преобразования реляционных баз данных с целью исключить избыточность и предотвратить аномалии. Первая нормальная форма (1NF) требует атомарных значений и уникальных первичных ключей. Вторая нормальная форма (2NF) опирается на 1NF и устраняет частичные зависимости неключевых атрибутов. Третья нормальная форма (3NF) требует соблюдения 2NF и удаляет транзитивные зависимости. Нормальная форма Бойса-Кодда (BCNF) — это более строгий вариант 3NF, в котором каждая детерминанта должна быть кандидатом в ключи. Нормализация предотвращает аномалии вставки, обновления и удаления, повышая целостность данных.

Основные экзаменационные пункты

  • 1NF: атомарные значения, отсутствие повторяющихся групп, уникальные первичные ключи
  • 2NF: соблюдение 1NF, отсутствие частичных зависимостей, полная зависимость неключевых атрибутов
  • 3NF: соблюдение 2NF, отсутствие транзитивных зависимостей
  • BCNF: каждая детерминанта является кандидатом в ключи
  • Функциональные зависимости: X → Y означает функциональную зависимость Y от X
  • Предотвращение аномалий: аномалии вставки, обновления, удаления
  • Требования к экзамену: уметь определять и применять нормальные формы
  • На практике: сокращение избыточности, оптимизация производительности, обеспечение согласованности

Ключевые компоненты

  1. Атомарные значения и 1NF
  2. Функциональные зависимости
  3. Первичные ключи и кандидаты в ключи
  4. Частичные зависимости и 2NF
  5. Транзитивные зависимости и 3NF
  6. Детерминанты и BCNF
  7. Аномалии (вставка, обновление, удаление)
  8. Избыточность и её последствия
  9. Отношения и внешние ключи
  10. Денормализация как противоположность

Практический пример

// До нормализации (проблема с избыточностью)
Bestellung(BestellNr, KundenNr, KundenName, ArtikelNr, ArtikelName, Menge)

// После нормализации до 3NF
Kunde(KundenNr, KundenName)
Artikel(ArtikelNr, ArtikelName)
Bestellung(BestellNr, KundenNr, Datum)
BestellPosition(BestellNr, ArtikelNr, Menge)

Erklärung: Redundanzen устранены, каждый элемент данных хранится один раз, аномалии исключены.

Преимущества и недостатки

Преимущества

  • Снижает избыточность и требования к хранилищу
  • Предотвращает аномалии при манипуляции данными
  • Улучшает целостность и согласованность данных
  • Обеспечивает гибкость при изменении структуры данных

Недостатки

  • Возрастает сложность из-за большого количества таблиц
  • Снижение производительности из-за операций JOIN
  • Повышенные затраты на реализацию
  • Может потребоваться денормализация для улучшения производительности

Типичные экзаменационные вопросы (краткие ответы)

  1. Что требует 1NF? Атомарные значения, отсутствие повторяющихся групп, уникальные первичные ключи.

  2. Чем 2NF отличается от 1NF? 2NF требует соблюдения 1NF и устраняет частичные зависимости неключевых атрибутов.

  3. Транзитивная зависимость в 3NF? Атрибут A зависит от B, B зависит от C, но A не зависит непосредственно от C.

  4. BCNF строже, чем 3NF? BCNF требует, чтобы каждая детерминанта была кандидатом в ключи — это более строгое условие, чем в 3NF.

  5. Как предотвратить аномалию вставки? Через нормализацию можно вставлять новые данные без необходимости дублирования существующих.

  6. Что означает функциональная зависимость X → Y? Для каждого значения X существует ровно одно соответствующее значение Y.

  7. Аномалия обновления и пример? Изменение имени клиента требует обновления во всех заказах, создавая риск несогласованности.

  8. Когда денормализация оправдана? При проблемах с производительностью, вызванных сложными объединениями таблиц, когда целенаправленная избыточность приемлема.

Основные источники

  1. https://de.wikipedia.org/wiki/Normalisierung_(Datenbanken)
  2. https://docs.microsoft.com/de-de/sql/relational-databases/normalization
  3. https://www.guru99.com/database-normalization.html

Рекомендуемая литература: базы данных

Keine Bücher für Kategorie "datenbanken" gefunden.

Назад к блогу
Share:

Похожие статьи