GRUPO 3 proceso normalizacion db

Anuncio
Normalización de Base de datos.
La normalización es el proceso de organizar los datos en una base de datos. Esto
incluye crear tablas y establecer relaciones entre las tablas según reglas diseñadas tanto
para proteger los datos y para hacer que la base de datos sea más flexible eliminando
redundancia y dependencias incoherentes.
Los datos redundantes desperdician espacio en disco y crean problemas de
mantenimiento. Si es necesario cambiar datos que aparecen en más de un sitio, el
cambio deberá ser exactamente igual en todos estos sitios
Las dependencias incoherentes pueden dificultar el acceso a los datos, ya que la ruta de
acceso a los mismos puede estar rota o no encontrarse.
Las bases de datos relacionales se normalizan para:
 Evitar la redundancia de los datos.
 Evitar problemas de actualización de los datos en las tablas.
 Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla
sea considerada como una relación tiene que cumplir con algunas restricciones:
 Cada tabla debe tener su nombre único.
 No puede haber dos filas iguales. No se permiten los duplicados.
 Todos los datos en una columna deben ser del mismo tipo.
Terminología relacional equivalente
 Relación = tabla o archivo
 Registro = registro, fila o renglón
 Atributo = columna o campo

código de identificación
 Clave Candidata = superclave mínima
 Clave Primaria = clave candidata elegida
 Clave Ajena = clave externa o clave foránea
Clave = llave o
 Clave Alternativa = clave secundaria
 Dependencia Multivaluada = dependencia multivalor
 RDBMS = Del inglés Relational Data Base Manager System que significa,
Sistema Gestor de Bases de Datos Relacionales.
 1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form.
Claves
Clave primaria es aquella columna (o conjunto de columnas) que identifica
únicamente a una fila.
La clave primaria es un identificador que va a ser siempre único para cada fila.
Se acostumbra a poner la clave primaria como la primera columna de la tabla
pero es más una conveniencia que una obligación. Muchas veces la clave
primaria es numérica auto-incrementada, es decir, generada mediante una
secuencia numérica incrementada automáticamente cada vez que se inserta una
fila.
En una tabla puede que tengamos más de una columna que puede ser clave
primaria por sí misma. En ese caso se puede escoger una para ser la clave
primaria y las demás claves serán claves candidatas.
Una clave ajena (foreign key o clave foránea) es aquella columna que
existiendo como dependiente en una tabla, es a su vez clave primaria en otra
tabla.
Una clave alternativa es aquella clave candidata que no ha sido seleccionada
como clave primaria, pero que también puede identificar de forma única a una
fila dentro de una tabla.
Una clave compuesta es una clave que está compuesta por más de una columna.
La visualización de todas las posibles claves candidatas en una tabla ayudan a su
optimización. Podemos usar cualquiera de las dos opciones o incluso todas a la
vez como clave primaria, pero es más óptimo en la mayoría de sistemas la
elección del menor número de columnas como clave primaria.
Formas Normales
Existen unas cuantas reglas para la normalización de bases de datos. Cada regla se
denomina "forma normal".
Si se cumple la primera regla, se dice que la base de datos está en la "primera forma
normal". Si se cumplen las tres primeras reglas, se considera que la base de datos está en la
"tercera forma normal". Aunque existen otros niveles de normalización, se considera que la
tercera forma normal es el máximo nivel necesario para la mayoría de las aplicaciones.
Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de
datos está en la forma normal N es decir que todas sus tablas están en la forma normal N.
En general, las primeras tres formas normales son suficientes para cubrir las necesidades de
la mayoría de las bases de datos. El creador de estas 3 primeras formas normales (o reglas)
fue Edgar F.Codd.
Primera Forma Normal (1FN)
 Crear una tabla diferente para cada conjunto de datos relacionados.
 Identificar cada conjunto de datos relacionados mediante una clave principal
 .No utilizar varios campos en una única tabla para almacenar datos similares.
 Esta forma normal elimina los valores repetidos dentro de una BD.
