6

que tiene las siguientes tablas:diseño - sexta forma normal

Blogs { BlogName } 
BlogPosts { BlogName, PostTitle } 

mensajes de blog es el modelado de una entidad y una relación al mismo tiempo que es válido de acuerdo con 6NF (de acuerdo con el tercer manifiesto).

En 6NF, sería:

Blogs { BlogName } 
Posts { PostTitle } 
BlogPosts { BlogName, PostTitle} 

Si quería pedir entradas del blog de un NBR secuencia (es un ejemplo), que sería otra mesa

BlogPostsSorting { BlogName, PostTitle , SortOrder } 

¿Tengo correcto?

+0

Su esquema de 6NF propuesto supone que ningún blog vuelve a utilizar el título de una publicación. –

+0

Primero, aunque Date y Darwen tienen mucho que decir sobre 6NF, no creo que TTM lo haga. En segundo lugar, tenga en cuenta que aunque 6NF siempre se puede lograr, no siempre es deseable. Véase Darwen's An Introduction to Relational Database Theory (descarga gratuita), 7.3 Evaluación de la descomposición de 6NF, pp180-2. – onedaywhen

Respuesta

4

sqlvogel es correcto in this answer.

Excepto por este pequeño detalle: si Blogs es redundante o no depende de si desea/necesita imponer una restricción al efecto de que todas las tuplas de Blogs deben tener al menos una tupla de BlogPost correspondiente. No dijiste nada para dejar eso en claro.

Lo mismo vale para sus terceras publicaciones de relvar, excepto que en este caso es muy poco probable que pueda ser válido para que exista un PostTitle, sin que aparezca como el título de al menos un BlogPost.

Si necesita el relvar SortingOrder como uno adicional depende de si puede haber BlogPosts para los que no se necesita orden de clasificación. Si no puede, su SortingOrder relvar simplemente reemplaza BlogPosts. Si puede, entonces puede tener los dos relvars; o, alternativamente, solo puede tener el SortingOrder relvar y abrirse paso en el caso de las publicaciones sin ordenar utilizando un valor ficticio (p. ej., siempre -1).

+0

BlogPostsSorting {BlogName, PostTitle, SortOrder}. Si esa es una clave {BlogName, PostTitle} más un atributo sin clave {SortOrder}, entonces es 6NF. (Oh, espera, ¿te estabas refiriendo al efecto de una posible segunda clave {BlogName, SortOrder} ???No creo que esto afecte a nada. El relvar aún no se puede descomponer). –

+0

Parece haber desaparecido el comentario de que este comentario fue una respuesta. –

6

¿Cuáles son las claves de sus tablas? Según los nombres de las columnas, supongo que la clave de BlogPosts solo puede ser {BlogName, PostTitle}. En ese caso, BlogPosts ya está en 6NF, no tiene atributos no primarios y, por lo tanto, no puede descomponerse. Los blogs Relvar y Posts relvar serían redundantes, no los necesitas.

mensajes de blog es el modelado de una entidad y una relación al mismo tiempo que es válido de acuerdo con 6NF (de acuerdo con el tercer manifiesto)

¿Me puede decir dónde cree que el Tercer Manifiesto dice eso no es válido Estoy seguro de que no, pero me gustaría saber cómo llegó a esa conclusión.

+0

TTM no tiene nada explícito para decir sobre 6NF (¿por qué lo haría?) Y Chris Date evita deliberadamente el uso del término 'entidad' hoy en día. – onedaywhen

+1

Aunque no se relaciona con la normalización, habría un problema de diseño práctico si elimináramos los Blogs relvar: no podríamos registrar un blog hasta que se haya decidido el primer título. Creo que este es el punto que Erwin Smout hace, suponiendo que estén tomando restricciones * implícitas *. – onedaywhen

Cuestiones relacionadas