Está en la página 1de 23

Fundamentos de Bases de Datos IF - 4100

Normalizacin y Dependencias Funcionales

Agenda

Por qu Normalizamos? Mejorando el Modelo Relacional Pautas Informales para Diseo de Calidad en Esquemas de Tablas o Relaciones Normalizacin 1 FN 2 FN 3 FN FNBC

Por qu Normalizamos?
1.

2.

3. 4.

Transformar datos complejos en estructuras de datos pequeas, simples, estables y de fcil mantenimiento. Disminucin de problemas de lgica sobre los datos (sum, average, count, union, etc). Facilidad de entendimiento al simplificar las estructuras. Optimizacin del uso de espacio de almacenamiento, al eliminar la redundancia innecesaria.

Mejorando el MR
Cul agrupacin de atributos es mejor? Cmo puedo mejorar mi modelo relacional? Hay 2 niveles de mejoramiento del MR:
Lgico o Conceptual Implementacin o Almacenamiento

Tabla 1 Atributo 1 Atributo 2

Tupla 1

Tabla 2 Atributo 1 Atributo 2

Tupla 2

Mejorando el MR
2 enfoques para diseo de BD:
Tabla3 Tabla1 Tabla3

Tabla1

Tabla2 Ascendente Relaciones entre atributos individuales para generar nuevas tablas Descendente Anlisis de agrupaciones de atributos en tablas y lograr descomponer en mas tablas o relaciones

Tabla2

Pautas informales para diseo de calidad en esquemas de relacin o tablas


1. Semntica de los Atributos:
Los atributos deben expresar el significado de la tabla (relacin) Debe disear una tabla que sea fcil de explicar su significado

No combinar atributos de varias entidades y relaciones (semntica confusa)

2.

Informacin redundante en tuplas y anomalas de actualizacin:


Minimizar el espacio de almacenamiento Anomalas de actualizacin en tablas con atributos de varias entidades:
Anomalas de insercin Anomalas de eliminacin Anomalas de modificacin

Hay que disear tablas o relaciones sin anomalas de actualizacin Si se ocupa redundancia mejor usar vistas para reunir atributos de entidades o relaciones

Pautas informales para diseo de calidad en esquemas de relacin o tablas


3. Valores nulos en las tuplas:
Problemas de REUNION y de SUM y COUNT Dificulta entendimiento del significado de los atributos Evitar poner atributos con valores nulos en las tablas, y si se dan que sean casos excepcionales.

4.

Generacin de tuplas espurias (sucias):


Informacin espuria es informacin errnea Realizar tablas relacionadas mediante llaves primarias y/o forneas para evitar tuplas espurias

Ejemplo de Tabla
AUTOR Date, C. Date, C. Date, C. Codd,E. Gardarin Gardarin Valduriez Kim,W. Lochovsky NACIONALIDAD Norteamericana Norteamericana Norteamericana Norteamericana Francesa Francesa Francesa Norteamericana Canadiense COD_LIBRO 98987 97777 98987 7890 12345 67890 67890 11223 11223 TITULO Database SQL Stan Guide for Relational Basi Dati Comp BD Comp BD BD OO BD OO EDITORIAL Addison Addison, W. Addison, W. Addison,W. Paraninfo Eyrolles Eyrolles ACM ACM AO 1990 1986 1988 1990 1986 1984 1984 1989 1989

1. La tabla almacena datos de libros y autores 2. Existe alta redundancia 3. Anomalas de modificacin 4. Anomalas de insercin 5. Anomalas de borrado

Hechos distintos, deben almacenarse en objetos distintos

Normalizacin
Basada en CP y CC as como las DF Codd 1972 dice que normalizar es poner en prueba un esquema de relacin o tabla para verificar su estado normal
N O R M A L I Z A C I O N

Tabla1.1

Tabla1

Tabla1.2

1 FN 2 FN 3 FN FNBC 4 FN 5 FN

Lgica Relacional Dependencias Funcionales Dependencias Multivaluadas

Dependencias de Reunin

Qu logra la Normalizacin?
Minimizar redundancias (ahorra espacio de almacenamiento) Minimizar anomalas de insercin, eliminacin y actualizacin Penaliza las consultas al disminuir la eficiencia (mayor nmero relaciones o tablas)

Normalizacin 1 FN
Qu es la 1 FN?
Prohbe atributos multivaluados y compuestos o su combinacin Cada dominio de atributo debe solo poseer valores atmicos e indivisibles La 1 FN elimina los grupos repetidos (VALORES repetitivos)

EJEMPLO

Normalizacin 1 FN
PEDIDO
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA NUM_ITEM DESC_ITEM CANT PRECIO

2301 2301 2301 2302 2303 2303

01/10/2012 01/10/2012 01/10/2012 05/10/2012 10/10/2012 10/10/2012

