Diseño de DB JM Salinas E: MTI 1
Normalización
• Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización.
Una tabla que no esta debidamente normalizada
Diseño de DB JM Salinas E: MTI 2
Normalización• Consecuencias de una nula o errónea normalización
– Redundancia• Repetición de datos en una BD
– Puede llevar a la perdida de la integridad de los datos• Inconsistencia de los datos en una BD
– Anomalía de actualización– Inconsistencia de los datos resultado de redundancia y actualización
parcial (ver C. Nemo suponiendo que solo la tupla 1 es correcta)
Diseño de DB JM Salinas E: MTI 3
Normalización
• Anomalía de borrado– Perdida de datos como resultado del borrado de otros
datos (suponiendo que C. Nemo enfermó)
XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Diseño de DB JM Salinas E: MTI 4
Normalización
• Anomalía de inserción– Imposibilidad de agregar datos debido al borrado de
otros (suponiendo que Spandolf no tiene edificio asignado).
Diseño de DB JM Salinas E: MTI 5
Normalización• La solución al problema anterior
Diseño de DB JM Salinas E: MTI 6
Normalización• Practica:
– Elabore en Visual FoxPro 2 tablas com los datos de la diapositiva número 2, intente insertar un nuevo registre para C. Nemo.
– Borre uno a uno todos los registros, (use el comando DELETE NEXT 1)
– Inserte un nuevo registro para Spandolf– Elabore sus propias conclusiones.
Diseño de DB JM Salinas E: MTI 7
¿Que es la normalización?
• Descomposición de relaciones– División de una relación en múltiples relaciones
• Formas normales– Reglas para relaciones estructuradas que eliminan
anomalías
Diseño de DB JM Salinas E: MTI 8
1FN
• Primera forma normal 1FN– Todos los valores de los atributos deben de ser atómicos
• Valor atómico – Un valor que no es un conjunto de valores o un grupo repetitivo
ID_EDIFICIO no es atómico
Diseño de DB JM Salinas E: MTI 9
Normalización
• Dependencia funcional – El valor de un atributo en una tupla determina el valor de otro
atributo en la tupla
• Determinante– El atributo del lado izquierdo de la DF determina el valor de los
otros atributos en una tupla
DF: A B Si cualquiera de dos tuplas en una relación R, tiene el mismo valor parasu atributo A; entonces deben tener el mismo valor para su atributo B
“Determina funcionalmente”
Diseño de DB JM Salinas E: MTI 10
2FN
• Segunda forma normal– Una relación esta en 2FN, si un atributo no clave no
es funcionalmente dependiente de una parte de la clave
Fig. 5.6 relación ASIGNACION (NOMBRE depende de ID_TRABAJADOR)
Diseño de DB JM Salinas E: MTI 11
Normalización
• Problemas potenciales de la relación anterior– Redundancia– Falta de integridad (un nombre que cambia obligaría a un cambio en
todas las filas con el mismo ID_TRABAJADOR)– Inconsistencia (por la razón anterior)– Si no hay asignaciones no se puede guardar el nombre del trabajador
• Descomponiendo la relación, se tiene que:
Fig. 5.6 relación ASIGNACION
Diseño de DB JM Salinas E: MTI 12
Normalización
• Problemas potenciales de la nueva relación ASIGNACION– ¿Cómo obtener los nombres de todos los trabajadores
asignados a un edificio?– R.
• Combinando la información de las dos relaciones (Proyección)
Fig. 5.6 relación ASIGNACION
Diseño de DB JM Salinas E: MTI 13
Normalización• Relaciones ASIGNACION y TRABAJADOR en 2FN
Fig 5.7
Set filter to <atributo> <expresión>
• Set filter permite “filtrar” un grupo de registros que cumplen con una condición– Ejemplo:– Set filter to id_trabajador = “1412” listaria solo
a C. Nemo
Diseño de DB JM Salinas E: MTI 14
Diseño de DB JM Salinas E: MTI 15
Normalización
• Tercera forma normal– Una relación esta en 3FN, si cada determinante es
una clave.
Fig. 5.8 relación TRABAJADOR1
Diseño de DB JM Salinas E: MTI 16
Normalización• Tercera forma normal• Si una relación esta en 3FN esta también en 2FN
– 1 DF: ID_TRABAJADOR -> TIPO_DE_OFICIO– 2 DF: ID_TRABAJADOR -> PRIMA – Son dependencias funcionales ya que ID_TRABAJADOR
es una clave, pero:– 3 DF: TIPO_DE_OFICIO -> PRIMA– Es también una DF, el criterio 3FN se satisface en las
dos primeras DF– TIPO_DE_OFICIO no es una clave, por tanto falla el
criterio 3FN; sin embargo TRABAJADOR1 esta en 2FN
Diseño de DB JM Salinas E: MTI 17
Normalización
• Si una relación no esta en 3FN puede ocurrir:1. Redundancia, PRIMA se repite en las tuplas en
donde se tiene el mismo TIPO_DE_OFICIO
2. Si PRIMA cambia para TIPO_DE_OFICIO las filas deben ser actualizadas, si se borra una fila se pierde el valor de PRIMA
Diseño de DB JM Salinas E: MTI 18
Normalización• Descomposición de relaciones que no están en
3FN• Comience con el esquema TRABAJADOR1
( ID_TRABAJADOR, TIPO_DE_OFICIO, PRIMA)
• Forme una nueva relación R1 moviendo de TRABAJADOR1 los atributos de la parte derecha de cualquier DF que haga fallar el criterio 3FN (PRIMA). Forme una nueva relación con los atributos izquierdo y derecho de la DF que hace fallar 3FN (TIPO_DE_OFICIO, PRIMA)
Diseño de DB JM Salinas E: MTI 19
Normalización• Descomposición de relaciones que no están en
3FN• El determinante de la DF es TIPO_DE_OFICIO, es
clave candidata, llame a esto relación R2 • Visualizando el nuevo esquema:• R1(ID_TRABAJADOR, TIPO_DE_OFICIO)
Clave Externa: TIPO_DE_OFICIO REFERENCIA A R2
y
R2(TIPO_DE_OFICIO, PRIMA)
Diseño de DB JM Salinas E: MTI 20
Normalización• 3FN Forma normal Boyce Codd (FNBC)
• Todo determinante es una clave
Diseño de DB JM Salinas E: MTI 21
Normalización
• Cuarta forma normal. – La primera forma normal prohíbe relaciones
donde se tengan atributos no atómicos o multievaluados.
– Existen situaciones en que las relaciones requieren de atributos multievaluados.
– Por ejemplo un funcionario de la facultad se asigna a múltiples comités y es responsable de múltiples cursos.
Diseño de DB JM Salinas E: MTI 22
Normalización 4FNPosibles soluciones
Fig 5.9
Diseño de DB JM Salinas E: MTI 23
Normalización
• En la fig 5.9 no está claro que los atributos COMITE y CURSO sean independientes uno del otro.
• ¿El comité de admisión se relaciona con el curso. IM101?
•La relación aparente entre atributos independientes puede eliminarse requiriendo que cada valor de un atributo aparezca en al menos una fila con cada valor del otro tributo.•Admisión y Beca aparecen en las filas con IM101, IM102, IM103
Fig 5.10
Diseño de DB JM Salinas E: MTI 24
Normalización
• Esta condición que hace cumplir la independencia de los atributos requiriendo esta duplicación de valores se llama una dependencia multíevaluada. (DMV)
• Una relación está en cuarta forma normal si esta en tercera forma normal y no tiene atributos múltievaluados FNOMBRE es un valor clave en alguna otra relación que identifica el miembro de la facultad para la cual se aplica la información
• Ver fig 5.11
Diseño de DB JM Salinas E: MTI 25
Normalización
Fig 5.11
Diseño de DB JM Salinas E: MTI 26
Normalización
• Quinta forma normal.– Una forma normal que elimina las
dependencias de reunión
• Forma normal dominio clave – Requiere que cada restricción sea resultado
de definiciones de dominios y claves