La normalización es un proceso que se aplica a las bases de datos para organizar las tablas y evitar la redundancia o complejidad en los datos. En este sencillo y muy explicativo artículo resolvemos tus dudas sobre la normalización y te explicamos para qué sirve, pues la verdad es más sencillo de lo que parece.
La normalización de una base de datos es la aplicación de una serie de reglas para evitar a futuro realizar queries o consultas innecesariamente complejas. En otras palabras están enfocadas en eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas que creamos para organizar las bases de datos.
Y es que los datos redundantes desperdician el espacio de disco de tu computador, además de crear problemas de mantenimiento. Dicho esto, ¿por qué es importante que hagas el acceso a los datos mediante la normalización? Pues bien, las bases de datos se normalizan para que tu puedas:
Para poder decir que nuestra base de datos está normalizada deben respetarse 3 niveles o tipos de normalización. Cada uno de estos niveles cumple con ciertos requisitos que tienen el objetivo de simplificar la información pero sin que haya una pérdida de datos.
Veamos cada una a continuación.
¿Qué es DDL, DML, DCL y TCL? + Integridad Referencial.
Hay reglas en la normalización de una base de datos y cada una de ellas se denomina Forma Normal. Existen 3 tipos principales.
Hay que seguir una serie de pasos para normalizar, en otras palabras, para decir que nuestra tabla está en primera forma normal. Estos son:
Para identificar si lo hemos hecho de manera correcta debemos considerar los siguientes aspectos:
Debemos seguir los siguientes pasos:
Sabremos si nuestra base de datos tiene en la segunda forma normal si esta previamente cumple con las normas de la Primera forma Normal y si sus atributos no principales dependen de forma completa de la clave principal.
En otras palabras, que no existen dependencias parciales.
Debemos considerar los siguientes puntos:
Podemos decir que nuestra tabla se encuentra en tercera normal si previamente estaba en segunda forma normal y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.
En otras palabras, todo atributo no primo es implicado por la clave primaria en una secuencia no transitiva.
Para entender mucho mejor todo esto revisemos la siguiente tabla:
Si nos damos cuenta esta tabla no cumple con el requisito que dice que todos los atributos deben ser atómicos, es decir que debemos descomponerlo en su mínima expresión.
Siguiendo los aspectos a considerar podríamos decir que nuestra tabla inicial se transformaría a:
Con esto podríamos decir que nuestra tabla cumple con la primera Forma Normal (1FN). Ahora, si nos fijamos esta aun no cumple con los requisitos que pide la segunda Forma Normal (2FN).
Podríamos crear tablas separadas para cursos y para profesores y cada una de estas tendría su clave primaria y estarían relacionadas por una clave externa (Foreign Key).
Tabla de Cursos:
Tabla Autores:
Ahora nuestra tabla está en segunda Forma Normal (2FN).
Si detallamos nuestra tabla de cursos aún podríamos simplificarla, para esto podríamos extraer la columna de materiales y crear una nueva tabla para esto.
Con esto, nuestra tabla cumpliría con los requisitos de la tercera Forma Normal (3FN) y estaría lista 😃
Como ves, el conjunto de datos relacionados anteriormente permite que tengas una base de datos normalizada.
Si deseas aprender más sobre bases de datos y su normalización te recomiendo ampliamente tomar estos cursos. ¡Las primeras 5 clases están abiertas!
Nos vemos allí 😎. Aprende más de Data Analytics con Platzi.
¿Por qué DAVID se cambió el nombre a MARIO???
miren la tabla de autores :v
Si, vi ese detalle, quiza copypasteerror… Me encantaron estas notas!!! … Hola a todos. Gracias por las excelentes notas al profesor.
No se si estoy equivocada, tengo curiosidad si tiene sentido, pero creo que en la descomposición de la tabla original, al ser creada la tabla: Autores, ésta no necesita llevar el campo fecha de creación. Esto haría una pendencia innecesaria con la tabla cursos, además ambas ya se pueden relacionar por la llave foránea idAutor.
Es un buen articulo.
Concuerdo con milmend
La tabla Materiales debería utilizarse para n cursos.
Saludos.
Excelente
Long live ParrotOS!
Vale oro.
no es ta nada mal, es muy bueno y atendible, pero si pudieras poner mas ejemplos quedaría perfecto
buen aporte, muchas gracias
Super bien explicado!
Excelente artículo ❤️
como es que no lo vi mas antes
muy bueno el articulo 😃
Hola. Gracias por las excelentes notas.
No se si estoy equivocada, tengo curiosidad si tiene sentido, pero creo que en la descomposición de la tabla original, al ser creada la tabla: Autores, ésta no necesita llevar el campo fecha de creación. Esto haría una pendencia innecesaria con la tabla cursos, además ambas ya se pueden relacionar por la llave foránea idAutor.
realmente en necesario crear una tabla para los materiales del curso, es decir, crear una tabla que puede tener valores desde 1 hasta n, cada uno ocupando una fila, en lugar de dejarlo como un atributo univaluado?
Perdon soy nuevo en esto y quiero aprender
Muchas gracias Carlos. Muy interesante tu articulo.
Lei como seis horas otras publicaciones y no entendí nada, luego encontré esto y entendí en 2 minutos, muchas gracias y muy bien explicado.
Pensar que la respuesta era tan sencilla. Gracias.
Carlos muy buen post, pero mira que en la tabla de autores hay un error. Existen 2 Marios, cuando inicialmente el profesor de python es David. De resto excelente.
y que le hicimos a la tabla de materiales?
Excelente
Genial aporte, muy claro y directo al grano sin tantos terminos que más confunden en vez de enseñar, felicitaciones!!