Normalizacion Base De Datos
Diseño de bases de datos. Normalización
2009/2010
NORMALIZACIÓN
1
Normalización
Las bases de datos mal diseñadas tienen problemas de:
– Almacenamiento redundante (varias copias de la misma información) – Perdidas no deseadas de información al modificar tuplas – La base entra en un estado no consistente al borrar una tupla – Imposibilidad de almacenar ciertainformación
• registro(estudiante_id, estudiante_nombre, curso_id, curso_nombre)
En este apartado veremos una serie de requerimientos que hemos de hacer a las relaciones para que los dos problemas señalados arriba no se produzcan
El resumen de este apartado es: Todos los atributos de una relación deben ser atómicos y depender unica y totalmente de la clave primaria.
NORMALIZACIÓN 2
1Primera Forma Normal
Un atributo es atómico si sus elementos se pueden considerar como unidades indivisibles:
– Ejemplos de dominios no atómicos:
• Nombre (atributo compuesto) • Teléfonos (Atributos multivaluados)
Un esquema R satisface la primera forma normal si los dominios de todos los atributos son atómicos Los valores no atómicos complican el almacenamiento y pueden probocarredundancias:
– Por ejemplo, cuentas bancarias almacenadas con sus propietarios
NORMALIZACIÓN
3
Primera Forma Normal (Contd.)
Respetar la atomicidad y no intentéis soluciones “inteligentes”
– Por ejemplo una cadena de caracteres debe tener un significado indivisible. – Supongamos que en la base de datos de la universidad a los profesores se les asigna identificadores del tipo: LAN013 –Donde los tres primeros caracteres se refieren al departamento en el que se encuentran. – Hacer esto es una idea muy mala puesto que la información se codifica a nivel de programa y no de base de datos.
NORMALIZACIÓN
4
2
Segunda Forma Normal
Cada atributo que no sea una clave primaria debe depender únicamente de esa Para normalizar divide la tabla Por ejemplo
–registro(estudiante_id, estudiante_nombre, curso_id, curso_nombre) – Satisface los requerimiento de 1FN con clave primaria (estudiante_id, curso_id) – nombre_estudiante depende de estudiante_id pero no de la pareja (estudiante_id, curso_id) – Dibidir en tablas tres tablas
• estudiante(estudiante_id, estudiante_nombre) • asignatura(asignatura_id,asignatura_nombre) • registro(estudiante_id, asignatura_id)
Ahorapodemos tener datos de estudiantes que no estan matriculados en ninguna asignatura, asignaturas que no tienen ningún estudiante y no necesitamos repetir los datos de estudiante/asignatura para cada registro
NORMALIZACIÓN
5
Segunda Forma Normal (cont)
ASEGURAROS DE NO PERDER INFORMACION AL PARTIR LA RELACION EN VARIAS TABLAS
NORMALIZACIÓN
6
3
Tercera Forma Normal
Un atributodepende transitivamente de la clave primaria si depende en otro atributo que a su vez depende en la clave La tercera forma normal elimina estas dependencias Por ejemplo
– – – – pedido(pedido_id, fecha, cliente_id, cliente_nombre) satisface 1FN y 2FN con clave primaria pedido_id pero cliente_nombre cambia si cambia cliente_id Así que debemos dividir la tabla en:
• pedido(pedido_id, fecha,cliente_id) • cliente(cliente_id,cliente_nombre)
NORMALIZACIÓN
7
Resumen
El proceso de normalización consiste: 1. Comprobar que cada tabla tiene un número fijo de columnas y las variables son sencillas (atómicas) 2. Identificar la clave primaria 3. Comprobar que todos los atributos (menos la clave primaria) depende de TODA la clave y no de PARTE de ella. 4. Si existe dependencia parcialromper la tabla en varias tablas. 5. Comprobar que todos los atributos dependen de la clave y no de otros atributos 6. Si existen dependencias no relacionadas con la clave primaria subdividir las tablas Y ya se tiene base de datos en 3FN
NORMALIZACIÓN 8
4
Normalización
La normalización es: Fácil de entender a nivel conceptual Todo lo que hay que hacer es romper las relaciones hasta...
Regístrate para leer el documento completo.