Logo Studenta

Normalização de Relações em Bancos de Dados

¡Este material tiene más páginas!

Vista previa del material en texto

1
Normalización 
2
Formas Normales
Es una restricción aplicada a los atributos de una relación que impide que se 
presenten anomalías indeseables en los datos. 
Propiedades:
 No existen tuplas repetidas
 Las tuplas no están ordenadas (de arriba hacia abajo)
 Los atributos no están ordenados (de izquierda a derecha)
 Todos los valores de los atributos son atómicos.
Observaciones:
Para establecer si una relación esta en forma normal se debe examinar
la DF y por lo tanto una relación se representará con dos componentes:
Los atributos
Las Dependencias Funcionales entre ellos
3
Normalización
Relación 5FN
Relación 4FN
Relación BCNF
Relación 3FN
Relación 2FN
Relación 1FN
Relaciones No Normalizadas
4
Pasos para el proceso de Normalización
Según James Martin:
Forma No Normalizada
1ra. Forma Normal
2da. Forma Normal
3ra. Forma Normal
1. Reducir todas las estructuras de datos que no 
sean bidimensionales a relaciones o 
segmentos bidimensionales.
2. Cada atributo no clave debe tener 
dependencia funcional completa de la clave 
primaria
3. No debe de existir dependencias transitivas 
entre atributos no clave
5
Pasos para el proceso de Normalización
Eliminar dependencias Parciales y/o incompletas:
Eliminar dependencias Transitivas:
A*
B
C
A*
B*
C
D
Convertir a:
A*
B*
C
A*
D
Conversión a 2FN:
Conversión a 3FN:
Convertir a:
A*
B
B*
C
6
Forma No Normalizada
Una relación R esta en la forma no normalizada, si sus atributos se
encuentran en una forma ambigua, sin distinción funcional y con
longitud variable
Ejemplo: En la base de datos ASIGNACIÓN, donde se ha definido la relación
ASIGNACIÓN (Profesor, Curso, Ayudante de Catedra).
Profesor Curso Ayudante Catedra
JOSE PELAEZ SOSA (D001) Introducción IngenierÍa de 
Sistemas (IIAB13)
Redes II (IIAB35)
{OSCAR TORRES (AC015),
LUIS RIQUELME (AC010),
MARIA NARVAES (AC005)}
{OSCAR TORRES(AC015),
VICENTE CHAVEZ(AC011)}
JUANA MENESES CALLE (D002) BASE DE DATOS I (IIAB44) {VICENTE CHAVEZ(AC011),
VERONICA MORA (AC008)}
Esta relacion no está normalizada (FNN) 
Ejemplo: en la F2C3={VICENTE CHAVEZ (AC011), VERONICA MORA(AC008)}
7
Primera Forma Normal (1FN)
Una relación R está en la primera forma normal (1FN) si y sólo si todos los 
valores de atributos simples son atómicos. Es decir que en toda 
intersección de fila (registro) y columna (atributo) existe un único valor.
Ejemplo: Sea la base de datos PEDIDOS, donde se ha denifido la relación
ORDEN_CLIENTE(Cod_Cli, Nom_Cli, Ciudad_Cli, CostoEntregaUnit, Prec_Unit,
Nro_Inv, Cant., Fecha).
Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit Prec_Unit Nro_Inv Cant. Fecha
C1 JUAN AREQUIPA 0.75 8.20 13 1 05/06/2010
C1 JUAN AREQUIPA 0.75 8.20 13 2 12/10/2010
C2 JUANA TACNA 1.95 4.00 12 1 15/05/2010
C2 JUANA TACNA 1.95 8.20 13 1 15/05/2010
C2 JUANA TACNA 1.95 2.00 11 3 15/05/2010
C3 JOSE AREQUIPA 0.75 4.00 12 1 10/08/2010
C3 JOSE AREQUIPA 0.75 2.00 11 2 10/08/2010
C4 RITA ILO 1.05 10.50 14 1 05/05/2010
8
Anomalías en la 1FN
 En la Inserción: No se puede ingresar un nuevo artículo del inventario en la relación
ORDEN_CLIENTE, a menos que el artículo se haya vendido al menos a un CLIENTE.
 En la Eliminación: Si queremos eliminar el Artículo 14 del inventario, el borrado del registro
