Fundamentos de BD-U4 Diseño de Bd Relacional

52
FUNDAMENTOS DE BASE DE DATOS

description

Desarrollo de la unidad 4

Transcript of Fundamentos de BD-U4 Diseño de Bd Relacional

Presentacin de PowerPoint

FUNDAMENTOS DE BASE DE DATOSCompetencia Especfica de la UnidadAplicar la normalizacin al diseo de los esquemas de la base de datos.

Desarrollo de la UnidadEn la unidad cuatro, se asegura que el diseo de los esquemas de bases de datos cumple con las formas normales y mantienen la adecuada integridad.FUNDAMENTOS DE BASE DE DATOSProblemas con las BD relacionales

Una vez obtenido el esquema relacional resultante del esquema entidad/relacin que representa la base de datos, normalmente tendremos una buena base de datos. Pero otras veces, debido a fallos en el diseo o a problemas indetectables, tendremos un esquema que puede producir una base de datos que incorpore estos problemas.FUNDAMENTOS DE BASE DE DATOSRedundancia. Se llama as a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos. Cuando es excesiva es evidente que el diseo hay que revisarlo, es el primer sntoma de problemas y se detecta fcilmente.

Ambigedades. Datos que no clarifican suficientemente el elemento al que representan. Los datos de cada fila podran referirse a ms de un ejemplar de esa tabla o incluso puede ser imposible saber a qu ejemplar exactamente se estn refiriendo. Es un problema muy grave y difcil de detectar.

FUNDAMENTOS DE BASE DE DATOSPrdida de restricciones de integridad. Normalmente debido a dependencias funcionales. Ms adelante se explica este problema. Se arreglan fcilmente siguiendo una serie de pasos concretos.

Anomalas en operaciones de modificacin de datos. El hecho de que al insertar un solo elemento haya que repetir tuplas en una tabla para variar unos pocos datos. O que eliminar un elemento suponga eliminar varias tuplas necesariamente (por ejemplo que eliminar un cliente suponga borrar seis o siete filas de la tabla de clientes, sera un error muy grave y por lo tanto un diseo terrible).

FUNDAMENTOS DE BASE DE DATOSEl principio fundamental reside en que las tablas deben referirse a objetos o situaciones muy concretas, relacionados exactamente con elementos reconocibles por el sistema de informacin de forma inequvoca. Cada fila de una tabla representa inequvocamente un elemento reconocible en el sistema. Lo que ocurre es que conceptualmente es difcil agrupar esos elementos correctamente. FUNDAMENTOS DE BASE DE DATOSEn cualquier caso la mayor parte de problemas se agravan si no se sigue un modelo conceptual y se decide crear directamente el esquema relacional. En ese caso, el diseo tiene una garanta casi asegurada de funcionar mal. Cuando aparecen los problemas enumerados, entonces se les puede resolver usando reglas de normalizacin. Estas reglas suelen forzar la divisin de una tabla en dos o ms tablas para corregir ese problema. FUNDAMENTOS DE BASE DE DATOSNormalizacinEl proceso de normalizacin de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relacin al modelo relacional.

Las bases de datos relacionales se normalizan para:Evitar la redundancia de los datos.Disminuir problemas de actualizacin de los datos en las tablas.Proteger la integridad de los datos. FUNDAMENTOS DE BASE DE DATOSFormas normales Las formas normales se corresponde a una teora de normalizacin iniciada por el propio Codd y continuada por otros autores (entre los que destacan Boyce y Fagin). Codd defini en 1970 la primera forma normal, desde ese momento aparecieron la segunda, tercera, la Boyce-Codd, la cuarta y la quinta forma normal. Una tabla puede encontrarse en primera forma normal y no en segunda forma normal, pero no al contrario. Es decir los nmeros altos de formas normales son ms restrictivos (la quinta forma normal cumple todas las anteriores).

FUNDAMENTOS DE BASE DE DATOSPrimera forma normal (1FN) Es una forma normal inherente al esquema relacional. Es decir toda tabla realmente relacional la cumple.

