La normalización es un proceso para mejorar el diseño de bases de datos eliminando anomalías como la redundancia y inconsistencias de datos. Se basa en identificar dependencias funcionales en los esquemas de relación para descomponerlos en tablas más pequeñas y específicas. Esto sigue una serie de Formas Normales como la 1FN, 2FN y 3FN para garantizar que cada tabla represente un solo hecho y evite anomalías al modificar, insertar o eliminar datos.
2. Introducción
• La principal ventaja del modelo relacional
frente a otros modelos de datos, como el de
red o el jerárquico, es la existencia de un
cuerpo teórico-formal en el que basar el
proceso de diseño de bases de datos, de
modo que pueda dejar de ser una especie de
“arte”, cuyo resultado depende
fundamentalmente de la habilidad del
diseñador para convertirse en un proceso
metódico.
3. ANOMALIAS DE MANEJO
• Puede definirse el problema del diseño de las
bases de datos relacionales como el de escoger,
de entre una serie de posibilidades, un conjunto
de esquemas de relación “buenos” para
representar información del mundo real.
• ¿ Qué se entiende por un “buen” esquema de
relación ?
– Básicamente, uno que está libre de redundancia y de
anomalías de manejo.
4. ANOMALIAS DE MANEJO
• Consideremos un esquema de relación:
– PIEZAS ( PIEZA , PROVEEDOR , CANTIDAD )
• donde CANTIDAD indica la cantidad de una
determinada pieza en almacén.
• Supondremos que una misma pieza puede ser
suministrada por varios proveedores, y que un
proveedor puede suministrar varias piezas.
6. ANOMALIAS DE MANEJO
• Fácilmente se observa lo siguiente:
– La cantidad de una determinada pieza aparece repetida tantas
veces como proveedores la suministran ( redundancia ).
– Al cambiar la cantidad almacenada de una determinada pieza, el
valor debe alterarse en todas las tuplas correspondientes a
dicha pieza ( anomalía de modificación ).
– Si se borra el último proveedor de una pieza, se pierde la
cantidad de dicha pieza en almacén, a menos que se admitan
valores nulos ( anomalía de borrado ).
– Solamente puede almacenarse la cantidad en almacén de una
determinada pieza, cuando exista al menos un proveedor
conocido para dicha pieza, a menos que se admitan valores
nulos ( anomalía de inserción ).
7. FORMAS NORMALES
• Para caracterizar esquemas de relación
desprovistos de determinados tipos de
anomalías, se han definido las llamadas
“formas normales”.
• Un esquema de relación está en una
determinada forma normal cuando cumple
ciertas condiciones que garantizan
determinadas propiedades deseables del
esquema.
8. 1ra FORMA NORMAL ( Codd, 1970)
• Podríamos considerar la posibilidad de
sustituir el esquema de relación PIEZAS por
otro:
– PIEZAS2( PIEZA , PROVEEDORES , CANTIDAD )
• en el cual, el atributo PROVEEDORES toma como valor
el conjunto de proveedores de cada pieza.
10. 1ra FORMA NORMAL ( Codd, 1970)
• Un esquema de relación, alguno de cuyos
atributos toma como valores conjuntos de
valores más elementales , se dice que está “no
normalizado”.
• En caso contrario, es decir, si el dominio asociado
a cada atributo contiene únicamente valores
atómicos ( simples o compuestos ), entonces se
dice que el esquema está en primera forma
normal ( 1 FN ), o simplemente normalizado.
11. 1ra FORMA NORMAL ( Codd, 1970)
• Definición: está en 1FN si
– Todo valor en es atómico
• no contiene grupos de repetición
• Consideraciones
– La 1FN no permite
• Atributos multivalorados
• Atributos compuestos
• Combinaciones de estos
12. Métodos para corregir el problema
(1FN)
• Método 1
– Generar una nueva relación conteniendo el grupo
de repetición y la llave primaria de la relación
original
– Determinar una llave primaria de la nueva relación
– Abordaje más genérico y no causa redundancia
13. Métodos para corregir el problema
(1FN)
• Método 2
– Eliminar el grupo de repetición
– Expandir la llave primaria
– Abordaje que causa redundancia
14. Métodos para corregir el problema
(1FN)
• Método 3
– Sustituir el grupo de repetición por un numero
máximo de valores establecidos para el grupo
– Abordaje menos genérica y que puede introducir
muchos valores nulos (null)
15. Métodos para corregir el problema
(1FN)
• Ejemplo
– Cliente(nro-cli, nombre, {dir_entrega})
Nro-cli Nombre Dir_entrega
124 Juan Pérez Calle 10, 1024
Calle 24, 1356
311 José Nieves Calle 46, 1344
Calle 98, 4456
16. Métodos para corregir el problema
(1FN)
• Solución al problema
– Método 1
• Cliente_nombre(nro-cli, nombre)
• Cliente_entrega(nro-cli, calle, numero)
– Método 2
• Cliente(nro-cli, nombre, calle, numero)
– Método 3
• Cliente(nro-cli, nombre, calle1, numero1, calle2,
numero2)
18. Descomposición de Esquemas
• Las anomalías existentes en el esquema
PIEZAS se deben, básicamente, al hecho de
haber utilizado un único esquema de relación
para representar dos “hechos semánticos”
distintos, a saber:
– La relación entre proveedores y piezas
suministradas por lo mismos, y
– El hecho de que exista una cierta cantidad de cada
pieza en almacén.
21. Descomposición de Esquemas
• Podemos observar que:
– Se han eliminado la redundancia y las anomalías
de manejo existentes en el esquema original.
– En la segunda base de datos hemos separado en
esquemas de relación distintos los diferentes
hechos semánticos a representar.
– Podemos obtener la relación original mediante la
unión (join) natural de las dos proyecciones del
segundo esquema.
22. Descomposición de Esquemas
• Este último punto es muy importante. Cuando ocurre
esto, es decir, cuando un esquema de relación puede
descomponerse en proyecciones , a partir de las
cuales es posible recuperar el esquema original por
medio de la unión natural, se dice que el esquema es
descomponible , o que existe una descomposición
sin pérdidas de dicho esquema.
• El concepto de descomposición sin pérdidas es
fundamental en la teoría de diseño de bases de
datos relacionales.
23. Dependencias Funcionales (DF)
• Es una restricción entre dos subconjuntos de
atributos A y B de , siendo la notación A→B
• Especifica una restricción de las posibles tuplas R( ):
– Si ti[A] = tj [A] entonces ti [B] = tj [B] para cualquier i,j
• En este caso se dice que A determina funcionalmente
a B (o alternativamente, B depende funcionalmente
de A)
• Ejemplo: Pieza → Cantidad
24. Notación Diagramática para DF
Nro-cliente Nombre Dirección
Nro-pedido Nro-pieza Cantidad_comprada Precio_contado
Nro-cliente Nombre Dirección Cod_vend Nombre_vend
25. Dependencia Funcional
• Control de Consistencia
– Es necesario conocer todas las dependencias
funcionales – información semántica provistas por
el diseñador
– Algunas dependencias funcionales (DFs) pueden
ser inferidas a partir de DFs existentes => reglas de
inferencia
26. Dependencia Funcional
• Reglas de inferencia de DFs
– Reflexiva: si (DF Trivial)
– Aumentativa: Si
– Descomposición: Si
– Aditiva: si
– Transitiva: si
– Pseudo-transitiva: si
– Observación: AB representa {A,B}
27. Definiciones
• Dados los conjuntos de atributos X e Y, y un
atributo A Є X:
– X → Y, es una dependencia funcional parcial si
– X → Y, es una dependencia funcional total si
– X → Y, es una dependencia funcional trivial si
28. Definiciones
• Dados los conjuntos de atributos X e Y, y un
atributo A Є X:
– X → Y, es una dependencia funcional transitiva si
existe X → Z y Z → Y, y Z no es parte de la llave
primaria.
– Atributo principal, primario o primo.- Atributo
que forma parte de alguna clave candidata en
29. 2da Forma Normal (2FN)
• Definición.- Un esquema de relación está
en 2FN si todo atributo no primario A en
tiene dependencia funcional total de la clave
primaria de
– 1FN
– X → A es una dependencia funcional total si
(X – {B}) no determina funcionalmente A para
cualquier atributo B Є X
30. 2da Forma Normal (2FN)
• “Prueba para 2FN”: verificar si los atributos del
lado izquierdo de las DFs forman parte de la clave
primaria.Ejemplo
• Pedido(nro-pedido, fecha, nro-pieza, descripción,
cantidad-comprada, precio-contado)
– nro-pedido → fecha
– nro-pieza → descripción
– {nro-pedido,nro-pieza} → {cantidad-comprada,
precio-contado}
31. 2da Forma Normal (2FN)
• Para corregir el problema:
– Para cada subconjunto del conjunto de atributos
que constituye una clave primaria, generar una
relación con ese subconjunto como su clave
primaria
– Incluir los atributos de la relación original en la
relación correspondiente a la clave primaria
apropiada
• Colocar cada atributo junto con una colección mínima
de la cual depende, atribuyendo un nombre a cada
relación.
32. 2da Forma Normal (2FN)
• Tomando el ejemplo anterior
– Pedido(nro-pedido, fecha, nro-pieza, descripción,
cantidad-comprada, precio-contado)
• Pedido(nro-pedido, fecha)
• Pieza(nro-pieza, descripción)
• Pedido_pieza(nro-pedido, nro-pieza, cantidad-
comprada, precio-contado)
33. 2da Forma Normal (2FN)
• La 2FN evita:
– Inconsistencias y anomalías causadas por
redundancia de información
– Pérdida de información en operaciones de
eliminación y modificación en la relación
34. 3ra Forma Normal (3FN)
• Definición. está en 3FN si
– Está en 2FN
– Ningún atributo no primario de fuera
transitivamente dependiente de la clave primaria
• Dependencia Transitiva
– Dependencia transitiva X→Y en sucede si:
• X→Z y Z→Y , y
• Z no es clave candidata ni subconjunto de cualquier
clave de
35. 3ra Forma Normal (3FN)
• En otras palabras, todos los atributos no
primarios deben poseer dependencia total, no
transitiva, de la clave primaria
• Si X→Y es no transitiva, entonces no puede
haber el conjunto de DFs: X→Z y Z→Y
• Ejemplo:
– Cliente(nro-cliente, nombre-cliente, direcc-cliente,
nro-vendedor, nombre-vendedor)
• Nro-vendedor → nombre-vendedor
36. 3ra Forma Normal (3FN)
• Corrigiendo el problema
– Para cada determinante que no es una clave
candidata, remover de la relación los atributos
que dependen de ese determinante
– Crear una nueva relación conteniendo todos los
atributos de la relación original que dependen de
ese determinante
– Volver al determinante, clave primaria de la nueva
relación
38. 3ra Forma Normal (3FN)
• Así como la 2FN, la 3FN evita:
– Inconsistencias y anomalías causadas por
redundancia de información
– Pérdida de información en operaciones de
eliminación y modificación en la relación
39. 3ra Forma Normal (3FN)
• Así como la 2FN, la 3FN evita:
– Inconsistencias y anomalías causadas por
redundancia de información
– Pérdida de información en operaciones de
eliminación y modificación en la relación
40. Normalización
• Como hemos visto, la normalización de
relaciones:
– Está basada en DFs
– Garantiza consistencia en la construcción del
sistema
• Reducción de anomalías
• Reducción de redundancias
41. Normalización
• Formas Normales
– 1FN: el dominio de los atributos es atómico
– FNs basadas en DFs:
• Basadas en la clave primaria: 2FN, 3FN
• Basadas en claves candidatas: FN de Boyce-Codd (FNBC o en
inglés BCNF)
– FN basada en dependencias multivaloradas
• 4FN
• 5FN: generaliza dependencias multivaloradas, también
denominada forma normal de reunión por proyección
(FNRP)
42. Normalización
¿Preguntas?
Ing. Gustavo Delgado Ugarte