no sólo quitaría la información del inventario acerca del artículo 14 sino también la
información de la cliente RITA que alguna vez compró un artículo.
 En la Actualización: Si la cliente JUANA se muda de TACNA a AREQUIPA, se tendrá que
modificar cada registro que contenga a JUANA.
Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit Prec_Unit Nro_Inv Cant. Fecha
C1 JUAN AREQUIPA 0.75 8.20 13 1 05/06/2010
C1 JUAN AREQUIPA 0.75 8.20 13 2 12/10/2010
C2 JUANA TACNA 1.95 4.00 12 1 15/05/2010
C2 JUANA TACNA 1.95 8.20 13 1 15/05/2010
C2 JUANA TACNA 1.95 2.00 11 3 15/05/2010
C3 JOSE AREQUIPA 0.75 4.00 12 1 10/08/2010
C3 JOSE AREQUIPA 0.75 2.00 11 2 10/08/2010
C4 RITA ILO 1.05 10.50 14 1 05/05/2010
ORDEN_CLIENTE
9
Segunda Forma Normal (2FN)
Una relación R está en la segunda forma normal (2FN) si y sólo 
si está en la 1FN y cada atributo no clave tiene dependencia 
funcional completa de la clave primaria.
1. Construimos la clave primaria:
Cod_Cli + Nro_Inv + Fecha
2. Construimos el DDF:
Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli
Nro_Inv
Fecha
Cant. Prec_Unit
10
3. Todos los atributos no claves en una relación dividida sean total y funcionalmente 
dependiente de la clave primaria.
Cod_Cli
Nro_Inv
Fecha
Cant.
Relación CLIENTES_ENTREGA
Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli
Relación INVENTARIO
Prec_UnitNro_Inv
Relación ORDEN
11
Cod_Cli Nro_Inv Fecha Cant.
C1 13 05/06/2010 1
C1 13 12/10/2010 2
C2 12 15/05/2010 1
C2 13 15/05/2010 1
C2 11 15/05/2010 3
C3 12 10/08/2010 1
C3 11 10/08/2010 2
C4 14 05/05/2010 1
Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit
C1 JUAN AREQUIPA 0.75
C2 JUANA TACNA 1.95
C3 JOSE AREQUIPA 0.75
C4 RITA ILO 1.05
Nro_Inv Prec_Unit
11 2.00
12 4.00
13 8.20
14 10.50
Relación CLIENTES_ENTREGA
Relación Orden Relación Inventario
12
Anomalías en la 2FN
 En la Inserción: No se puede ingresar un nuevo CostoEntregaUnit para una ciudad en particular, 
hasta que haya al menos un cliente que resida en esa ciudad.
 En la Eliminación: Suponga que la clienta RITA cierra su cuenta y se elimina el registro
correspondiente en la relación CLIENTES_ENTREGA. Como RITA es la única cliente de ILO, la 
eliminación del registro también causará que se quite la información CostoEntregaUnit de S/. 
1.50 para la ciudad de Ilo.
 En la Actualización: En la relación CLIENTES_ENTREGA, JUAN y JOSE son de AREQUIPA. Si se 
