Está en la página 1de 54

Fundamentos de

Base de datos
MIDS. Luis Ramos Baños
Fundamentos de Base de datos

Unidad Temas Subtemas


4 Normalización de 4.1 Conceptos básicos
Base de datos 4.2 Primera forma normal
4.3 Dependencias funcionales y transitivas
4.4 Segunda Forma normal
4.5 Tercera Forma Normal
4.6 Forma normal Boyce-Codd
4.7 Otras Formas normales
Fundamentos de Base de datos

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

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

• 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

• 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

• 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

• 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

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

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

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,
debe de ser atómicos.
Fundamentos de Base de datos
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

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 XY.
• 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

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

• 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

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
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 (XY), Z depende funcionalmente de Y (YZ).
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

• Por ejemplo si X es el atributo Número de Clase de un instituto, e Y es el


atributo Código Tutor. Entonces XY (el tutor depende funcionalmente del
número de clase). Si Z representa el Código del departamento, entonces
YZ (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
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
• 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
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)
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.
FUNDAMENTOS DE BASE DE DATOS
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
• 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
• 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
• Solución:
FUNDAMENTOS DE BASE DE DATOS
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

• 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:
ResponsableDepartamento
FUNDAMENTOS DE BASE DE DATOS
• 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:

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
FUNDAMENTOS DE BASE DE DATOS
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
• 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

• Tablas resultantes:
FUNDAMENTOS DE BASE DE DATOS
• 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

• 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

• 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
• 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
• Crear una nueva relación 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 DATOS
FUNDAMENTOS DE BASE DE DATOS

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
• Actividades
FUNDAMENTOS DE BASE DE DATOS
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
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
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 más enfermeras, y uno o más médicos.

R=(bebé, madre, enfermera, médico)


FUNDAMENTOS DE BASE DE DATOS
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
FUNDAMENTOS DE BASE DE DATOS

Procedimientos alternativos
• Crear una nueva relación por cada atributo DMV:
FUNDAMENTOS DE BASE DE DATOS
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
• 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
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

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).
Fundamentos de Base de datos

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

También podría gustarte