Sexta forma normal


Christopher J. Date y otros han definido la sexta forma normal como una forma normal , basándose en una extensión del álgebra relacional. [1] [2] [3]

Los operadores relacionales, como join , se generalizan para admitir un tratamiento natural de datos de intervalo, como secuencias de fechas o momentos en el tiempo, por ejemplo, en bases de datos temporales . [4] [2] [3] La sexta forma normal se basa entonces en esta combinación generalizada, de la siguiente manera:

Un relvar R [tabla] está en sexta forma normal (abreviado 6NF) si y solo si no satisface dependencias de unión no triviales en absoluto, donde, como antes, una dependencia de unión es trivial si y solo si al menos una de las proyecciones (posiblemente U_projections) involucrado se toma sobre el conjunto de todos los atributos de la relvar [tabla] en cuestión. [5]

Relvar R está en sexta forma normal (6NF) si y solo si cada JD [Join Dependency] de R es trivial, donde un JD es trivial si y solo si uno de sus componentes es igual al encabezado pertinente en su totalidad. [6]

La sexta forma normal está destinada a descomponer las variables de relación en componentes irreducibles. Aunque esto puede ser relativamente poco importante para las variables de relación no temporales, puede ser importante cuando se trata de variables temporales u otros datos de intervalo. Por ejemplo, si una relación comprende el nombre, el estado y la ciudad de un proveedor, es posible que también deseemos agregar datos temporales, como el tiempo durante el cual estos valores son, o fueron, válidos (por ejemplo, para datos históricos) pero los tres valores pueden variar independientemente entre sí y a diferentes velocidades. Por ejemplo, es posible que deseemos rastrear el historial de cambios en el estado; una revisión de los costos de producción puede revelar que un cambio fue causado por un proveedor que cambió de ciudad y, por lo tanto, lo que cobraron por la entrega.

Para obtener más información sobre la agregación temporal en SQL, consulte también Zimanyi. [7] Para un enfoque diferente, consulte TSQL2 . [8]