Vous êtes sur la page 1sur 52

FUNDAMENTOS DE BASE DE DATOS

FUNDAMENTOS DE BASE DE DATOS


Competencia Especfica de la Unidad
Aplicar la normalizacin al diseo de los esquemas de la
base de datos.
Desarrollo de la Unidad

En 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 DATOS


Problemas 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 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 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 DATOS


Prdida
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

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
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 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 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 DATOS


Normalizacin
El 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.

FUNDAMENTOS DE BASE DE DATOS


Formas 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 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 ms de un valor.

FUNDAMENTOS DE BASE DE DATOS


La 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 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 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 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, 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 DATOS


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

FUNDAMENTOS DE BASE DE DATOS


Dependencia 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 DATOS


Por 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 DATOS


Segunda 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


Ejemplo:
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 DATOS


Ejemplo:
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.

FUNDAMENTOS DE BASE DE DATOS


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 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 seleccin de clave. La
redundancia del departamento es completamente evitable.
La solucin sera:
Nota: En las formas
de Boyce-Codd hay
que tener cuidado
al descomponer ya
que se podra
perder informacin
por una mala
descomposicin

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

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 DATOS


Tablas 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.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 ms de una materia

FUNDAMENTOS 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 -> texto

FUNDAMENTOS 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
R1= (curso, profesor);
R2= (curso, texto);

curso -> texto

FUNDAMENTOS DE BASE DE DATOS


Crear 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 DATOS

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


Actividades

FUNDAMENTOS 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 principal

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


Normalizado
R1 = (beb, madre)
R2 = (beb, enfermera, mdico)
No hay DT, y est en FNBC, pero en R2 tenemos las
dependencias multivaloradas:
beb enfermera
beb mdico

FUNDAMENTOS DE BASE DE DATOS

FUNDAMENTOS DE BASE DE DATOS


Procedimientos alternativos
Crear 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-paraCondicines 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
Note como esta disposicin ayuda
restricciones es posible dividir la relacin en tres partes.
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

FUNDAMENTOS DE BASE DE DATOS


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 DATOS