Шестая нормальная форма
Шестая нормальная форма ( 6NF ) — это нормальная форма, используемая при реляционных баз данных нормализации , которая расширяет реляционную алгебру и обобщает реляционные операторы (такие как join ) для поддержки интервальных данных, которые могут быть полезны во временных базах данных .
Термин 6NF исторически также использовался для обозначения другой степени нормализации, которая сегодня более известна как нормальная форма доменного ключа (DKNF) (см. Другие значения ).
Определение [ править ]
Кристофер Дж. Дейт и другие определили шестую нормальную форму как нормальную форму , основанную на расширении реляционной алгебры. [1] [2] [3]
Реляционные операторы, такие как join , обобщаются для поддержки естественной обработки интервальных данных, таких как последовательности дат или моментов времени, например, в темпоральных базах данных . [4] [2] [3] Шестая нормальная форма затем основана на этом обобщенном соединении следующим образом:
R Относительная переменная [таблица] находится в шестой нормальной форме (сокращенно 6NF) тогда и только тогда, когда она вообще не удовлетворяет никаким нетривиальным зависимостям соединения - где, как и раньше, зависимость соединения тривиальна тогда и только тогда, когда хотя бы одна из проекций (возможно, U_projections) принимается за набор всех атрибутов соответствующей relvar [таблицы]. [5]
Дейт и др. также дали следующее определение:
Relvar R находится в шестой нормальной форме (6NF) тогда и только тогда, когда каждый JD [Join Dependency] R тривиален - где JD тривиален тогда и только тогда, когда один из его компонентов полностью равен соответствующему заголовку. [6]
Любое отношение в 6НФ также находится в 5НФ .
Шестая нормальная форма предназначена для разложения переменных отношения на неприводимые компоненты. Хотя это может быть относительно неважно для нетемпоральных переменных отношений, это может быть важно при работе с временными переменными или другими интервальными данными. Например, если отношение включает имя, статус и город поставщика, мы также можем захотеть добавить временные данные, такие как время, в течение которого эти значения являются или были действительными (например, для исторических данных), но три значения могут изменяться независимо друг от друга и с разной скоростью. Например, мы можем захотеть проследить историю изменений Статуса; Анализ производственных затрат может выявить, что изменение было вызвано сменой поставщиком города и, следовательно, суммы, взимаемой за доставку.
Для дальнейшего обсуждения временной агрегации в SQL см. также Зиманьи. [7] О другом подходе см. TSQL2 . [8]
Использование [ править ]
Шестая нормальная форма в настоящее время с 2009 года используется в некоторых хранилищах данных , где преимущества перевешивают недостатки. [9] например, с помощью моделирования якоря . Хотя использование 6NF приводит к взрывному росту количества таблиц, современные базы данных могут удалять таблицы из выбранных запросов (используя процесс, называемый « исключением таблиц », так что запрос можно решить, даже не читая некоторые таблицы, к которым относится запрос). [10] ), где они не требуются, и, таким образом, ускоряют запросы, которые обращаются только к нескольким атрибутам.
Примеры [ править ]
![]() | этого раздела Фактическая точность оспаривается . ( июнь 2017 г. ) |
Чтобы таблица находилась в шестой нормальной форме, она должна сначала находиться в пятой нормальной форме , а затем требуется, чтобы каждая таблица удовлетворяла только тривиальным зависимостям соединения.Давайте возьмем простой пример [11] с таблицей уже в 5НФ:Здесь, в таблице пользователей, каждый атрибут не равен нулю, а первичным ключом является имя пользователя:
Имя пользователя | Отделение | Статус |
---|
Эта таблица находится в 5NF, поскольку каждая зависимость соединения подразумевается уникальным потенциальным ключом таблицы (имя пользователя). Точнее, единственными возможными зависимостями объединения являются: {имя пользователя, статус}, {имя пользователя, отдел}.
Версия 6NF будет выглядеть так:
Имя пользователя | Статус |
---|
Имя пользователя | Отделение |
---|
Итак, из одной таблицы в 5НФ 6НФ создает две таблицы.
Ниже приведен еще один пример:
удостоверение врача | Имя медика | Занятие | Тип | Практика в годах |
---|---|---|---|---|
1 | Смит Джеймс | Ортопедический | Специалист | 23 |
2 | Миллер Майкл | Ортопедический | Стажер | 4 |
3 | Томас Линда | Невролог | Стажер | 5 |
4 | Скотт Нэнси | Ортопедический | Резидент | 1 |
5 | Аллен Брайан | Невролог | Специалист | 12 |
6 | Тернер Стивен | Офтальмолог | Стажер | 3 |
7 | Коллинз Кевин | Офтальмолог | Специалист | 7 |
8 | Король Дональд | Невролог | Резидент | 1 |
9 | Харрис Сара | Офтальмолог | Резидент | 2 |
Зависимости объединения таблицы: {имя врача, профессия}, {имя врача, практика в годах} и {имя врача, тип}. Следовательно, мы могли видеть, что такая таблица является 2НФ (из-за появления транзитивной зависимости). Следующие таблицы пытаются привести его к 6NF:
удостоверение врача | Имя медика |
---|---|
1 | Смит Джеймс |
2 | Миллер Майкл |
3 | Томас Линда |
4 | Скотт Нэнси |
5 | Аллен Брайан |
6 | Тернер Стивен |
7 | Коллинз Кевин |
8 | Король Дональд |
9 | Харрис Сара |
удостоверение врача | Занятие |
---|---|
1 | Ортопедический |
2 | Ортопедический |
3 | Невролог |
4 | Ортопедический |
5 | Невролог |
6 | Офтальмолог |
7 | Офтальмолог |
8 | Невролог |
9 | Офтальмолог |
удостоверение врача | Тип |
---|---|
1 | Специалист |
2 | Стажер |
3 | Стажер |
4 | Резидент |
5 | Специалист |
6 | Стажер |
7 | Специалист |
8 | Резидент |
9 | Резидент |
удостоверение врача | Практика в годах |
---|---|
1 | 23 |
2 | 4 |
3 | 5 |
4 | 1 |
5 | 12 |
6 | 3 |
7 | 7 |
8 | 1 |
9 | 2 |
Другие значения [ править ]
Вместо этого иногда используется шестая нормальная форма (6NF) как синоним нормальной формы доменного ключа (DKNF). Это использование предшествовало работе Дейта и др. [12]
См. также [ править ]
Ссылки [ править ]
- ^ Дата, Дарвен и Лоренцос 2003 .
- ^ Jump up to: а б Дата, Дарвен и Лоренцос, 2014 г.
- ^ Jump up to: а б Харрингтон 2009 , стр. 125–126.
- ^ Дата, Дарвен и Лоренцос 2003 , стр. 141–160.
- ^ Дата, Дарвен и Лоренцос 2003 , с. 176.
- ^ Дата, Дарвен и Лоренцос, 2014 , с. 213.
- ^ Зиманьи 2006 .
- ^ Снодграсс .
- ^ См . веб-сайт Anchor Modeling , где описан метод моделирования хранилища данных, основанный на шестой нормальной форме.
- ^ Что такое исключение из таблицы? - База знаний MariaDB
- ^ Пример предоставлен: http://www.anattatechnologies.com/q/2011/07/normalization-6nf/
- ^ dbdebunk .
Библиография [ править ]
- Дэйт, Крис Дж .; Дарвен, Хью ; Лоренцос, Никос А. (январь 2003 г.). Временные данные и реляционная модель: детальное исследование применения теории интервалов и отношений к проблеме управления временными базами данных . Оксфорд: Elsevier LTD. ISBN 1-55860-855-9 .
- Дэйт, Крис Дж .; Дарвен, Хью ; Лоренцос, Никос А. (12 августа 2014 г.). Время и реляционная теория — Темпоральные базы данных в реляционной модели и SQL . Эльзевир-Морган Кауфманн. ISBN 9780128006313 .
- Снодграсс, Ричард Т. «Язык временных запросов TSQL2» .
- Зиманьи, Э. (июнь 2006 г.). «Временные агрегаты и временная универсальная количественная оценка в стандартном SQL» (PDF) . Запись ACM SIGMOD, том 35, номер 2, стр. 16 . АКМ .
- Дэйт, Крис Дж. «НА НОРМАЛЬНОЙ ФОРМЕ DK/NF» . Архивировано из оригинала 6 апреля 2012 года.
- Харрингтон, Ян Л. (2009). Проектирование и реализация реляционных баз данных: четкое объяснение . Эльзевир-Морган Кауфманн. ISBN 9780123747303 .
Дальнейшее чтение [ править ]
- Дата, CJ (2006). Словарь реляционных баз данных: подробный глоссарий реляционных терминов и понятий с наглядными примерами . Карманные ссылки на серию O'Reilly. О'Рейли Медиа, Инк. с. 90 . ISBN 978-0-596-52798-3 .