Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FBD U4 PDF
FBD U4 PDF
Formas normales
Para poder entender lo que son las formas normales, podemos decir que una
relación está en una forma normal específica si cumple con cierto conjunto de
restricciones o reglas que dicha forma normal específica.
Para empezar a tratar de forma individual lo que son las formas normales
necesitamos primeramente comprender los términos y formas de dependencias
funcionales que trataremos a continuación.
X→Y
Supongamos que tenemos una relación cliente con los atributos rfc_cliente,
nombre-cliente, domicilio_cliente y teléfono_cliente como se ilustra en la figura 46.
1
C.J.Date, Introducción a los Sistemas de Bases de Datos. Addison-Wesley Iberoamericana, 1986, pp. 268.
Figura 46 Relación cliente
rfc_cliente → Nombre_cliente
rfc_cliente → Domicilio_cliente
rfc_cliente → Teléfono_cliente
Por ejemplo supóngase que en una relación de clientes contamos entre otros
atributos con clave_lada, (del teléfono) y ciudad_cliente. Esta relación se ilustra en
la figura 48
Siempre que aparece una ciudad especifica de un cliente, esta ciudad esta
relacionada directamente con la clave lada, por lo que el par siempre aparecerán
en todas las tuplas que contengan dicha ciudad.
2
C.J.Date, Introducción a los Sistemas de Bases de Datos. Addison-Wesley Iberoamericana, 1986, pp. 268.
El diagrama de esta dependencia funcional se ilustra en la figura 49, y nos dice
que el atributo clave_lada es funcionalmente dependientemente de ciudad_cliente.
3.2.2.1 1FN.
Es decir, que cada uno de los atributos de una relación solo sea capaz de
almacenar un solo valor por tupla.
Dicho de una manera informal, podemos decir que una relación está en primera
forma normal si tiene una llave primaria bien definida y no tiene atributos
multivalorados
3.2.2.2 2FN.
“Una Relación R está en segunda forma normal (2FN) si y sólo si está en 1FN y
cada atributo no primo es completamente dependiente de la llave primaria”4
Atributo no primo
En esta segunda forma normal, la debemos tomar con especial cuidado cuando
hablamos de llaves primarias compuestas, ya que los atributos no primos, es decir
los que no forman parte de la llave primaria pueden depender solamente de uno
de los componentes de la llave primaria, no necesariamente de toda ésta.
3
C.J.Date, Introducción a los Sistemas de Bases de Datos. Addison-Wesley Iberoamericana, 1986, pp. 271.
4
C.J.Date, Introducción a los Sistemas de Bases de Datos. Addison-Wesley Iberoamericana, 1986, pp. 274.
Por ejemplo si tenemos una relación Pagos que cuenta con los atributos:
Rfc_cliente, Numero_pago, fecha, nombre_cliente, e importe_pago. Que se utiliza
para registrar los pagos que ha hecho un cliente específico del adeudo que tiene y
estos se llevan en forma consecutiva esta relación la encontramos en la figura 50
Entonces podemos decir que la llave primaria está compuesta por Rfc_cliente, y
Numero_pago, ahora veamos como se representan las dependencias funcionales
en esta relación, esto se ilustra en la figura 51 a continuación
En este diagrama podemos apreciar que si bien es cierto la relación pagos está en
primera forma normal en vista de que cada uno de los atributos con que cuenta
dicha relación solo tiene valores atómicos por cada tupla que contenga, sin
embargo, no lo está en segunda forma normal, debido a que los atributos fecha e
importe_pago si tienen dependencia funcional hacia la llave primaria completa, sin
embargo el atributo nombre_cliente solo tiene dependencia funcional al
rfc_clientes.
3.2.2.3 3FN.
Para continuar con las formas normales ahora expliquemos lo que corresponde a
la tercera forma normal o 3FN
“Una relación R está en tercera forma normal (3FN) si y sólo si está en 2FN, y todo
atributo no primo es dependiente no transitivamente de la llave primaria”5
En esta tercera forma normal, nos enfocamos ahora a los atributos no primos y
sus dependencias funcionales entre si, independientemente de las dependencias
funcionales que tengan sobre la llave primaria.
Ahora supongamos que contamos con una relación para registrar tarjetas de
crédito, llamada tarjetas, que cuenta con los siguientes atributos: numero_tarjeta,
fec_exp (fecha de expedición), año_venc, Limite_credito, rfc_cliente,
nombre_cliente, domicilio_cliente. Esto lo ilustramos en la figura 52 a continuación.
5
C.J.Date, Introducción a los Sistemas de Bases de Datos. Addison-Wesley Iberoamericana, 1986, pp. 276.
Figura 52 Relación tarjetas
Hasta ahora hemos definido y explicado lo que son la primera, segunda y tercera
forma normal, de modo siguiente lo que haremos es llevar una relación que este
en primera forma normal, hasta la tercera forma normal con sus respectivas
conversiones y explicando claramente la problemática de dejar una relación solo
en primera forma normal o solo en segunda forma normal, al momento de agregar,
eliminar o actualizar tuplas.
Ahora bien, se pudiera pensar que esto no tiene mayor importancia ya que en la
figura 54 vemos registrada la información que se supone queremos.
Vamos a plantear otra situación, ¿qué pasa si queremos borrar la tupla donde está
el artículo número 3 porque esa compra ya no se llevó a cabo? En este caso
estaríamos borrando además de la información del artículo, toda la información del
proveedor número 456 incluyendo nombre, tipo y descripción de tipo, lo que no
sería nada conveniente. Veamos el gráfico de la figura 57, lo mismo pasaría con el
proveedor número 823.
Para poder eliminar estos problemas mencionados, tendremos que hacer una
modificación a la relación Almacen original. Ahora representemos una división de
la misma como sigue en la figura 59 que nos indica como quedarían las
dependencias funcionales al hacer la separación.
La relación Proveedor ahora está en 2FN ya que tiene dominios atómicos, los
atributos no primos dependen completamente de la llave primaria. Sin embargo no
está en tercera forma normal ya que si existen dependencias transitivas entre
desc_tipo y tipo_prov, es decir la descripción si depende del número de proveedor
pero a través del tipo de proveedor.
Imagine que ahora queremos tener una nueva forma de pago específica y es del
tipo T y se llamara Tarjeta para denotar que se pagara con tarjeta de crédito. No
podríamos registrar eso en la base de datos ya que implica dar de alta un registro
en la relación Proveedor pero sin llave primaria, lo que sería un gran error.
Veámoslo en la figura 64.
Bueno ya vimos que no es conveniente que una relación se quede solo en 2FN y
no llegue a 3FN, entonces hagamos la conversión correspondiente de la tabla
proveedor para poder salvar estos errores. Queda como sigue en la figura 67 el
diagrama de dependencias funcionales
Figura 67 Diagrama de dependencias funcionales de las relaciones Proveedor y Tipos.
Y el ejemplar de las relaciones Proveedor y Tipo es como está en la figura 68, ahí
podemos apreciar mas claramente como queda su contenido.