Что такое нормализация? 1NF, 2NF, 3NF & BCNF с примерами

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

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

Он делит большие таблицы на меньшие таблицы и связывает их с помощью отношений.

В этом уроке вы узнаете,

Изобретатель реляционной модели Эдгар Кодд предложил теорию нормализации с введением первой нормальной формы, и он продолжал распространять теорию со второй и третьей нормальной формой. Позже он присоединился к Раймонду Ф. Бойсу, чтобы разработать теорию нормальной формы Бойса-Кодда.

Теория нормализации данных в SQL все еще развивается. Например, есть дискуссии даже на 6- й нормальной форме. Однако в большинстве практических применений нормализация достигает наилучших результатов в 3- й  нормальной форме . Эволюция теорий нормализации проиллюстрирована ниже:

Примеры нормализации базы данных –

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

Таблица 1

 

Здесь вы видите столбец “Прокат фильмов” имеет несколько значений .

Обычные формы базы данных

Теперь перейдем к 1- й нормальной форме

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

  • Каждая ячейка таблицы должна содержать одно значение.
  • Каждая запись должна быть уникальной.

Вышеприведенная таблица в 1NF-

Пример 1NF

Таблица 1: Форма 1NF

 

Прежде чем мы продолжим, давайте разобраться в нескольких вещах –

Что такое КЛЮЧ?

KEY – это значение, используемое для однозначного определения записи в таблице. КЛЮЧ может быть одним столбцом или комбинацией нескольких столбцов

Примечание. Столбцы в таблице, которые НЕ используются для идентификации уникальной записи, называются несимвольными столбцами.

Что такое первичный ключ?

Первичное значение – это одно значение столбца, используемое для однозначного определения записи в базе данных.

Он имеет следующие атрибуты

  • Первичный ключ не может быть NULL
  • Значение первичного ключа должно быть уникальным
  • Значения первичного ключа не могут быть изменены
  • Первичному ключу должно быть присвоено значение при вставке новой записи.

Что такое композитный ключ?

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

В нашей базе данных у нас есть два человека с таким же именем Роберт Фил, но они живут в разных местах.

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

Перейдем во вторую нормальную форму 2NF

Правила 2NF (вторая нормальная форма)

  • Правило 1- Быть в 1NF
  • Правило 2- Первичный ключ с одной колонкой

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

Таблица 1

Таблица 2

Мы разделили нашу таблицу 1NF на две таблицы: Таблица 1 и Таблица 2. Таблица 1 содержит информацию о членах. В таблице 2 приведена информация о съемках фильмов.

Мы ввели новый столбец Memberhip_id, который является основным ключом для таблицы 1. Записи могут быть однозначно идентифицированы в таблице 1, используя идентификатор принадлежности

База данных – внешний ключ

В таблице 2, Memberhip_ID – это внешний ключ

Внешний ключ ссылается на первичный ключ другой таблицы! Это помогает подключить ваши таблицы

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

Зачем вам нужен внешний ключ?

Предположим, что идиот вставляет запись в таблицу B, такую ​​как

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

Вышеупомянутая проблема может быть преодолена путем объявления идентификатора членства из таблицы 2 как внешнего ключа идентификатора членства из таблицы 1

Теперь, если кто-то попытается вставить значение в поле идентификатора членства, которое не существует в родительской таблице, будет показана ошибка!

Что такое транзитивные функциональные зависимости?

Транзитивная функциональная зависимость – это изменение неклассического столбца, может привести к изменению любого из других неклассических столбцов

Рассмотрим таблицу 1. Изменение неквотного столбца Полное имя может изменить Приветствие.

Перейдем к 3NF

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

  • Правило 1- Быть в 2NF
  • Правило 2 Не имеет транзитивных функциональных зависимостей

Чтобы переместить нашу таблицу 2NF в 3NF, нам снова нужно снова разделить нашу таблицу.

Пример 3NF

ТАБЛИЦА 1

Таблица 2

Таблица 3

 

Мы снова разделили наши таблицы и создали новую таблицу, в которой хранятся «Приветствия».

Не существует транзитивных функциональных зависимостей, и, следовательно, наша таблица находится в 3NF

В Таблице 3 Идентификация приветствия является первичным ключом, а в Таблице 1 Идентификатор приветствия является внешним для первичного ключа в Таблице 3

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

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

Даже если база данных находится в 3- й нормальной форме, все равно возникнут аномалии, если она содержит более одного ключа- кандидата .

Иногда BCNF также упоминается как 3.5 Normal Form.

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

Если экземпляр таблицы базы данных не содержит двух или более независимых и многозначных данных, описывающих соответствующий объект, то он находится в 4- йнормальной форме.

Правила 5NF (Пятая нормальная форма)

Таблица находится в 5- й нормальной форме, только если она находится в 4NF и не может быть разложена на любое количество меньших таблиц без потери данных.

6NF (Шестая нормальная форма) Предлагаемая

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

Это все к нормализации !!!

Резюме

  • Разработка базы данных имеет решающее значение для успешной реализации системы управления базами данных, которая отвечает требованиям к данным в корпоративной системе.
  • Нормализация помогает создавать системы баз данных, которые являются экономически эффективными и имеют лучшие модели безопасности.
  • Функциональные зависимости являются очень важным компонентом процесса нормализации данных
  • Большинство систем баз данных являются нормализованной базой данных до третьих нормальных форм.
  • Первичная уникальная идентификация – это запись в таблице и не может быть нулевой
  • Внешний ключ помогает подключить таблицу и ссылки к первому ключу
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *