lunes, 11 de noviembre de 2019

La Normalización de Base de datos

¿Que es la normalización?

Es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.


Explicación y ejemplo personal : 

Explicación:

El proceso de normalización es para relaciones que se conocen con lo que  mantienen los datos, principalmente dependencias funcionales, multivaluadas y de join.

Ejemplo:

Por ejemplo tenemos una tabla que se llame estudiantes y otra que se llame curso cuando se haga el proceso después cuando haga la relación entre esas dos tablas solo hay que aplicar una serie de reglas que obtuviste con el modelo entidad-relación.


Resultado de imagen para normalizacion de base de datos



¿Para que se usa la normalización?
  • Minimizar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de datos.

Explicación: 

Se utiliza para disminuir problemas de actualización de los datos en las tablas, minimizar la redundancia de los datos, etc
Resultado de imagen para para que se usa la normalizacion de base de datos





¿Que es la Primera Forma Normal?

Es forma normal usada en normalización de bases de datos. Una tabla de base de datos relacional que se adhiere a la 1FN es una que satisface cierto conjunto mínimo de criterios.



Explicación y ejemplo personal : 

Explicación:

impide a un campo tener más de un dato de su dominio de columna.

Ejemplo: 


Múltiples datos en número de teléfono
 La forma correcta sería:


Osea no puede poner el mismo dato en una columna, por ejemplo no puede poner en el campo teléfono (223-2333, 233-3344) así esta mal es poner un dato en un registro y el otro en otro registro




¿Que es la segunda forma normal?

Una tabla que está en la primera forma normal (1NF) debe satisfacer criterios adicionales para calificar para la segunda forma normal.

Una tabla 1NF estará en 2NF si y solo si, dada una clave primaria y cualquier atributo que no sea un constituyente de la clave primaria, el atributo no clave depende de toda la clave primaria en vez de solo una parte de ella.

Explicación y ejemplo:

Ejemplo: 
Esto se soluciona separando el atributo N_TRABAJADOR a una tabla separada
Aquí lo que se hizo fue que se aplico la segunda forma normal solo se separo numero de trabajo de la tabla y se puso en una nueva.



¿Que es la 3era Forma Normal?

una tabla está en 3NF si y solo si las tres condiciones siguientes se cumplen:
  • La tabla está en la segunda forma normal (2NF)
  • Ningún atributo no-primario de la tabla es dependiente transitivamente de una clave primaria
  • Es una relación que no incluye ningún atributo clave 

Explicación y ejemplo:

Ejemplos:

Esto se soluciona removiendo la transitividad y separando en dos relaciones diferentes

Bueno aquí solo se le aplico la 3era forma normal que se soluciona removiendo la transitividad y separando en dos relaciones diferentes, Las dos tienen que tener una relación entre si.


¿Que es la 4ta forma normal?


La 4FN se asegura de que las dependencias multivaluadas independientes estén correctas y eficientemente representadas en un diseño de base de datos. 

Explicación y ejemplo:








¿Que es la 5ta Forma Normal?

también conocida como forma normal de proyección-unión (PJ/NF), es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semánticamente relaciones múltiples relacionadas.

 Resultado de imagen para ¿Que es la 5ta Forma Normal?



Un ejemplo de todo las formas normal:

Vamos a decir que tenemos la siguiente relación en una escuela:


(Estudiantes, Padres, Profesores, Horario_maestro, Tutores_curso, Curso, Horario_estudiantes, Planificaciones,Calificaciones, Periodo, Matricula, Inscripciones)

Comenzamos a realizar la 1FN, separamos los datos en diferentes relaciones si es necesario, eliminamos datos repetidos y tengamos lo siguiente:

(Estudiantes,Padres, Profesores, Horario_maestro, Horario_estudiantes)
(Curso,Tutores_curso,Planificaciones,Calificaciones, Periodo,Matricula, Inscripciones)

Una vez aplicada la 1FN, procedemos a aplicarle la 2FN, removiendo las dependencias parciales, buscando la dependencia funcional completa. 


Profesores(Nombre_profesor,Tutor_curso,Teléfono_profesores)
Tutores_curso(Nombre_tutor, Apellido_tutor,Curso,Telefono_tutor)

(Estudiantes,Padres,Calificaciones,Inscripciones,Matricula,Periodo,Planificaciones)

De esta manera nuestras relaciones adquieren mas sentido, pero aun se tendrían anomalías, por lo que es necesario pasar a la 3FN, eliminando todo tipo de dependencias transitivas, separandolas en nuevas relaciones:

Estudiante(Nombre_estudiante, Apellido_estudiante, Curso)
Padres(Nombre_padre, Nombre_estudiante)
profesores(Profesor_nombre,Cursos,Telefono,Correo_electronico)
Curso(Lugar_curso, Nombre_curso, Tutor_curso)
Tutores_curso(Nombre_tutor_curso,Apellido_tutor_curso,Curso)

Las tablas quedan ordenadas y en esta ocasión ya no ocurren anomalías en la inserción, modificación o la eliminación de datos. Por lo que podríamos pasar a realizar la 4FN, pero notamos que en nuestras relaciones no existen dependencias multivalores. Por lo que finalizamos la normalizacion de nuestra base de datos. Finalmente, las relaciones quedarían de la siguiente manera:

Estudiante     (Nombre_estudiante, Apellido_estudisnte, Curso)
Padres (Nombre_padre, Nombre_estudiante)
Profesores (Nombre_profesor, Apellido_profesor, Telefono, Materia)
Horario_maetro      (Nombre_maestro, Tutor, Curso)
Tutores_curso (Nombre_tutor_curso, Apellido_tutor_curso, Curso)



Ejemplo de la Quinta forma normal

estudiante-para-cursos-para-profesores
estudiante
padre
profesores
Edison
4toB
Juan Carlos socorro
Erinson
4toC
Joel rosario
Awilson
5toA
Hipólito martes
Eridania
3roD
Rafelina almanzar
Pedro
6toB
Nolberto duran


No hay comentarios:

Publicar un comentario

MYSQL

¿Que es el cotejamiento en MySql? UTF-8 es una codificación de caracteres que usa la mayoría de los sitios web. Codifica cada uno de lo...