Skip to main content

Основы нормализации базы данных

Основы SQL - #2 – Нормализация (Апрель 2025)

Основы SQL - #2 – Нормализация (Апрель 2025)
Anonim

Если вы некоторое время работаете с базами данных, скорее всего, вы слышали термин «нормализация». Возможно, кто-то спросил вас: «Нормализована ли эта база данных?» или «Это в BCNF?» Нормализация часто отметается в сторону роскоши, которой только у ученых есть время. Однако знание принципов нормализации и применение их к вашим ежедневным задачам проектирования баз данных действительно не так уж сложно, и это может значительно повысить производительность вашей СУБД.

В этой статье мы представим концепцию нормализации и кратко рассмотрим наиболее распространенные нормальные формы.

Что такое нормализация?

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

Нормальные формы

Сообщество базы данных разработало ряд рекомендаций по обеспечению нормализации баз данных. Они называются нормальными формами и пронумерованы из одной (наименьшая форма нормализации, называемая первой нормальной формой или 1NF) через пять (пятая нормальная форма или 5NF). В практических приложениях вы часто увидите 1NF, 2NF и 3NF вместе со случайным 4NF. Пятая нормальная форма очень редко встречается и не обсуждается в этой статье.

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

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

Первая нормальная форма (1NF) устанавливает самые основные правила для организованной базы данных:

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

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

Вторая нормальная форма (2NF) далее рассматривает концепцию удаления дублирующих данных:

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

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

Третья нормальная форма (3NF) идет на один большой шаг:

  • Соблюдайте все требования второй нормальной формы.
  • Удалите столбцы, которые не зависят от первичного ключа.

Нормальная форма Boyce-Codd (BCNF или 3.5NF)

Нормальная форма Boyce-Codd, также называемая «третьей и половинной (3.5) нормальной формой», добавляет еще одно требование:

  • Соблюдайте все требования третьей нормальной формы.
  • Каждый детерминант должен быть ключом кандидата.

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

Наконец, четвертая нормальная форма (4NF) имеет одно дополнительное требование:

  • Соблюдайте все требования третьей нормальной формы.
  • Отношение находится в 4NF, если оно не имеет многозначных зависимостей.

Помните, что эти нормативные положения являются кумулятивными. Чтобы база данных находилась в 2NF, она должна сначала выполнить все критерии базы данных 1NF.

Должен ли я нормализовать?

Хотя нормализация базы данных часто является хорошей идеей, это не является абсолютным требованием. Фактически, есть случаи, когда сознательное нарушение правил нормализации является хорошей практикой. Для получения дополнительной информации по этой теме прочитайте «Должен ли я нормализовать свою базу данных?

Если вы хотите, чтобы ваша база данных была нормализована, начните с изучения того, как поместить вашу базу данных в первую нормальную форму.