Fundamentos de BD - Unidad 4 diseño de bd relacional
1. FUNDAMENTOS DE BASE DE DATOS
Unidad IV: Diseño de Base de Datos
Relacionales
Este material está desarrollado para la asignatura Fundamentos de Base de Datos, de la carrera de Ingeniería en
Sistemas Computacionales, plan de estudios ISIC-2010-224.
2. FUNDAMENTOS DE BASE DE DATOS
Competencia
Aplicar la normalización al diseño de los esquemas de la base de datos.
3. Competencia Específica de la Unidad
• Aplicar la normalización al diseño de los esquemas de la base de
datos.
Desarrollo de la Unidad
• En la unidad cuatro, se asegura que el diseño de los esquemas de
bases de datos cumple con las formas normales y mantienen la
adecuada integridad.
FUNDAMENTOS DE BASE DE DATOS
4. Problemas con las BD relacionales
• Una vez obtenido el esquema relacional resultante del esquema
entidad/relación que representa la base de datos, normalmente
tendremos una buena base de datos. Pero otras veces, debido a fallos
en el diseño o a problemas indetectables, tendremos un esquema
que puede producir una base de datos que incorpore estos
problemas.
FUNDAMENTOS DE BASE DE DATOS
5. • Redundancia. 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 diseño hay que revisarlo, es el primer
síntoma de problemas y se detecta fácilmente.
• Ambigüedades. Datos que no clarifican suficientemente el elemento
al que representan. Los datos de cada fila podrían referirse a más de
un ejemplar de esa tabla o incluso puede ser imposible saber a qué
ejemplar exactamente se están refiriendo. Es un problema muy grave
y difícil de detectar.
FUNDAMENTOS DE BASE DE DATOS
6. • Pérdida de restricciones de integridad. Normalmente debido a
dependencias funcionales. Más adelante se explica este problema. Se
arreglan fácilmente siguiendo una serie de pasos concretos.
• Anomalías en operaciones de modificación 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, sería un
error muy grave y por lo tanto un diseño terrible).
FUNDAMENTOS DE BASE DE DATOS
7. • El principio fundamental reside en que las tablas deben referirse
a objetos o situaciones muy concretas, relacionados
exactamente con elementos reconocibles por el sistema de
información de forma inequívoca. Cada fila de una tabla
representa inequívocamente un elemento reconocible en el
sistema. Lo que ocurre es que conceptualmente es difícil agrupar
esos elementos correctamente.
FUNDAMENTOS DE BASE DE DATOS
8. • En 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 diseño tiene una garantía
casi asegurada de funcionar mal.
• Cuando aparecen los problemas enumerados, entonces se les
puede resolver usando reglas de normalización. Estas reglas
suelen forzar la división de una tabla en dos o más tablas para
corregir ese problema.
FUNDAMENTOS DE BASE DE DATOS
9. Normalización
• El proceso de normalización de bases de datos consiste en designar y
aplicar una serie de reglas a las relaciones obtenidas tras el paso del
modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Disminuir problemas de actualización de los datos en las tablas.
• Proteger la integridad de los datos.
FUNDAMENTOS DE BASE DE DATOS
10. Formas normales
• Las formas normales se corresponde a una teoría de normalización
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 números altos de formas
normales son más restrictivos (la quinta forma normal cumple todas las
anteriores).
FUNDAMENTOS DE BASE DE DATOS
11. Primera 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 más de un valor.
FUNDAMENTOS DE BASE DE DATOS
12. La tabla:
• Visualmente es una tabla, pero no es una tabla relacional (lo que en
terminología de bases de datos relacionales se llama relación), ya que no
cumple la primera forma normal.
• Sería primera forma normal si los datos fueran:
FUNDAMENTOS DE BASE DE DATOS
13. 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. Simbólicamente se denota por XY.
• Por ejemplo el nombre de una persona depende funcionalmente del
DNI; es decir para un DNI concreto sólo hay un nombre posible. En la
tabla del ejemplo anterior, el departamento no tiene dependencia
funcional, ya que para un mismo DNI puede haber más 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 DATOS
14. Dependencia 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
además no se puede obtener de X un conjunto de atributos más pequeño
que consiga una dependencia funcional de Y (es decir, no hay en X un
determinante formado por atributos más pequeños).
FUNDAMENTOS DE BASE DE DATOS
15. • Por 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, también 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 DATOS
16. Dependencia Funcional Elemental
• Se produce cuando X e Y forman una dependencia funcional
completa y además Y es un único atributo.
FUNDAMENTOS DE BASE DE DATOS
17. Dependencia Funcional Transitiva
• Es más compleja de explicar, pero tiene también 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).
Además 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 DATOS
18. • Por ejemplo si X es el atributo Número de Clase de un instituto, e Y es el
atributo Código Tutor. Entonces XY (el tutor depende funcionalmente del
número de clase). Si Z representa el Código del departamento, entonces
YZ (el código del departamento depende funcionalmente del código
tutor, cada tutor sólo puede estar en un departamento).
• Como ocurre que Y-/X (el código de la clase no depende funcionalmente
del código tutor, un código tutor se puede corresponder con varios códigos
de clase). Entonces X ― Z (el código del departamento depende
transitivamente del código de la clase).
FUNDAMENTOS DE BASE DE DATOS
19. Segunda Forma Normal (2FN)
• Ocurre si una tabla está en primera forma normal y además 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 sólo de parte de la clave,
entonces esa parte de la clave y esos atributos formarán otra tabla.
Ejemplo:
FUNDAMENTOS DE BASE DE DATOS
20. • Suponiendo que el DNI y el código de curso formen una clave principal
para esta tabla, sólo 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
21. FUNDAMENTOS DE BASE DE DATOS
Ejemplo:
• Tenemos una biblioteca escolar en la cual se realizan préstamos a los
estudiantes, y sus atributos son (CodLibro, Titulo, Autor, Editorial,
MatriculaAlumno, NombreAlumno, FechaDev)
22. FUNDAMENTOS DE BASE DE DATOS
Ejemplo:
• La definición nos indica que, si hay atributos que depende sólo de parte de
la clave, entonces esa parte de la clave y esos atributos formarán otra tabla.
23. Tercera Forma Normal (3FN)
• Ocurre cuando una tabla está en 2FN y además ningún atributo que no sea
clave depende transitivamente de las claves de la tabla. Es decir, no ocurre
cuando algún atributo depende funcionalmente de atributos que no son
clave.
• Ejemplo:
FUNDAMENTOS DE BASE DE DATOS
24. • La Provincia depende funcionalmente del código de provincia, lo que hace
que no esté en 3FN. El arreglo sería:
FUNDAMENTOS DE BASE DE DATOS
25. • 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
27. Forma normal de Boyce-Codd (FNBC o BCFN)
Ocurre si una tabla está en tercera forma normal y además todo
determinante es una clave candidata.
Ejemplo:
FUNDAMENTOS DE BASE DE DATOS
28. • La cuestión es que un trabajador o trabajadora puede trabajar en varios
departamentos. En dicho departamento hay varios responsables, pero
cada trabajador sólo tiene asignado uno. El detalle importante que no se
ha tenido en cuenta, es que el o la responsable sólo puede ser
responsable en un departamento.
Este detalle último produce una dependencia funcional ya que:
ResponsableDepartamento
FUNDAMENTOS DE BASE DE DATOS
29. • Por 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 selección de clave. La redundancia del departamento es
completamente evitable. La solución sería:
FUNDAMENTOS DE BASE DE DATOS
Nota: En las formas de
Boyce-Codd hay que
tener cuidado al
descomponer ya que se
podría perder
información por una
mala descomposición
30. Ejercicio de la FNBC
Reglas
• Para 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
31. • Existen dos claves candidatas en esta relación:
(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 DATOS
33. • Dependencias Multivalor: Dada una relación R, se dice que un
atributo R.y es dependiente multivalor (DMV) de un atributo R.x si un
rango específico de valores de y están determinados por el valor
específico 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.y
FUNDAMENTOS DE BASE DE DATOS
34. • Cada curso tiene un conjunto definido de profesores y un conjunto de
textos.
• Los profesores son independientes de los textos
• Un profesor puede dar varios cursos y un texto puede usarse en más
de una materia
FUNDAMENTOS DE BASE DE DATOS
35. • Esta relación especifica que: el curso impartido puede ser dictado por
varios profesores utilizando varios textos; existen dos DMV:
curso -> profesor curso -> texto
FUNDAMENTOS DE BASE DE DATOS
36. • La redundancia de datos causada por la DMV, se puede eliminar
siguiendo uno de los siguientes métodos:
Primero:
• Crear una nueva relación para cada atributo DMV
curso -> profesor curso -> texto
• R1= (curso, profesor);
• R2= (curso, texto);
FUNDAMENTOS DE BASE DE DATOS
37. • Crear una nueva relación por cada atributo DMV:
FUNDAMENTOS DE BASE DE DATOS
38. Segundo
• Reemplazar los atributos DMV con atributos funcionalmente
dependientes DF;
curso (texto1, texto2, texto3)
R3= (curso, texto1, texto2, texto3)
FUNDAMENTOS DE BASE DE DATOS
40. Cuarta Forma Normal
• Una relación se encuentra en Cuarta Forma Normal (4FN) si es BCFN y
no contiene dependencias multivalor.
FUNDAMENTOS DE BASE DE DATOS
42. Si el número de valores repetidos en la DMV es grande:
• Se crea una nueva relación para el atributo DMV y su clave principal
FUNDAMENTOS DE BASE DE DATOS
43. Si el número de valores repetidos del atributo DMV es pequeño y
específico:
• C/u de los valores del atributo DMV se representa como un atributo
dentro del mismo registro:
FUNDAMENTOS DE BASE DE DATOS
45. 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 más enfermeras, y uno o más médicos.
R=(bebé, madre, enfermera, médico)
FUNDAMENTOS DE BASE DE DATOS
46. Normalizado
• R1 = (bebé, madre)
• R2 = (bebé, enfermera, médico)
• No hay DT, y está en FNBC, pero en R2 tenemos las dependencias
multivaloradas:
bebé enfermera
bebé médico
FUNDAMENTOS DE BASE DE DATOS
49. Reemplazar un atributo DMV con atributos funcionales dependientes DF:
• R5 = (bebé, médico1, médico2, médico3)
• R6 = (bebé, enfermera1, enfermera2)
FUNDAMENTOS DE BASE DE DATOS
50. • Ejemplo: El psiquiatra puede
ofrecer tratamiento reembolsable a
los pacientes que sufren de la
condición dada y que son
asegurados por el asegurador dado.
En ausencia de cualquier regla que
restrinja las combinaciones válidas
posibles de psiquiatra, asegurador,
y condición, la tabla de tres
atributos Psiquiatra-para-
Asegurador-para-Condición es
necesaria para modelar la situación
correctamente.
FUNDAMENTOS DE BASE DE DATOS
51. 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
condición C, entonces - en caso que el asegurador P cubra la condición C -
debe ser cierto que el psiquiatra puede ofrecer el tratamiento
reembolsable a los pacientes que sufren de la condición C y están
asegurados por el asegurador P.
• Con estas restricciones es posible dividir la relación en tres partes.
FUNDAMENTOS DE BASE DE DATOS
52. FUNDAMENTOS DE BASE DE DATOS
Notese como esta disposición ayuda a quitar redundancia. Suponga que el Dr. James se
convierte en un proveedor de tratamientos para FriendlyCare. En la disposición anterior
tendríamos que agregar dos nuevas entradas puesto que el Dr. James puede tratar dos
condiciones cubiertas por FriendlyCare: ansiedad y depresión. Con la nueva disposición
necesitamos agregar una sola entrada (en la tabla Psiquiatra-para-Asegurador).
53. Quinta Forma Normal (5FN)
• La quinta forma normal (5FN), también conocida como forma normal
de proyección-unión (PJ/NF), es un nivel de normalización de bases
de datos diseñado para reducir redundancia en las bases de datos
relacionales que guardan hechos multi-valores aislando
semánticamente relaciones múltiples relacionadas. Una tabla se dice
que está en 5NF si y sólo si está en 4NF y cada dependencia de unión
(join) en ella es implicada por las claves candidatas.
FUNDAMENTOS DE BASE DE DATOS