Dependencias Funcionales y Formas Normales

Embed Size (px)

DESCRIPTION

Normalización de Base de Datos

Citation preview

DEPENDENCIAS FUNCIONALES Y FORMAS NORMALES

DEPENDENCIAS FUNCIONALES Y FORMAS NORMALESINTRODUCCINEl 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 FUNCIONALUna dependencia funcional es una conexin entre uno o ms atributos.Ej.FechaDeNacimientoEdadPROPIEDADES DE LA DEPENDENCIA FUNCIONALExisten 3 axiomas de Armstong1.Dependencia funcional reflexivaSi y es un subconjunto de x entoncesxy2.Dependencia funcional aumentativaxy entoncesxzyzDependencia 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.XY yYZ entonces XZPROPIEDADES DEDUCTIVASUninX Y y X Z entoncesX YZPseudo-Transitividad X Y y WY Z entonces WX ZDescomposicinX Y y Z es un subconjunto de de Yentonces XYFORMAS NORMALESPrimera 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).

Ej1FN

CdigoNombreGradoMateriaHorario1JuanIngenieroBase de Datos I Base de Datos II 3,4CdigoNombreGradoMateriaHorario1JuanIngenieroBase De Datos I31JuanIngenieroBase de Datos II4Segunda 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

CdigoNombreGradoMateriaHorario1JuanIngenieroBase De Datos I31JuanIngenieroBase de Datos II4Ej. la relacin anterior presenta las siguientes anomalasAnomalas de modificacin:Cambiar el nombre del docente supone explorar todas las tuplas de la tabla para mantener la integridad de dependencia funcional Cdigo NombreAnomalas 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.Regla de descomposicin de relaciones que no estn en 2FN:

fK2fXfK1fYfXfK1fK2fK1fYRelacin en 2FN

CdigoNombreGrado1JuanIngenieroCdigoMateriaHorario1Base de Datos I31Base de Datos II4Tercera 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

Como se puede observar el salario depende transitivamente del grado.CdigoNombreGradoSalario1JuanIngeniero1000 Regla de descomposicin de relaciones que no estn en 3FN:

Regla de descomposicin de relaciones que no estn en

ZXfYYXZYCdigoNombreGrado1JuanIngenieroGradoSalarioIngeniero1000Relacin en 3FNForma 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 condicionesX Y es una dependencia trivial(Y X) X es una superclave del esquema REj.Esquema-cliente=(codigo-cliente,calle-cliente,ciudad-cliente)nombre-cliente calle-cliente,ciudad-clienteEsquema-sucursal=(nombre-sucursal,activo,ciudad-sucursal)nombre-sucursal activo,ciudad-sucursalEsquema-pretamo(nombre-sucursal,nombre-cliente,nmero-prestamo,importe)nmero-prestamo importe sucursalSe 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

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.nombre-sucursalnombre-clientenmero-prestamoimporteCentroSr. RiosP-50200CentroSra.RiosP-50200Dependencias MultivaloradasHay 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, ciudadque 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.XYCuarta forma normal(4FN)Con el ejemplo anterior con la dependencia multivalorada que teniamos antes de nombre-cliente 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.Descomposicin de la 4FNSe descompondr el esquema BC en dos nuevos esquemase-prestatario=(nombre-cliente, nmero prstamo)e-cliente=(nombre-cliente,calle,ciudad)