Segunda Forma Normal (2FN)
 Crear tablas independientes para conjuntos de valores que se apliquen a varios
registros.
 Relacionar dichas tablas mediante una clave externa.
 Los registros tan sólo deben depender de la clave principal de una tabla (si es
necesario, puede ser una clave compuesta).
Tercera Forma Normal (3FN)
 Eliminar los campos que no dependan de la clave.
Los valores de un registro que no forman parte de la clave de dicho registro no pertenecen a
esa tabla. En general, siempre que el contenido de un grupo de campos se puede aplicar a
más de un registro de la tabla, debe tener en cuenta la posibilidad de incluir dichos campos
en una tabla independiente.
Una posibilidad es aplicar la tercera forma normal únicamente a los datos que cambien con
frecuencia. Si aún quedan campos dependientes, diseñe la aplicación de forma que solicite
al usuario que compruebe todos los campos relacionados cuando se produzca un cambio en
cualquiera de ellos.
Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma
normal.
Otras formas de normalización
Existe una cuarta forma normal, llamada también Forma normal de Boyce Codd (BCNF), y
una quinta forma normal, pero pocas veces se consideran prácticas en un diseño. La
omisión de estas reglas puede dar como resultado una tabla que no sea perfecta, pero no
debería afectar a su funcionamiento.
Normalizar una tabla de ejemplo
En los pasos siguientes se demuestra el proceso de normalización de una tabla de alumnos
ficticia.
Tabla sin normalizar:
# Alumno
Profesor
Salón Asignado
Clase 1
Clase 2 Clase 3
1022
Darío Gómez
412
07-101
143-01
159-02
4123
Juan Zapeta
216
01-201
02-211
01-214
Primera forma normal: Sin grupos repetidos
Tablas deben tener sólo dos dimensiones. Como cada alumno está inscrito en varias clases,
éstas deben aparecer en una tabla independiente. Los campos Clase1, Clase2 y Clase3 de
los registros anteriores indican que existe un problema en el diseño.
En las hojas de cálculo se utiliza con frecuencia la tercera dimensión, pero no debe hacerse
en las tablas. Otra forma de ver el problema es considerar una relación de uno a varios; no
se debe poner en la misma tabla el lado en el que hay un elemento y el lado en el que hay
varios elementos. En su lugar, cree otra tabla en la primera forma normal eliminando el
grupo de repetición (Nº clase), como se muestra a continuación:
Alumno #
Profesor
Salón Asignado
Nº clase
1022
Darío Gómez
412
07-101
1022
Darío Gómez
412
143-01
1022
Darío Gómez
412
159-02
4123
Juan Zapeta
216
01-201
4123
Juan Zapeta
216
02-211
4123
Juan Zapeta
216
01-214
Segunda forma normal: Eliminar datos redundantes
Tenga en cuenta los varios valores de Nº clase para cada valor de Nº alumno en la tabla
anterior. Clase # no es funcionalmente dependiente de Nº alumno (clave principal), por lo
que esta relación no es normal segundo formulario.
Las dos tablas siguientes muestran la segunda forma normal:
Alumnos
# Alumno Profesor
Salón Asignado
1022
Darío Gómez 412
4123
Juan Zapeta
Registro
# Alumno Nº clase
1022
07-101
1022
143-01
1022
159-02
4123
01-201
4123
02-211
216
4123
01-214
Tercera forma normal: Eliminar datos no dependientes en la clave.
En el último ejemplo anticipado-sala (número de oficina del Asesor) depende
funcionalmente en el atributo de Asesor. La solución es mover dicho atributo de la tabla
Alumnos a la tabla Personal, como se muestra a continuación:
Alumnos
# Alumno Profesor
1022
Darío Gómez
4123
Juan Zapeta
Profesores
Nombre
Salón Departamento
Darío Gómez 412
42
Juan Zapeta
42
216
Descargar