Нормализация баз данных: 5-я нормальная форма и далее
Эта статья продолжает статью о 4-й нормальной форме.
Существуют нормальные формы, выходящие за рамки 4-й, которые в основном представляют академический интерес, так как проблемы, которые они решают, редко возникают на практике. Эта серия не будет подробно рассматривать их, но для тех, кто заинтересован, следующий пример даст представление.
Пример с представителями продаж
| Представитель продаж | Компания | Продукт |
|---|---|---|
| Felicia Powers | Exclusive | Книги |
| Afzal Ignesund | Wordsworth | Журналы |
| Felicia Powers | Exclusive | Журналы |
Обычно вы храните эти данные в одной таблице, так как вам нужны все три записи, чтобы увидеть, какие комбинации допустимы. Afzal Ignesund продаёт журналы для Wordsworth, но необязательно книги. Felicia Powers случайно продаёт как книги, так и журналы для Exclusive. Однако давайте добавим ещё одно условие. Если представитель продаж продаёт определённый продукт, и он продаёт его для определённой компании, то он должен продавать этот продукт для этой компании.
Давайте рассмотрим больший набор данных, соответствующий этому условию:
Рассмотрение большего набора данных
| Представитель продаж | Компания | Продукт |
|---|---|---|
| Felicia Powers | Exclusive | Книги |
| Felicia Powers | Exclusive | Журналы |
| Afzal Ignesund | Wordsworth | Книги |
| Felicia Powers | Wordsworth | Книги |
| Felicia Powers | Wordsworth | Журналы |
Теперь, с этой дополнительной зависимостью, вы можете нормализовать таблицу выше на три отдельные таблицы без потери фактов, как показано ниже:
Создание таблицы с представителем продаж и продуктом
| Представитель продаж | Продукт |
|---|---|
| Felicia Powers | Книги |
| Felicia Powers | Журналы |
| Afzal Ignesund | Книги |
Создание таблицы с представителем продаж и компанией
| Представитель продаж | Компания |
|---|---|
| Felicia Powers | Exclusive |
| Felicia Powers | Wordsworth |
| Afzal Ignesund | Wordsworth |
Создание таблицы с компанией и продуктом
| Компания | Продукт |
|---|---|
| Exclusive | Книги |
| Exclusive | Журналы |
| Wordsworth | Книги |
| Wordsworth | Журналы |
В основном, таблица находится в 5-й нормальной форме, если её нельзя разбить на более мелкие таблицы с различными ключами (большинство таблиц, очевидно, могут быть разбиты на более мелкие таблицы с тем же ключом!).
За пределами 5-й нормальной формы вы вступаете в область доменной ключевой нормальной формы, своего рода теоретической идеальной формы. Её практическое применение для разработчика баз данных аналогично применению бесконечности для бухгалтера — то есть, она существует теоретически, но не будет использоваться на практике. Даже самый требовательный владелец не будет ожидать этого от бухгалтера!
Для тех, кто заинтересован в дальнейшем изучении этой академической и чрезвычайно теоретической темы, я рекомендую приобрести копию «Введение в системы баз данных» (An Introduction to Database Systems) К. Дж. Дейта (на момент написания 8-е издание) или «Реляционная теория для компьютерных профессионалов» (Relational Theory for Computer Professionals) того же автора.
© 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-5th-normal-form-and-beyond/