diseño de db jm salinas e: mti1 normalización normalización: minimizar la redundancia y los...

26
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

Upload: che-saldana

Post on 07-Mar-2015

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 2: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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)

Page 3: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 4: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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).

Page 5: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

Diseño de DB JM Salinas E: MTI 5

Normalización• La solución al problema anterior

Page 6: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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.

Page 7: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 8: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 9: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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”

Page 10: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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)

Page 11: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 12: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 13: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

Diseño de DB JM Salinas E: MTI 13

Normalización• Relaciones ASIGNACION y TRABAJADOR en 2FN

Fig 5.7

Page 14: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 15: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 16: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 17: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 18: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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)

Page 19: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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)

Page 20: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

Diseño de DB JM Salinas E: MTI 20

Normalización• 3FN Forma normal Boyce Codd (FNBC)

• Todo determinante es una clave

Page 21: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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.

Page 22: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

Diseño de DB JM Salinas E: MTI 22

Normalización 4FNPosibles soluciones

Fig 5.9

Page 23: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 24: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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

Page 25: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

Diseño de DB JM Salinas E: MTI 25

Normalización

Fig 5.11

Page 26: Diseño de DB JM Salinas E: MTI1 Normalización Normalización: Minimizar la redundancia y los posibles errores de inserción, eliminación y actualización

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