cambia de precio de entrega CostoEntregaUnit para AREQUIPA, entonces el precio
CostoEntregaUnit se debe actualizar dos veces en vez de sólo una.
Cod_Cli Nom_Cli Ciudad_Cli CostoEntregaUnit
C1 JUAN AREQUIPA 0.75
C2 JUANA TACNA 1.95
C3 JOSE AREQUIPA 0.75
C4 RITA ILO 1.05
Relación CLIENTES_ENTREGA
13
Tercera Forma Normal (3FN)
Una relación R está en la tercera forma normal (3FN) si y sólo 
si está en la 2FN y no existe dependencias transitivas entre 
atributos no clave.
Sea la relación CLIENTES_ENTREGA
Nomb_Cli, Ciudad_Cli, CostoEntregaUnitCod_Cli
Se eliminan las dependencias transitivas:
Nomb_Cli, Ciudad_Cli
CostoEntregaUnit
Cod_Cli
Ciudad_Cli
Relación CLIENTES:
Relación COSTO_ENTREGA:
14
ILORITAC4
AREQUIPAJOSEC3
TACNAJUANAC2
AREQUIPAJUANC1
Ciudad_CliNom_CliCod_Cli
Relación CLIENTES
1.05ILO
1.95TACNA
0.75AREQUIPA
CostoEntregaUnitCiudad_Cli
Relación COSTO_ENTREGA
1.05ILORITAC4
0.75AREQUIPAJOSEC3
1.95TACNAJUANAC2
0.75AREQUIPAJUANC1
CostoEntregaUnitCiudad_CliNom_CliCod_Cli
Relación CLIENTES_ENTREGA
2FN
15ILORITAC4
AREQUIPAJOSEC3
TACNAJUANAC2
AREQUIPAJUANC1
Ciudad_CliNom_CliCod_Cli
Relación CLIENTES
1.05ILO
1.95TACNA
0.75AREQUIPA
CostoEntregaUnitCiudad_Cli
Relación COSTO_ENTREGA
1
2
1
3
1
1
2
1
Cant.
10/08/201011C3
05/05/201014C4
15/05/201013C2
15/05/201011C2
10/08/201012C3
12
13
13
Nro_Inv
15/05/2010
12/10/2010
05/06/2010
Fecha
C2
C1
C1
Cod_Cli
Resultado de la Normalización
14
13
12
11
Nro_Inv
10.50
8.20
4.00
2.00
Prec_Unit
Relación INVENTARIO
Relación ORDEN
Forma Normal de Boyce – Codd (FNBC)
16
La forma normal de Boyce Codd (FNBC), se basa en la concepción del uso de
la determinante funcional y su soporte está en las claves candidatas de la
relación.
Un determinante funcional es un atributo o conjunto de atributos de una
relación R, del cual depende funcionalmente en forma completa algún otro
atributo de la misma relación.
Una relación R está en FNBC, si y sólo si está en 3FN, y cada dependencia
funcional no trivial tiene una clave candidata como determinante.
Consideraciones para comprobar si una relación se encuentra en FNBC.
• Si en la relación no existe claves candidatas compuestas (varios atributos 
juntos), está en FNBC.
• Si en la relación existe varias claves candidatas compuestas y estás tienen 
un atributoen común, no está en FNBC. 
Forma Normal de Boyce – Codd (FNBC)
17
Ejemplo: se tiene la relación Asignación
donde se tiene las siguientes
dependencias funcionales:
Estudiante, Idioma Profesor
Profesor  Idioma.
En esta relación se plantearía las siguientes claves candidatas [Estudiante, Idioma] y
[Profesor, Idioma]. Cualquiera de las dos claves candidatas se puede elegir como
clave principal.
Si se elige la asociación [Profesor, Idioma] es porque a un profesor se le asigna un
idioma que ha estudiado para que enseñe a los estudiantes y si se elige la
asociación [Estudiante, Idioma] es porque un estudiante elige el idioma que quiere
estudiar.
Forma Normal de Boyce – Codd (FNBC)
18
El primer paso: es elegir la clave principal. Se elige [Profesor, Idioma].
El segundo paso: es identificar el atributo en común en las dos claves
candidatas planteadas para quitarlos y asociar los dos atributos restantes, esto
permitirá no redundar información en la relación. El atributo en común encontrado
es [Idioma], por lo tanto, quedaría la asociación [Estudiante, Profesor].
El resultado de aplicar FNBC a la relación Asignación quedara como se muestra
en la figura. se puede observar que los datos repetidos son eliminados por
restricciones de la clave primaria.
Ejemplo de FNBC
19
Ciudad Calle Código postal
Apurímac Constitución 100 083
Apurímac Perú 1000 083
Apurímac José María Arguedas 30 083
Cusco Constitución 500 085
Ejemplo: se tiene la relación Dirección donde se tiene las siguientes dependencias
funcionales:
Donde se tiene que:
 Una calle en una ciudad tiene un código postal.
 El código postal tiene una estructura tal que su valor determina la ciudad.
 Pero en una ciudad, varias calles pueden tener el mismo código postal.
