Spec-Zone.ru › MariaDB

Нормализация базы данных: 3-я нормальная форма

Эта статья продолжает Нормализация базы данных: 2-я нормальная форма.

После преобразования во вторую нормальную форму была достигнута следующая структура таблиц:

Таблица местоположения завода
Код завода
Код местоположения
Таблица завода
Код завода
Название завода
Категория почвы
Описание почвы
Таблица местоположения
Код местоположения
Название местоположения

Находятся ли эти таблицы в 3-й нормальной форме?

Таблица находится в 3-й нормальной форме, если:

  • она находится во 2-й нормальной форме
  • она не содержит транзитивных зависимостей (где атрибут, не являющийся ключевым, зависит от первичного ключа через другой атрибут, не являющийся ключевым)

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

Так как только таблица завода имеет более одного атрибута, не являющегося ключевым, вы можете игнорировать другие, поскольку они уже находятся в 3-й нормальной форме. Все поля так или иначе зависят от первичного ключа, поскольку таблицы находятся во второй нормальной форме. Но зависит ли эта зависимость от другого поля, не являющегося ключевым? Название завода не зависит ни от категории почвы, ни от описания почвы. И категория почвы не зависит ни от описания почвы, ни от названия завода.

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

Таблица местоположения завода остается неизменной

Таблица местоположения завода
Код завода
Код местоположения

Таблица завода с удалённым описанием почвы

Таблица завода
Код завода
Название завода
Категория почвы

Новая таблица почвы

Таблица почвы
Категория почвы
Описание почвы

Таблица местоположения остается неизменной

Таблица местоположения
Код местоположения
Название местоположения

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

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

Следующая статья посвящена нормальной форме Бойса-Кодда.

Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/database-normalization-3rd-normal-form/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API