101 101 101 107 110 110

ERNESTO CRUZ ERNESTO CRUZ ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO CARLOS SOLANO

ALAJUELA ALAJUELA ALAJUELA HEREDIA SAN JOSE SAN JOSE

3786 4011 9132 5794 4011 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2 3 1 4 2 6

$90 $60 $55 $80 $40 $60

1. 2. 3.

Cul es para usted la PK ? Hay atributos multivaluados o compuestos ? Se evidencian grupos repetitivos para {NUM_ITEM, DESC_ITEM, CANT, PRECIO}

Normalizacin 1 FN
PEDIDO
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA NUM_ITEM DESC_ITEM CANT PRECIO

2301 2301 2301 2302 2303 2303

01/10/2012 01/10/2012 01/10/2012 05/10/2012 10/10/2012 10/10/2012

101 101 101 107 110 110

ERNESTO CRUZ ERNESTO CRUZ ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO CARLOS SOLANO

ALAJUELA ALAJUELA ALAJUELA HEREDIA SAN JOSE SAN JOSE

3786 4011 9132 5794 4011 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2 3 1 4 2 6

$90 $60 $55 $80 $40 $60

Grupos con Valores Repetidos

Normalizacin 1 FN
Solucin:
1. Crear una tabla o relacin para eliminar los grupos repetidos ORDEN
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

2301 2302 2303

01/10/2012 05/10/2012 10/10/2012

101 107 110

ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO

ALAJUELA HEREDIA SAN JOSE

2. Crear una tabla o relacin para los campos repetitivos + PK de la tabla origen ITEM_ORDEN
ID_ORDEN NUM_ITEM DESC_ITEM CANT PRECIO

2301 2301 2301 2302 2303 2303

3786 4011 9132 5794 4011 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2 3 1 4 2 6

$90 $60 $55 $80 $40 $60

Normalizacin 1 FN
Problemas de Actualizacin:
ORDEN
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

2301

01/10/2012

101

ERNESTO CRUZ

ALAJUELA

1. Insercin de un cliente implica a fuerza ingresar una orden. 2. Eliminar una orden podra eliminar datos del cliente nicos.

2302
2303

05/10/2012
10/10/2012

107
110

LUIS ANGEL SEGURA


CARLOS SOLANO

HEREDIA
SAN JOSE

ITEM_ORDEN
ID_ORDEN NUM_ITEM DESC_ITEM CANT PRECIO

2301
2301 2301 2302 2303 2303

3786
4011 9132 5794 4011 3141

PION X10
CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2
3 1 4 2 6

$90
$60 $55 $80 $40 $60

3. Para cada tem se repite su nombre, de necesitarse cambiar el nombre se debe hacer muchas actualizaciones.

Solucin = 2 FN

Normalizacin 2 FN
Qu es la 2 FN?
Una tabla est 2 FN si est en 1 FN. Todas las dependencias parciales deben eliminarse. O sea todo atributo que NO forma parte de ninguna llave (NO primos), DEBE ser determinado por la llave primaria COMPLETA. La Dependencia Funcional esta relacionada con la semntica o significado del dato en la relacin. Una tabla con un nico atributo como llave primaria est en 2 FN. Dicho de otra manera, cuando hay relaciones o tablas con llaves primarias compuestas (mltiples atributos) se debe revisar la 2 FN.

EJEMPLO

Normalizacin 2 FN
ORDEN
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

2301 2302 2303

01/10/2012 05/10/2012 10/10/2012

101 107 110

ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO

ALAJUELA HEREDIA SAN JOSE

1. ORDEN est en 2 FN porque slo tiene un atributo para PK. Aun as, vemos semntica confusa con ID_CLIENTE, solucin, la 3 FN.

ITEM_ORDEN
ID_ORDEN NUM_ITEM DESC_ITEM CANT PRECIO

2301 2301 2301 2302 2303 2303

3786 4011 9132 5794 4011 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2 3 1 4 2 6

$90 $60 $55 $80 $40 $60

2. Analizando la tabla ITEM_ORDEN, vemos una llave primaria compuesta (ID_ORDEN + NUM_ITEM) y vemos que CANT es dependiente slo de ID_ORDEN, y DESC_ITEM y PRECIO son determinados por NUM_ITEM solamente.

Cul es la Solucin?

Normalizacin 2 FN
ITEM_ORDEN
ID_ORDEN NUM_ITEM DESC_ITEM CANT PRECIO

2301 2301 2301 2302 2303 2303

3786 4011 9132 5794 4011 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN CADENA SHIMANO FIBRAS COOL STOP

2 3 1 4 2 6

$90 $60 $55 $80 $40 $60