Calle, Ciudad  Código postal
Código postal  Ciudad.
Ejemplos
NOTA (DNI_P, NOMBRE_P, DNI_A, CALIF)
¿Está en 3FN? ó ¿Está en FNBC?
Supongamos las siguientes dependencias funcionales:
• Supuesto 1: DNI_P  NOMBRE_P; DNI_P, DNI_A  CALIFICACIÓN
• Supuesto 2: NOMBRE_P  DNI_P; DNI_P, DNI_A  CALIFICACIÓN
DNI_P NOMBRE_P
CALIFICACIÓN
DNI_A
DNI_A
CALIFICACIÓN
DNI_P NOMBRE_P
20
Dependencia Multivaluada
Una dependencia multivaluada representa una dependencia
entre atributos (por ejemplo A, B y C) en una relación de modo
que para cada valor de A hay un conjunto de valores de B y un
conjunto de valores de C; Sin embargo, los conjuntos de valores
de B y C son independientes entre si
A B C
A1 B1 C1
A1 B2 C1
A1 B1 C2
A1 B2 C2
A B
21
22
Cuarta Forma Normal (4FN)
Una relación R está en 4FN si y sólo si esta en 3FN o FNBC y no 
posee dependencias multivaluadas no triviales.
COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL
C001 RAUL 
SALAZAR
AV. PERU 1020 983632598 raul@gmail.com
C002 JOSE 
PERES
AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com
C003 MARIA 
ALVAREZ
PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com
983202010 raul@hotmail.com
raul@yahoo.es
CLIENTE RAUL
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
23
Cuarta Forma Normal (4FN)
COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL
C001 RAUL AV. PERU 1020 983632598
983202010
raul@gmail.com
raul@hotmail.com
raul@yahoo.es
C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com
C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com
COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL
C001 RAUL AV. PERU 1020 983632598 raul@gmail.com
C001 RAUL AV. PERU 1020 983202010 raul@hotmail.com
C001 RAUL AV. PERU 1020 983632598 raul@yahoo.es
C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com
C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com
mailto:raul@gmail.com
mailto:raul@gmail.com
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
mailto:raul@gmail.com
mailto:raul@hotmail.com
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
24
COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL
C001 RAUL AV. PERU 1020 983632598 raul@gmail.com
C001 RAUL AV. PERU 1020 983202010 raul@hotmail.com
C001 RAUL AV. PERU 1020 983632598 raul@yahoo.es
C001 RAUL AV. PERU 1020 983202010 raul@gmail.com
C001 RAUL AV. PERU 1020 983632598 raul@hotmail.com
C001 RAUL AV. PERU 1020 983202010 raul@yahoo.es
C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com
C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com
COD_CLIENTE NOMBRE DIRECCIÓN TELEFONO E-MAIL
C001 RAUL AV. PERU 1020 983632598 NULL
C001 RAUL AV. PERU 1020 983202010 NULL
C001 RAUL AV. PERU 1020 NULL raul@gmail.com
C001 RAUL AV. PERU 1020 NULL raul@hotmail.com
C001 RAUL AV. PERU 1020 NULL raul@yahoo.es
C002 JOSE AV. CONSTITUCIÓN 100 983456895 jose@hotmail.com
C003 MARIA PSJE. 2 DE MAYO 122 953689547 maria@yahoo.com
mailto:raul@gmail.com
mailto:raul@hotmail.com
mailto:raul@gmail.com
mailto:raul@gmail.com
mailto:raul@hotmail.com
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
mailto:raul@gmail.com
mailto:raul@hotmail.com
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
25
COD_CLIENTE NOMBRE DIRECCIÓN
C001 RAUL AV. PERU 1020
C002 JOSE AV. CONSTITUCIÓN 100
C003 MARIA PSJE. 2 DE MAYO 122
COD_CLIENTE TELEFONO
C001 983632598
C001 983202010
C002 983456895
C003 953689547
COD_CLIENTE E-MAIL
C001 raul@gmail.com
C001 raul@hotmail.com
C001 raul@yahoo.es
C002 jose@hotmail.com
C003 maria@yahoo.com
COD_CLIENTE NOMBRE, DIRECCIÓN
CLIENTE
TELEFONO E-MAIL
COD_CLIENTE TELEFONO
COD_CLIENTE E-MAIL
mailto:raul@gmail.com
mailto:raul@gmail.com
mailto:raul@gmail.com
mailto:jose@Hotmail.com
mailto:maria@yahoo.com
26
Juguete Precio 
Unitario
Color Tamaño
AUTO 8 AZUL 1
AUTO 8 AZUL 2
AUTO 8 AZUL 3
AUTO 8 AZUL 4
AUTO 8 Rojo 1
AUTO 8 Rojo 2
AUTO 8 Rojo 3
AUTO 8 Rojo 4
CAMION 10 Negro 1
CAMION 10 Negro 2
CAMION 10 Blanco 1
CAMION 10 Blanco 2
CAMION 10 Rojo 1
CAMION 10 Rojo 2
INVENTARIO
El DDF es:
JUGUETE
COLOR
TAMAÑO
Precio Unitario
Ejemplo 2:
27
SOLUCIÓN 1:
 Se crea una nueva relación TAMAÑO : JUGUETE  tamaño
 Se crea una nueva relación INVENTARIO-COLOR:
JUGUETE Precio Unitario
COLOR
 El atributo multivalor COLOR se reemplaza por 3 atributos dependientes: COLOR1, 
COLOR2, COLOR3.
 Se crea una nueva relación INVENTARIO:
JUGUETE  Precio Unitario, Color1, Color2, Color3.
28
SOLUCIÓN 1:
Juguete Precio Unitario Color1 Color2 Color3
AUTO 8 Azul Rojo --------
CAMION 10 Negro Blanco Rojo
INVENTARIO
Juguete Tamaño
AUTO 1
AUTO 2
AUTO 3
AUTO 4
CAMION 1
CAMION 2
TAMAÑO
29
SOLUCIÓN 2:
Se divide en tres relaciones: PRECIO, TAMAÑO Y
COLOR que están en 4FN al eliminarse las DMV:
 Se separan los atributos no clave que no son total
y funcionalmente dependientes de la clave
primaria.
Juguete Precio 
Unitario
AUTO 8
CAMION 10
PRECIO
Juguete Tamaño
AUTO 1
AUTO 2
AUTO 3
AUTO 4
CAMION 1
CAMION 2
TAMAÑO
Juguete Color
AUTO Azul
AUTO Rojo
CAMION Negro
CAMION Blanco
CAMION Rojo
COLOR
Juguete Precio Unitario
Juguete Tamaño
Juguete Color
30
Quinta Forma Normal (5FN)
La Quinta Forma Normal (5FN) se puede considerar como una
extensión de la Cuarta Forma Normal (4FN).
Es raro encontrarse este tipo de problemas cuando la normalización llega
a 4FN. Se deben a restricciones muy concretas.
Persona Conocimientos Proyecto
Emilio Informática Proyecto 1
Emilio Medicina Proyecto 1
Emilio Informática Proyecto 3
Emilio Medicina Proyecto 3
José Francés Proyecto 1
José Economía Proyecto 1
Andrés Infomática Proyecto 1
Andrés Infomática Proyecto 2
PERSONAS
Esta tabla contiene información acerca de una persona, sus conocimientos y el
proyecto donde trabaja. La información no indica necesariamente que la persona
aplique todos sus conocimientos en un proyecto.
31
 Supóngase que la relación PERSONAS en vez de contener información
sobre CONOCIMIENTOS y PROYECTO de una PERSONA, la relación
también contenga información sobre los CONOCIMIENTOS que la
PERSONA aplica en un proyecto dado. Esto quiere decir que un
PROYECTOpueda no requerir todos los CONOCIMIENTOS de una
PERSONA.
Persona Conocimientos Proyecto
Emilio Informática Proyecto 1
Emilio Informática Proyecto 3
Emilio Medicina Proyecto 3
José Francés --------------
José Economía Proyecto 1
Andrés Infomática Proyecto 1
Andrés Infomática Proyecto 2
APLICACIÓN - CONOCIMIENTOS
Esta nueva relacion todavía tiene propiedades indeseables:
 Algunos hechos están encargados 2 veces, por ejemplo Emilio y Andrés poseen el 
conocimiento de Informática.
 Hay campos en blanco, por ejemplo: José tiene el conocimiento de FRANCÉS que no 
está aplicando en ningun proyecto.
Estas propiedades surgen por que la relación APLICACION-CONOCIMIENTOS contiene 
dependencias multivaluadas dependientes (el valor CONOCIMIENTOS que está 
asociado con PROYECTO depende de los conocimientos que el proyecto requiera).
Persona Conocimientos
Emilio Informática
Emilio Medicina
José Francés
José Economía
Andrés Infomática
CONOCIMIENTOS
Persona Proyecto
Emilio Proyecto 1
Emilio Proyecto 3
José Proyecto 1
Andrés Proyecto 1
Andrés Proyecto 2
ASIGNACIONES
Proyecto Conocimientos
Proyecto 1 Informática
Proyecto 1 Economía
Proyecto 2 Informática
Proyecto 3 Informática
Proyecto 3 Francés
CONOCIMIENTOS-NECESARIOS
32

Continuar navegando