Что знаешь про нормализацию

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

1НФ, когда таблица соответствует реляционным принципам:

  • нет дублирующих строк
  • в каждой ячейке 1 атомарное значение (не составное)
  • в столбце хранятся данные 1 типа
  • отсутствуют массивы и списки в любом виде

2НФ, когда указан первичный ключ:

  • таблица имеет первичный ключ
  • все столбцы таблицы заявятся от первичного ключа

3НФ, таблица должна содержать правильные не ключевые столбцы

  • когда нет неотносящихся к первичному ключу столбцов

Например, здесь описание подразделения не относится никак к сотруднику

Имеет смысл выделить подразделение в отдельную таблицу

НФ Бойса-Кодда

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

Например, здесь зная куратора мы точно знаем какое направление будет у проекта, в этом столбце нет смысла

Поэтому вынесем куратора в отдельную таблицу, выдадим ему направление и сделаем отдельную таблицу для связи проектов и кураторов

4НФ, когда не содержит многозначных зависимостей:

  • Многозначные зависимости плохи тем что их нельзя независимо друг от друга редактировать
  • Когда в таблице 3 и более столбцов которые многозначно зависят

    Тут у каждого курса может быть разный преподаватель и аудитория, а у преподавателя может быть разный курс и аудитория, а в аудитории может проходить разный курс и вести его может разный преподователь

Поэтому нужно разнести многозначную зависимость по разным таблицам

5НФ, когда можно выполнить декомпозицию без потерь.

  • Когда у нас есть 3 таблицы и при JOIN’е всех трех у нас получится таблица со всеми данными из всех трех таблиц без потерь.

Доменно-ключева

Когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную отношения.

6НФ, когда она удовлетворяет всем нетривиальным зависимостям соединения

  • для хронологических баз данных
  • декомпозиция до конца (максимально возможная декомпозиция)

Oct. 9, 2023, Источник

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

Вот основные принципы:

1. Первая нормальная форма (1NF):

  • Все атрибуты в таблице должны быть атомарными, то есть каждый атрибут должен содержать только одно значение.
  • Все повторяющиеся группы атрибутов должны быть удалены.

2. Вторая нормальная форма (2NF):

  • Таблица должна находиться в 1NF.
  • Каждый нетривиальный атрибут должен быть полностью функционально зависим от первичного ключа, то есть отсутствие частичной функциональной зависимости.

3. Третья нормальная форма (3NF):

  • Таблица должна находиться в 2NF.
  • Нет зависимостей на основе неключевых атрибутов, то есть отсутствие транзитивных зависимостей.

4. Нормальная форма Бойса-Кодда (BCNF):

  • Расширение третьей нормальной формы, в котором дополнительное требование состоит в том, чтобы каждое нетривиальное функциональное зависимость A → B, где B не является ключом, было зависимым только от кандидат-ключа.

5. Четвертая нормальная форма (4NF):

  • После разделения данных в 3NF, не должно быть многозначных зависимостей относительно многозначных зависимостей.

6. Пятая нормальная форма (5NF):

  • Основная цель - минимизировать избыточные связи между таблицами путем удаления зависимостей и разделения данных.

Применение нормализации в базе данных позволяет уменьшить дублирование данных, уменьшить объем хранимой информации, обеспечить более простой доступ к данным и повысить целостность данных. Однако следует помнить, что избыточная нормализация может привести к увеличению сложности запросов и ухудшению производительности. Поэтому необходимо находить баланс между нормализацией и производительностью системы.

Feb. 18, 2024, easyoffer