Clase III - Formas Normales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

Base de Datos

Clase III – Formas Normales


Analista en Sistemas
Instituto superior Juan XXIII
Prof. Ingeniero Dimatz, Rafael

Base de Datos 1
Introducción

 Una base de datos tiene que ser diseñada antes de que pueda ser
creada y usada. El diseño debe ajustarse a estándares que
permitan ahorro de memoria, acceso rápido, fácil mantenimiento,
portabilidad, facilidad de futuros mejoramientos, buen desempeño y
eficiencia de costos, entre otros. El diseño lógico final de una base
de datos debe ser tal que equilibre un desempeño óptimo junto con
la integridad de la información. Esto puede ser logrado a través de
un proceso conocido como Normalización. La base de datos debe
estar en un estado de "Forma completamente normalizada".

Base de Datos 2
Normalizar
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, o sea, la quinta forma normal cumple todas las anteriores.

La teoría de formas normales es una teoría absolutamente matemática, pero


en el presente manual se describen de forma intuitiva.

Base de Datos 3
Problemas del Esquema Relacional
Debido a fallos en el diseño o a problemas indetectables, se puede producir una
base de datos con estos problemas:

 Redundancia. Se llama así a los datos que se repiten continua e innecesariamente


por las tablas de las bases de datos.

 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.

 Pérdida de restricciones de integridad. Normalmente debido a dependencias


funcionales. 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.

Base de Datos 4
PROPIEDADES DE UNA BASE DE DATOS DESPUÉS
DE LA NORMALIZACION

 Una base de datos normalizada debe representar las siguientes


propiedades:

 Los requerimientos para almacenamiento de datos se minimizan, dado que


el proceso de normalización sistemáticamente elimina la duplicación de los
datos.

 Desde que los datos son almacenados en el mínimo número de lugares, las
posibilidades de inconsistencias en la información son reducidas al mínimo.

 Las estructuras normalizadas son óptimas para efectuar actualizaciones de


los datos. Dado que los datos existen en el mínimo número de lugares, una
operación de actualización (UPDATE) necesitará acceder a una mínima
cantidad de datos.

Base de Datos 5
Etapas de Normalización

Base de Datos 6
Definición de la clave

 Antes de proceder a la normalización de la tabla lo primero que debemos de definir


es una clave, deberá contener un valor único para cada registro (no podrán existir
dos valores iguales en toda la tabla) y podrá estar formado por un único campo o por
un grupo de campos.

 En la tabla de alumnos no podemos definir como campo clave el nombre del alumno
ya que pueden existir varios alumnos con el mismo nombre. Podríamos considerar la
posibilidad de definir como clave los campos nombre y apellidos, pero estamos en la
misma situación: podría darse el caso de alumnos que tuvieran los mismo apellidos y
el mismo nombre (Juan Fernández Martín).
La solución en este caso es asignar un código de alumno a cada uno, un número
que identifique al alumno y que estemos seguros que es único.

 Una vez definida la clave podremos pasar a estudiar la primera forma normal.

Base de Datos 7
Primera Forma Normal (1FN)

 Una tabla se encuentra en 1FN si impide que un atributo de una tupla


pueda tomar más de un valor.

 No Cumple 1FN (El atributo Teléfono no es Atómico)

Base de Datos 8
Ejemplo Primera Forma Normal (1FN)

Resolución a Primera Forma Normal (1FN)

Base de Datos 9
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.

Base de Datos 10
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.
 Una dependencia funcional completa se denota como X =>Y
 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 completa 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.
 Dependencia funcional elemental: Cuando X e Y forman una
dependencia funcional completa y además Y es un único atributo.

Base de Datos 11
Dependencia Funcional Transitiva
 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 X produce una
dependencia funcional transitiva sobre Z.
 Esto se denota como: (X ─ Z)
 Por ejemplo: si X es el Nro. de Clase de un instituto, e Y es el
Código Tutor. Entonces XY (el Profesor 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 , 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).

Base de Datos 12
Segunda Forma Normal (2FN)
Tabla en 2FN: Si, está en 1FN y cada atributo que no sea clave, depende de forma funcional
completa respecto de cualquiera de las claves.
Toda 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.
Biblioteca
Cod_Libro Titulo Nomb_Autor Cod_Lector Nomb_Lector
10002 Fisica I Vazquez 2596 Carlos
10003 Calculo II Miller 4853 Juana
10004 Economia Casas 5420 Angela

Cod_Libro Titulo Nomb_Autor Cod_Lector Nomb_Lector


10002 Fisica I Vazquez 2596 Carlos
10003 Calculo II Miller 4853 Juana
10004 Contabilidad Lino 2253 Pablo
10005 Economia Casas 5420 Angela

El nombre del lector no esta en dependencia funcional con el código del libro, por lo que
debemos separar las tablas para que cumpla la 2FN