Se dice que una tabla se encuentra en primera forma normal si impide que un atributo de una tupla pueda tomar ms de un valor. FUNDAMENTOS DE BASE DE DATOSLa tabla:

Visualmente es una tabla, pero no es una tabla relacional (lo que en terminologa de bases de datos relacionales se llama relacin), ya que no cumple la primera forma normal. Sera primera forma normal si los datos fueran: FUNDAMENTOS DE BASE DE DATOS

Dependencia Funcional Se dice que un conjunto de atributos (Y) depende funcionalmente de otro conjunto de atributos (X) si para cada valor de X hay un nico valor posible para Y. Simblicamente se denota por XY. Por ejemplo el nombre de una persona depende funcionalmente del DNI; es decir para un DNI concreto slo hay un nombre posible. En la tabla del ejemplo anterior, el departamento no tiene dependencia funcional, ya que para un mismo DNI puede haber ms de un departamento posible. Pero el nombre s que depende del DNI. Al conjunto X del que depende funcionalmente el conjunto Y se le llama determinante. Al conjunto Y se le llama implicado. FUNDAMENTOS DE BASE DE DATOSDependencia Funcional Completa Un conjunto de atributos (Y) tiene una dependencia funcional completa sobre otro conjunto de atributos (X) si Y tiene dependencia funcional de X y adems no se puede obtener de X un conjunto de atributos ms pequeo que consiga una dependencia funcional de Y (es decir, no hay en X un determinante formado por atributos ms pequeos).

FUNDAMENTOS DE BASE DE DATOSPor ejemplo en una tabla de clientes, el conjunto de atributos formado por el nombre y el DNI producen una dependencia funcional sobre el atributo apellidos. Pero no es plena ya que el DNI individualmente, tambin produce una dependencia funcional sobre apellidos. El DNI s produce una dependencia funcional completa sobre el campo apellidos. Una dependencia funcional completa se denota como X=>Y FUNDAMENTOS DE BASE DE DATOSDependencia Funcional Elemental

Se produce cuando X e Y forman una dependencia funcional completa y adems Y es un nico atributo.

FUNDAMENTOS DE BASE DE DATOSDependencia Funcional Transitiva Es ms compleja de explicar, pero tiene tambin utilidad. Se produce cuando tenemos tres conjuntos de atributos X, Y y Z. Y depende funcionalmente de X (XY), Z depende funcionalmente de Y (YZ). Adems X no depende funcionalmente de Y (Y-/X). Entonces ocurre que X produce una dependencia funcional transitiva sobre Z. Esto se denota como: (X Z)

FUNDAMENTOS DE BASE DE DATOSPor ejemplo si X es el atributo Nmero de Clase de un instituto, e Y es el atributo Cdigo Tutor. Entonces XY (el tutor depende funcionalmente del nmero de clase). Si Z representa el Cdigo del departamento, entonces YZ (el cdigo del departamento depende funcionalmente del cdigo tutor, cada tutor slo puede estar en un departamento). Como ocurre que Y-/X (el cdigo de la clase no depende funcionalmente del cdigo tutor, un cdigo tutor se puede corresponder con varios cdigos de clase). Entonces X Z (el cdigo del departamento depende transitivamente del cdigo de la clase). FUNDAMENTOS DE BASE DE DATOSSegunda Forma Normal (2FN) Ocurre si una tabla est en primera forma normal y adems cada atributo que no sea clave, depende de forma funcional completa respecto de cualquiera de las claves. Toda la clave principal debe hacer dependientes al resto de atributos, si hay atributos que depende slo de parte de la clave, entonces esa parte de la clave y esos atributos formarn otra tabla. Ejemplo: FUNDAMENTOS DE BASE DE DATOS

Suponiendo que el DNI y el cdigo de curso formen una clave principal para esta tabla, slo la nota tiene dependencia funcional completa. El nombre y los apellidos dependen de forma completa del DNI. La tabla no es 2FN, para arreglarlo: FUNDAMENTOS DE BASE DE DATOS

