5 normalizacion
Introducción y fundamentos
Introducción a SQL
Modelo Entidad / Relación
Modelo relacional
Diseño relacional: formas normales
Consultas
– Cálculo relacional
– Álgebra relacional
Implementación de bases de datos
– Estructura física: campos y registros
– Indexación
• Índices simples
• Árboles B
• Hashing
1
Diseño de esquemas relacionales
Igual que un programa C, un diseñoBD puede ser sintácticamente
correcto, pero de baja calidad
Hay muchos criterios para valorar y procurar la calidad de un diseño
– Claridad, facilidad de lectura, reflejo de las estructuras naturales del dominio
– Eficiencia de consulta
– Aprovechamiento del espacio en disco
– Buena selección de claves, detalle en las restricciones
– Facilidad de actualización y evolución del diseño
– …
–Ciertas propiedades formales definibles en el modelo relacional
Propiedades formales
– Evitar NULLs
– Formas normales
2
Normalización de esquemas relacionales
Criterios formales para valorar y mejorar el diseño de una base de datos
– Reducir redundancias (consumen espacio y pueden generar problemas de
consistencia)
– Facilitar la actualización de datos de forma más modular (evitar anomalías)
–Facilitar la evolución de los esquemas
– Neutralidad respecto de las consultas
Formas normales 1ª, 2ª y 3ª
– E. Codd en 1970/71
Forma normal Boyce-Codd (BCNF)
– R. F. Boyce en 1974
Formas normales 4ª, 5ª, 6ª
Edgard F. Codd
– 1977/79/2002
– Menos utilizadas
3
Anomalías de diseño
No son un error en sí mismas
– Si se hace bien la actualización no habría problema
Pero… son un factorde error
– Dan la ocasión de generar inconsistencias semánticas y otros
problemas que el modelo relacional en sí no detectaría
La normalización las evita y hace el diseño más robusto
– Ahorra precauciones externas al diseño
4
Anomalías de actualización
NIE
Nombre
Teléfono
Asignatura
NIE
Nombre
Teléfono
NIE
Asignatura
12345
Isabel
123456789
17824
12345
Isabel
123456789
1234517824
12345
Isabel
123456789
17825
67890
David
321654987
12345
17825
12345
Isabel
123456789
17826
···
12345
17826
12345
Isabel
123456789
17827
12345
17827
12345
Isabel
123456789
17828
12345
17828
67890
David
578234890
321654987
17824
67890
17824
67890
David
321654987
17825
67890
17825
67890
David
321654987
17826
67890
17826
67890
David
32165498717827
67890
17827
···
···
···
···
···
···
···
Modificación del valor de un campo
···
1.
Mejor diseño…
Redundancia
Problemas al modificar: estado inconsistente
si no se actualizase el campo en todas las filas
5
Anomalías de actualización (cont)
2.
Inserción
NIE
Nombre
Teléfono
NIE
Asignatura
12345
Isabel
123456789
17824
12345
Isabel
123456789
12345
17824
12345Isabel
123456789
17825
67890
David
321654987
12345
17825
12345
Isabel
123456789
17826
···
12345
17826
12345
Isabel
123456789
17827
12345
17827
12345
Isabel
123456789
17828
12345
17828
67890
David
321654987
17824
67890
17824
67890
David
321654987
17825
67890
17825
67890
David
321654987
17826
67890
17826
67890
David
321654987
17827
67890
17827
······
987654321
Mejor diseño…
NULL
NULL
···
···
María
···
···
32154
···
Asignatura
···
Teléfono
···
···
Nombre
···
···
NIE
NIE
Problema al insertar tuplas cuando aún no se saben todos
sus campos –especialmente parte de la clave primaria
6
Anomalías de actualización (cont)
NIE
Nombre
Teléfono
Asignatura
NIE
Nombre
Teléfono
NIE
Asignatura
12345
Isabel
123456789
17824
12345Isabel
123456789
12345
17824
12345
Isabel
123456789
17825
67890
David
321654987
12345
17825
12345
Isabel
123456789
17826
···
12345
17826
12345
Isabel
123456789
17827
12345
17827
12345
Isabel
123456789
17828
12345
17828
67890
David
321654987
17824
67890
17824
67890
David
321654987
17825
67890
17825
67890
David
321654987
17826
67890
17826
67890...
Regístrate para leer el documento completo.