1. Determinar cuales columnas que no son llave o son NO PRIMOS no dependen de la llave primaria completa. 2. Eliminar esas columnas de la tabla base y crear una segunda tabla o relacin con esas columnas y la(s) columna(s) de la PK de la cual dependen.

ITEM_ORDEN
ID_ORDEN NUM_ITEM CANT

ITEM
NUM_ITEM DESC_ITEM PRECIO

2301 2301 2301 2302 2303 2303

3786 4011 9132 5794 4011 3141

2 3 1 4 2 6

3786 4011 9132 5794 3141

PION X10 CADENA SHIMANO PASADOR 9V LLANTAS 2.10 LARSEN FIBRAS COOL STOP

$45 $20 $55 $20 $10

Normalizacin 3 FN
Qu es la 3 FN?
Una tabla esta 3 FN si esta en 2 FN. Todos los atributos NO PRIMOS son determinados completamente por la llave primaria, y no por ningn otro atributo NO PRIMO (regla de transitividad).

EJEMPLO

Normalizacin 3 FN
ORDEN
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

2301 2302 2303

01/10/2012 05/10/2012 10/10/2012

101 107 110

ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO

ALAJUELA HEREDIA SAN JOSE

1.

Vemos que en la tabla o relacin ORDEN aunque todos los valores de columnas son determinados por la nica PK. El campo NOMBRE_CLIENTE y PROVINCIA son adems determinados a travs del camp ID_CLIENTE (dependencia transitiva) ya que ID_CLIENTE es NO PRIMO y determinante a la vez.

Cul es la Solucin?

Normalizacin 3 FN
ORDEN
ID_ORDEN FECHA ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

2301 2302 2303

01/10/2012 05/10/2012 10/10/2012

101 107 110

ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO

ALAJUELA HEREDIA SAN JOSE

ORDEN
ID_ORDEN FECHA ID_CLIENTE

101 107 110

2301 2302 2303

01/10/2012 05/10/2012 10/10/2012

Tomaremos las columnas NO PRIMAS o no llaves y las moveremos a otra tabla o relacin, as tambin llevaremos la columna llave (determinante transitivo) de la cual son dependientes.

CLIENTE
ID_CLIENTE NOMBRE_CLIENTE PROVINCIA

101 107 110

ERNESTO CRUZ LUIS ANGEL SEGURA CARLOS SOLANO

ALAJUELA HEREDIA SAN JOSE

Normalizacin FNBC
Qu es la FNBC?
Es una extensin de la 3 FN. Vista como la 3 FN ms estricta. Toda tabla en FNBC est en 3 FN pero toda tabla en 3 FN no necesariamente est en FNBC. Una tabla o relacin esta en FNBC si presenta las siguientes caractersticas:
La relacin o tabla tiene varias llaves candidatas. 2. Estas llaves candidatas son compuestas (con 2 o ms atributos que las componen). 3. Esas claves candidatas se solapan (o sea, tienen al menos un atributo en comn).
1.

Si una tabla no tiene las tres condiciones anteriores, su estado es el de 3 FN y no es necesaria la evaluacin de FNBC.

EJEMPLO

Normalizacin FNBC
MATRICULA
NOMBRE_ALUMNO NUM_EXPEDIENTE COD_ASIGNATURA CALIFICACION

Jareth Rivera Jorge Ziga Jareth Rivera Ivania Matamoros

1122 1515 1122 1809

IF-3000 IF-5100 MA-0101 HU-1101

90 85 70 95

Cul es la llave de la tabla?


MATRICULA
NOMBRE_ALUMNO NUM_EXPEDIENTE COD_ASIGNATURA CALIFICACION

Jareth Rivera Jorge Ziga Jareth Rivera Ivania Matamoros

1122 1515 1122 1809

IF-3000 IF-5100 MA-0101 HU-1101

90 85 70 95

El atributo clave que se solapa es COD_ASIGNATURA. Se debe sacar este atributo solapado a otra tabla junto con los atributos NO PRIMOS determinados.

Entonces: {Nombre_Alumno, Cod_Asignatura} {Num_Expediente, Cod_Asignatura}

Calificacin Calificacin

Normalizacin FNBC
MATRICULA
NOMBRE_ALUMNO NUM_EXPEDIENTE COD_ASIGNATURA CALIFICACION

Jareth Rivera Jorge Ziga Jareth Rivera Ivania Matamoros

1122 1515 1122 1809

IF-3000 IF-5100 MA-0101 HU-1101

90 85 70 95

ALUMNO
NOMBRE_ALUMNO NUM_EXPEDIENTE

Jareth Rivera Jorge Ziga Ivania Matamoros

1122 1515 1809


NUM_EXPEDIENTE

NOTA
COD_ASIGNATURA CALIFICACION

1122 1515 1122 1809

IF-3000 IF-5100 MA-0101 HU-1101

90 85 70 95

También podría gustarte