Clase III - Formas Normales
Clase III - Formas Normales
Clase III - Formas Normales
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.
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:
Base de Datos 4
PROPIEDADES DE UNA BASE DE DATOS DESPUÉS
DE LA NORMALIZACION
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.
Base de Datos 5
Etapas de Normalización
Base de Datos 6
Definición de la clave
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)
Base de Datos 8
Ejemplo Primera Forma Normal (1FN)
Base de Datos 9
Dependencia Funcional
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 (XY),
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 XY (el Profesor 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 , 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
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
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
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
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).
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)
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.
Base de Datos 22
Cuarta Forma Normal (4FN)
Base de Datos 23
Quinta Forma Normal (5FN)
Base de Datos 24