Faltaria agregar en Lector C_LIBRO, asi queda de forma Relacional

Base de Datos 13
Tercera Forma Normal (3FN)
Tabla en 3FN si, 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.

Empleado
Cod_Actividad Nomb_Actividad Nomb_Encargado
B250 Limpieza Carlos Lopez
B251 Cocina Mario Soto
B252 Atencion Luis Ramirez

Cod_Actividad Nomb_Actividad Nomb_Actividad Nomb_Encargado


B250 Limpieza Limpieza Carlos Lopez
B251 Cocina Cocina Mario Soto
B252 Atencion Atencion Luis Ramirez

Se observa que el nombre de la Actividad determina al encargado de esta por lo que sufre
una dependencia transitiva y es necesario separar la tabla para convertirla en 3FN

Base de Datos 14
Tercera Forma Normal (3FN)
Resolver el Siguiente Ejemplo
Nomb_Empleado Tipo_Ocupacion Lugar_Trabajo
Javier Ingeniero San Miguel
Alex Portero Miraflores
Karen Contadora Lince
Isabel Secretaria San Borja

Nomb_Empleado Tipo_Ocupacion Nomb_Empleado Lugar_Trabajo


Javier Ingeniero Javier San Miguel
Alex Portero Alex Miraflores
Karen Contadora Karen Lince
Isabel Secretaria Isabel San Borja

El lugar de trabajo solo depende de la clave N_Empleado, por lo tanto no esta en dependencia
funcional con la clave primaria, por lo cual debemos separar la tabla para que cumpla la 3FN

Base de Datos 15
Resumen 1FN – 2FN – 3FN
 Primera Forma Normal (1FN) Incluye la eliminación de todos los
grupos repetidos.

 Segunda Forma Normal (2FN) Asegura que todas las columnas que
no son llave sean completamente dependientes de la llave primaria
(PK).

 Tercera Forma Normal (3FN) Elimina cualquier dependencia


transitiva. Una dependencia transitiva es aquella en la cual las
columnas que no son llave son dependientes de otras columnas
que tampoco son llave.

Base de Datos 16
Resumen Ejemplo
 El Cliente tiene 2 direcciones

Base de Datos 17
Resumen Ejemplo
 Desglozo el registro

Base de Datos 18
Resumen Ejemplo
 Apellido y Nombre dependen del NIF

Base de Datos 19
Resumen Ejemplo
 Dada la tabla cliente, entre los atributos provincia y prefijo telefónico
hay una dependencia funcional transitiva, el primero permite
conocer el valor del segundo.

 Se debe crear una nueva tabla con los atributos que tienen esa
dependencia, eliminándose el atributo dependiente de la tabla
original

Base de Datos 20
Resumen Ejemplo

Base de Datos 21
Forma Normal de Boyce-Codd (FNBC)

Es una versión ligeramente más fuerte de la Tercera Forma


Normal (3FN). La forma normal de Boyce-Codd requiere que no
existan dependencias funcionales no triviales de los atributos que
no sean un conjunto de la clave candidata. En una tabla en 3FN,
todos los atributos dependen de una clave, de la clave completa y
de ninguna otra cosa excepto de la clave (excluyendo
dependencias triviales).

Se dice que una tabla está en FNBC si y solo si está en 3FN y cada
dependencia funcional no trivial tiene una clave candidata como
determinante.

En términos menos formales, una tabla está en FNBC si está en


3FN y los únicos determinantes son claves candidatas.

Base de Datos 22
Cuarta Forma Normal (4FN)

 Una tabla está en 4FN si y solo si, está en 3FN y no posee


dependencias multivaluadas no triviales. La 4FN confía en la noción
de una dependencia multivaluada. Una tabla con una Dependencia
Multivaluada es una donde la existencia de 2 o más relaciones
independientes de muchos a muchos causa redundancia. La 4FN
elimina esta redundancia.

 Un teorema de Fagin indica cuando hay tres pares de conjuntos de


atributos X, Y y Z si ocurre X->>Y y X->>Z (Y y Z tienen
dependencia multivaluada sobre X), entonces las tablas X, Y y X, Z
reproducen sin perder información lo que poseía la tabla original.
Este teorema marca la forma de dividir las tablas hacia una 4FN

Base de Datos 23
Quinta Forma Normal (5FN)

 La Quinta Forma Normal (5FN) trata con casos donde la


información puede ser reconstruida de muchas piezas de
información las cuales pueden ser mantenidas con poca
redundancia. La Segunda, Tercera y Cuarta Formas Normales
también sirven a este propósito pero la Quinta Forma Normal
generaliza los casos no cubiertos por ellas.

 No entraremos en detalle, pero si es interesante saber la definición


y para que se normaliza en la 5FN

Base de Datos 24

También podría gustarte