Dependencias Funcionales y Formas Normales
Dependencias Funcionales y Formas Normales
Dependencias Funcionales y Formas Normales
INTRODUCCIN
El objetivo del diseo de Base de Datos relacional es generar un conjunto de esquemas de relaciones que permitan almacenar informacin sin redundancias innecesarias, as como se posibiliten recuperar la informacin fcilmente. Un enfoque es disear esquemas que estn en una forma normal apropiada. Para definir las formas normales se usaran dependencias funcionales y usando otro tipo de dependencias entre los datos.
DEPENDENCIA FUNCIONAL
Una dependencia funcional es una conexin entre uno o ms atributos. Ej.
FechaDeNacimiento
Edad
Dependencia funcional Transitiva. Sean X,Y,Z tres atributos o grupo de atributos de la misma entidad. Si Y depende funcionalmente de X y Z de Y, se dice que Z depende funcionalmente de X. X Y yY Z entonces X Z
PROPIEDADES DEDUCTIVAS
Unin X Y y X Z entonces X YZ Pseudo-Transitividad X Y y WY Z entonces WX Z Descomposicin X Y y Z es un subconjunto de de Y entonces X Y
FORMAS NORMALES
Primera forma normal(1FN) Se dice que una relacin est en primera forma normal cuando los valores que toman sus atributos son atmicos o no descomponibles. La restriccin que realiza la 1FN nos dice que un atributo tienes un nico dominio.(No puede haber ms de un atributo en una tupla).
Ej
Cdigo 1 Nombre Juan Grado Ingeniero Materia Horario Base de Datos I 3,4 Base de Datos II
1FN
Cdigo 1 1 Nombre Juan Juan Grado Ingeniero Ingeniero Materia Base De Datos I Base de Datos II Horario 3 4
Segunda Forma Normal(2FN) Se dice que una relacin est en 2FN cuando est en 1FN y todos los atributos que no son parte de la clave dependen de forma completa de la clave. Ej
Cdigo 1 1 Nombre Juan Juan Grado Ingeniero Ingeniero Materia Base De Datos I Base de Datos II Horario 3 4
Ej. la relacin anterior presenta las siguientes anomalas Anomalas de modificacin: Cambiar el nombre del docente supone explorar todas las tuplas de la tabla para mantener la integridad de dependencia funcional Cdigo Nombre Anomalas de insercin: No se puede insertar una materia nueva a no ser que tenga un docente asignado. Hasta que no tenga una materia asignada, no podemos incorporar un docente a la tabla. Anomalas de Borrado: Si se elimina un docente podemos perder las horas asignadas a esa materia o la materia.
fK2
fY fK1 fY fK2
Relacin en 2FN
Horari o 3
Base de Datos II
Tercera forma normal(3FN) Se dice que una relacin esta en 3FN cuando est en 2FN y ningn atributo secundario (aquellos que no forman parte de la clave) depende transitivamente de la clave. Ej
fY
Relacin en 3FN
Cdigo 1
Nombre Juan
Grado Ingeniero
Grado
Ingeniero
Salario
1000
Forma normal de Boyce-Codd(FNBC) Una de las formas ms convenientes que se puede obtener es la FNBC. Un esquema de relaciones R est en FNBC respecto a un conjunto de dependencias funcionales F si para toda las dependencias funcionales en F de la forma x y , donde X R y Y R se cumple al menos una de las siguientes condiciones X Y es una dependencia trivial(Y X) X es una superclave del esquema R
Ej.
Esquema-cliente=(codigo-cliente,calle-cliente,ciudad-cliente) nombre-cliente calle-cliente,ciudad-cliente Esquema-sucursal=(nombre-sucursal,activo,ciudad-sucursal) nombre-sucursal activo,ciudad-sucursal Esquema-pretamo(nombre-sucursal,nombre-cliente,nmeroprestamo,importe) nmero-prestamo importe sucursal Se puede notar que el esquema cliente est en FNBC, notese que una clave candidata para el esquema es codigo-cliente. La nica dependencia no trivial de esquema-cliente es codigo-cliente en la parte izquierda de la flecha. Ya que codigo-cliente es una clave candidata no viola la definicin de FNBC . De la misma forma se puede demostrar que el esquema-sucursal est en FNBC.
Pero el esquema prestamo no est en FNBC . En primer lugar , obsrvese que nmero-prestamo no es superclave de esquema-prestamo ya que podra haber un par de tuplas representando un nico prestamo hecho a 2 dos persona; ej
nombresucursal Centro Centro nombrecliente Sr. Rios Sra.Rios nmeroprestamo P-50 P-50 import e 200 200
Como no se tienes dependencias funcionales que exluyan el caso anterior nmero-prestamo no es una clave candidata.Sin embargo, la dependencia funcional nmero-presatamoimporte es no trivial, Por tanto el esquema-prestamo no satisface la definicin de FNBC.
Dependencias Multivaloradas Hay esquemas que estn en FNBC y no parecen estar lo suficientemente normalizadas en el sentido de que an tienen problemas de repeticin de informacin . Ej.
e-BC=(n_prestamo,nombre-cliente,calle,ciudad)
Como se puede decducir, este esquema no est en FNBC por la dependencia funcional. nombre-cliente calle, ciudad que se habia afirmado anteriormente y porque nombre-cliente noes una clave del esquema BC.
Sin embargo, asmase que este banco trata con clientes con varias direcciones.en este caso ya no se podra forzar la dependencia funcional de nombre-cliente si desaparece esta dependencia funcional ,el esquema BC estara en FNBC respecto al conjunto de dependencias funcionales modificado. Ahora incluso estantoen FNBC presenta problemas de redundancia que se tenia antes y esto en una dependencia mutivalorada. XY
Cuarta forma normal(4FN) Con el ejemplo anterior con la dependencia multivalorada que teniamos antes de nombrecliente aunque el esquema este en FNBC , el diseo no es ideal ya que se debe repetir la informacin de la direccin del cliente por cada prstamo . Un esquema de una base de datos esta en 4FN respecto a un conjunto D de dependencias funcionales multivaloradas si para toda dependencia multivalorada D de la forma xy, donde x R , y R , al menos una de las siguiente condiciones se cumple. xy es una dependencia multivalorada trivial. x es una superclave en el esquema R.
e-cliente=(nombre-cliente,calle,ciudad)