FUNDAMENTOS DE BASE DE DATOSEjemplo:Tenemos una biblioteca escolar en la cual se realizan prstamos a los estudiantes, y sus atributos son (CodLibro, Titulo, Autor, Editorial, MatriculaAlumno, NombreAlumno, FechaDev)

FUNDAMENTOS DE BASE DE DATOSEjemplo:La definicin nos indica que, si hay atributos que depende slo de parte de la clave, entonces esa parte de la clave y esos atributos formarn otra tabla.

Tercera Forma Normal (3FN)Ocurre cuando una tabla est en 2FN y adems ningn atributo que no sea clave depende transitivamente de las claves de la tabla. Es decir, no ocurre cuando algn atributo depende funcionalmente de atributos que no son clave. Ejemplo: FUNDAMENTOS DE BASE DE DATOS

La Provincia depende funcionalmente del cdigo de provincia, lo que hace que no est en 3FN. El arreglo sera: FUNDAMENTOS DE BASE DE DATOS

Ejercicio: tenemos una BD de eventos culturales la cual se forma por los campos (nEvento, artista, nLocal, nomLocal, dirLocal, precio, fechaEvento); analizar y poner la tabla en 3FN.

FUNDAMENTOS DE BASE DE DATOS

Solucin:

FUNDAMENTOS DE BASE DE DATOS

Forma normal de Boyce-Codd (FNBC o BCFN)Ocurre si una tabla est en tercera forma normal y adems todo determinante es una clave candidata. Ejemplo: FUNDAMENTOS DE BASE DE DATOS

La cuestin es que un trabajador o trabajadora puede trabajar en varios departamentos. En dicho departamento hay varios responsables, pero cada trabajador slo tiene asignado uno. El detalle importante que no se ha tenido en cuenta, es que el o la responsable slo puede ser responsable en un departamento. Este detalle ltimo produce una dependencia funcional ya que: ResponsableDepartamento

FUNDAMENTOS DE BASE DE DATOSPor lo tanto hemos encontrado un determinante que no es clave candidata. No est por tanto en FNBC. En este caso la redundancia ocurre por mala seleccin de clave. La redundancia del departamento es completamente evitable. La solucin sera:FUNDAMENTOS DE BASE DE DATOS

Nota: En las formas de Boyce-Codd hay que tener cuidado al descomponer ya que se podra perder informacin por una mala descomposicin Ejercicio de la FNBCReglasPara cada proyecto, una tarea es encomendada a un solo empleado, aun cuando el empleado est en varios proyectos.Un proyecto est asociado a distintas tareas.Un empleado se especializa en un tipo de tarea.Una misma tarea puede ser desarrollada por distintos empleados en distintos proyectos.FUNDAMENTOS DE BASE DE DATOS

Existen dos claves candidatas en esta relacin: (proyecto, tarea) y (proyecto, empleado)

Existe un determinante de tarea que es empleado, pero empleado NO es clave candidata: empleado tarea

FUNDAMENTOS DE BASE DE DATOSTablas resultantes:FUNDAMENTOS DE BASE DE DATOS

Dependencias Multivalor: Dada una relacin R, se dice que un atributo R.y es dependiente multivalor (DMV) de un atributo R.x si un rango especfico de valores de y estn determinados por el valor especfico de x, con la independencia del resto de atributos de R.

Se lee: R.y es muyltivalor de R.x; o R.x multidetermina a R.yFUNDAMENTOS DE BASE DE DATOSCada curso tiene un conjunto definido de profesores y un conjunto de textos.Los profesores son independientes de los textosUn profesor puede dar varios cursos y un texto puede usarse en ms de una materiaFUNDAMENTOS DE BASE DE DATOS

Esta relacin especifica que: el curso impartido puede ser dictado por varios profesores utilizando varios textos; existen dos DMV: curso -> profesor curso -> textoFUNDAMENTOS DE BASE DE DATOS

La redundancia de datos causada por la DMV, se puede eliminar siguiendo uno de los siguientes mtodos:

Primero:

Crear una nueva relacin para cada atributo DMV curso -> profesor curso -> texto

R1= (curso, profesor); R2= (curso, texto);

