ACTIVIDAD 5
Normalizacion Base de Datos
Actividad 5
Solución
1. Que es normalizacion en base de datos
Normalización es el proceso de aplicar reglas a tablas del modelo relacional o modelo entidad-relación. Las bases de datos relacionales se normalizan para:
- Evitar la redundancia de los datos.
- Disminuir problemas de actualización de los datos en las tablas.
- Proteger la integridad de datos.
En el modelo relacional, 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.
Las consecuencias de la falta de normalización de base de datos son:
Inexactitud de los sistemas de bases de datos.
Ralentización de los procesos.
Ineficiencia en las operaciones.
2. Definir las formas normales 1FN, 2FN, y 3FN
- ¿Qué es 1 FN?
Atributos atomicos y PK para identificar las filas:
- Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son simples e indivisibles.
- La tabla contiene una clave primaria única.
- La clave primaria no contiene atributos nulos.
- No debe existir variación en el número de columnas.
- Los Campos no clave deben identificarse por la clave (Dependencia Funcional)
- Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados
Esta forma normal elimina los valores repetidos dentro de una Base de Datos.
- ¿Qué es 2 FN?
Un campo debe depender del campo PK y no de otro campo
Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).
En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional x -> y es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que {\displaystyle A\in X,X-\{A\}\nrightarrow Y}. Una dependencia funcional {\displaystyle x\rightarrow y} es una dependencia parcial si hay algunos atributos {\displaystyle A\in X} que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es {\displaystyle A\in X,X-\{A\}\rightarrow Y}.
Por ejemplo {DNI, ID_PROYECTO} {\displaystyle \rightarrow } HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente funcional dado que ni DNI {\displaystyle \rightarrow } HORAS_TRABAJO ni ID_PROYECTO {\displaystyle \rightarrow } HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} {\displaystyle \rightarrow } NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI {\displaystyle \rightarrow } NOMBRE_EMPLEADO mantiene la dependencia.
- ¿Qué es 3 FN?
La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva en los atributos que no son clave.
Un ejemplo de este concepto sería que, una dependencia funcional X -> Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X {\displaystyle \rightarrow } \rightarrow Z y Z {\displaystyle \rightarrow } \rightarrow Y.
Por ejemplo, la dependencia SSN {\displaystyle \rightarrow } \rightarrow DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque las dependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.
Formalmente, un esquema de relación {\displaystyle R} R está en 3 Forma Normal Elmasri-Navâthe,2 si para toda dependencia funcional {\displaystyle X\rightarrow A} {\displaystyle X\rightarrow A}, se cumple al menos una de las siguientes condiciones:
{\displaystyle X} X es superllave o clave.
{\displaystyle A} A es atributo primo de {\displaystyle R} R; esto es, si es miembro de alguna clave en {\displaystyle R} R.
Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.
3. Verse cada unos de los videos propuestos para aclarar el tema de normalizacion y las primeras formas normales (si lo considera importante documente lo que dice los 3 videos digitando texto y capturando imágenes)
EJEMPLO:
1FN:
Para hallar 1FN debemos separarlos en dos puntos, es decir en dos relaciones, uno con los atributos en este caso sin repeticiones y otro lo que vendría a ser los atributos con las repeticiones.
Como se muestra en las siguientes tablas.
SE COMIENZA CON UNA TABLA NORMAL
SE IDENTIFICA QUE CAMPOS SE DEBEN DE SEPARAR
SE SEPARAN LOS CAMPOS EN NUEVAS TABLAS
ASI QUEDA EN LA 1FN, PRIMERA FORMA NORMAL
2FN:
Para esta forma siempre debe de estar en primera forma para que pase a la segunda, en este caso debemos ver la llaves , quien depende de otra..
Esta segunda forma nos dice que debemos separar en tablas diferentes cuando no hay una llave que no este mandando a ese atributo, que no dependa de esa llave.
Se debe de separar creando tablas independientes.
SE IDENTIFICA QUE TABLA SE DEBE DE CREAR CON LOS DIFERENTES CAMPOS NECESARIOS
ASI QUEDA LA 2FN, SEGUNDA FORMA NORMAL
3FN
En una tabla no pueden haber dos PRIMARY KEY , solamente debe de haber una llave,si hay dos llaves principales deben de separasen, y esa principal debe de convertirse en FORANEA
AL SER IDENTIFICADAS LAS CLAVES, ESTAN SE SEPARAN, QUEDANDO ASI EL RESULTADO DE LA 3FN, TERCERA FORMA NORMAL
EJERCICIO DE NORMALIZACION
TIENDA DE VIDEOS:
En el siguiente archivo se encuentra el enunciado del ejercicio propuesto.
En este archivo se encuentra la solución al anterior Ejercicio de Tienda de Videos