Definición: Una relación está en FNBC si cualquier
atributo sólo facilita información sobre claves candidatas, y no sobre
atributos que no formen parte de ninguna clave candidata.
Esto
significa que no deben existir interrelaciones entre atributos fuera de las
claves candidatas.
Para
ilustrar esta forma normal volvamos a uno de nuestros ejemplos anteriores, el
de las ocupaciones de habitaciones de un hotel.
Ocupación(No_cliente, Nombre_cliente, No_habitación, fecha_entrada)
Habitación(No_habitación(PK), precio_noche, tipo_habitación)
En
la primera relación los atributos No_cliente y Nombre_cliente sólo proporcionan
información entre ellos mutuamente, pero ninguno de ellos es una clave
candidata.
Intuitivamente
ya habremos visto que esta estructura puede producir redundancia, sobre todo en
el caso de clientes habituales, donde se repetirá la misma información cada vez
que el mismo cliente se aloje en el hotel.
La
solución, como siempre, es simple, y consiste en separar esta relación en dos
diferentes:
Ocupación(No_cliente, No_habitación, fecha_entrada)
Cliente(No_cliente(PK), Nombre_cliente)
Habitación(No_habitación(PK), precio_noche, tipo_habitación)

No hay comentarios.:
Publicar un comentario