FUNDAMENTOS DE BASE DE DATOSCrear una nueva relacin por cada atributo DMV:

FUNDAMENTOS DE BASE DE DATOS

Segundo

Reemplazar los atributos DMV con atributos funcionalmente dependientes DF;

curso (texto1, texto2, texto3) R3= (curso, texto1, texto2, texto3)

FUNDAMENTOS DE BASE DE DATOSFUNDAMENTOS DE BASE DE DATOS

Cuarta Forma Normal

Una relacin se encuentra en Cuarta Forma Normal (4FN) si es BCFN y no contiene dependencias multivalor. FUNDAMENTOS DE BASE DE DATOSActividadesFUNDAMENTOS DE BASE DE DATOS

Si el nmero de valores repetidos en la DMV es grande:Se crea una nueva relacin para el atributo DMV y su clave principalFUNDAMENTOS DE BASE DE DATOS

Si el nmero de valores repetidos del atributo DMV es pequeo y especfico: C/u de los valores del atributo DMV se representa como un atributo dentro del mismo registro:FUNDAMENTOS DE BASE DE DATOS

Ejemplo:FUNDAMENTOS DE BASE DE DATOS

Ejercicio:En un nacimiento nace un bebe (gemelos se considera dos nacimientos)En un nacimiento hay una sola madre y pueden atender el parto una o ms enfermeras, y uno o ms mdicos.

R=(beb, madre, enfermera, mdico)FUNDAMENTOS DE BASE DE DATOSNormalizadoR1 = (beb, madre)R2 = (beb, enfermera, mdico)No hay DT, y est en FNBC, pero en R2 tenemos las dependencias multivaloradas:

beb enfermerabeb mdicoFUNDAMENTOS DE BASE DE DATOSFUNDAMENTOS DE BASE DE DATOS

Procedimientos alternativosCrear una nueva relacin por cada atributo DMV:

FUNDAMENTOS DE BASE DE DATOS

Reemplazar un atributo DMV con atributos funcionales dependientes DF:R5 = (beb, mdico1, mdico2, mdico3)R6 = (beb, enfermera1, enfermera2)FUNDAMENTOS DE BASE DE DATOS

Ejemplo: El psiquiatra puede ofrecer tratamiento reembolsable a los pacientes que sufren de la condicin dada y que son asegurados por el asegurador dado. En ausencia de cualquier regla que restrinja las combinaciones vlidas posibles de psiquiatra, asegurador, y condicin, la tabla de tres atributosPsiquiatra-para-Asegurador-para-Condicines necesaria para modelar la situacin correctamente.

FUNDAMENTOS DE BASE DE DATOS

Sin embargo, suponga que la regla siguiente se aplica:Cuando un psiquiatra es autorizado a ofrecer el tratamiento reembolsable a los pacientes asegurados por el asegurador P, y el psiquiatra puede tratar la condicin C, entonces - en caso que el asegurador P cubra la condicin C - debe ser cierto que el psiquiatra puede ofrecer el tratamiento reembolsable a los pacientes que sufren de la condicin C y estn asegurados por el asegurador P.Con estas restricciones es posible dividir la relacin en tres partes.

FUNDAMENTOS DE BASE DE DATOS

Note como esta disposicin ayuda a quitar redundancia. Suponga que el Dr. James se convierte en un proveedor de tratamientos para FriendlyCare. En la disposicin anterior tendramos que agregar dos nuevas entradas puesto que el Dr. James puede tratar dos condiciones cubiertas por FriendlyCare: ansiedad y depresin. Con la nueva disposicin necesitamos agregar una sola entrada (en la tabla Psiquiatra-para-Asegurador).Quinta Forma Normal (5FN)La quinta forma normal (5FN), tambin conocida como forma normal de proyeccin-unin (PJ/NF), es un nivel de normalizacin de bases de datos diseado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semnticamente relaciones mltiples relacionadas. Una tabla se dice que est en 5NF si y slo si est en 4NF y cada dependencia de unin (join) en ella es implicada por las claves candidatas.

FUNDAMENTOS DE BASE DE DATOSFUNDAMENTOS DE BASE DE DATOS