Введение
Шестая нормальная форма (6NF) — это нормальная форма, используемая в нормализации реляционных баз данных, расширяющая реляционную алгебру и обобщающая реляционные операторы (такие как соединение) для поддержки интервальных данных, что может быть полезно во временных базах данных. Исторически термин 6NF также применялся для обозначения другой степени нормализации, которая сегодня чаще известна как нормальная форма ключа домена (DKNF) (см. «Другие значения»).
Определение
Кристофер Дж. Дата и другие определили шестую нормальную форму как нормальную форму, основанную на расширении реляционной алгебры. Реляционные операторы, такие как соединение (join), обобщаются для поддержки естественной обработки интервальных данных, таких как последовательности дат или моментов времени, например, во временных базах данных. Шестая нормальная форма основывается на этом обобщенном соединении следующим образом: relvar R [таблица] находится в шестой нормальной форме (сокращенно 6NF) тогда и только тогда, когда она не удовлетворяет никаким нетривиальным зависимостям соединения, где, как и ранее, зависимость соединения считается тривиальной, если и только если хотя бы одна из проекций (возможно, U-проекций) выполняется над множеством всех атрибутов рассматриваемой relvar [таблицы]. Дата и др. также дали следующее определение: relvar R находится в шестой нормальной форме (6NF) тогда и только тогда, когда каждая зависимость соединения (JD) для R является тривиальной, где JD считается тривиальной, если и только если один из ее компонентов равен соответствующему заголовку в целом. Любое отношение в 6NF также находится в 5NF. Шестая нормальная форма предназначена для разложения переменных отношений на необратимые компоненты. Хотя это может быть относительно неважно для невременных переменных отношений, это может быть важно при работе с временными переменными или другими интервальными данными. Например, если отношение включает имя поставщика, статус и город, мы также можем добавить временные данные, такие как период, в течение которого эти значения были действительны (например, для исторических данных), но эти три значения могут изменяться независимо друг от друга и с разной скоростью. Например, мы можем отслеживать историю изменений статуса; анализ производственных затрат может показать, что изменение было вызвано сменой города поставщиком и, следовательно, изменением стоимости доставки. Для дальнейшего обсуждения временной агрегации в SQL см. также работы Зиманьи. Для альтернативного подхода см. TSQL2.
A relvar R [table] is in sixth normal form (abbreviated 6NF) if and only if it satisfies no nontrivial join dependencies at all — where, as before, a join dependency is trivial if and only if at least one of the projections (possibly U projections) involved is taken over the set of all attributes of the relvar [table] concerned. Date et al. have also given the following definition:
Relvar R is in sixth normal form (6NF) if and only if every JD [Join Dependency] of R is trivial — where a JD is trivial if and only if one of its components is equal to the pertinent heading in its entirety. Any relation in 6NF is also in 5NF. Sixth normal form is intended to decompose relation variables to irreducible components. Though this may be relatively unimportant for non temporal relation variables, it can be important when dealing with temporal variables or other interval data. For instance, if a relation comprises a supplier's name, status, and city, we may also want to add temporal data, such as the time during which these values are, or were, valid (e. g., for historical data) but the three values may vary independently of each other and at different rates. We may, for instance, wish to trace the history of changes to Status; a review of production costs may reveal that a change was caused by a supplier changing city and hence what they charged for delivery. For further discussion on Temporal Aggregation in SQL, see also Zimanyi. For a different approach, see TSQL2.
Использование
Шестая нормальная форма, по состоянию на 2009 год, в настоящее время используется в некоторых хранилищах данных, где преимущества перевешивают недостатки, например, при использовании моделирования якоря. Хотя применение 6НФ приводит к значительному увеличению числа таблиц, современные базы данных могут исключать таблицы из запросов (с помощью процесса, называемого "исключение таблиц"), так что запрос может быть выполнен без обращения к некоторым таблицам, на которые он ссылается, если они не требуются. Это позволяет ускорить запросы, которые обращаются лишь к нескольким атрибутам.
Другие значения
Шестая нормальная форма (6НФ) иногда используется как синоним для доменной ключевой нормальной формы (DKNF). Такое употребление возникло до работ Date и др.