GUADALUPE GARCÍA VÁZQUEZ
Carlos Andrés Arjona Calvo
Muy buen resumen, más claro que esta última lectura. Super
Daniel Andrés Giraldo Benites
Excelente resumen.. asi se consolida mejor lo aprendido
La normalización en las bases de datos relacionales es uno de esos temas que, por un lado es sumamente importante y por el otro suena algo esotérico. Vamos a tratar de entender las formas normales (FN) de una manera simple para que puedas aplicarlas en tus proyectos profesionales.
Primera Forma Normal (1FN) Esta FN nos ayuda a eliminar los valores repetidos y no atómicos dentro de una base de datos.
Formalmente, una tabla está en primera forma normal si:
Se traduce básicamente a que si tenemos campos compuestos como por ejemplo “nombre_completo” que en realidad contiene varios datos distintos, en este caso podría ser “nombre”, “apellido_paterno”, “apellido_materno”, etc.
También debemos asegurarnos que las columnas son las mismas para todos los registros, que no haya registros con columnas de más o de menos.
Todos los campos que no se consideran clave deben depender de manera única por el o los campos que si son clave.
Los campos deben ser tales que si reordenamos los registros o reordenamos las columnas, cada dato no pierda el significado.
Segunda Forma Normal (2FN) Esta FN nos ayuda a diferenciar los datos en diversas entidades.
Formalmente, una tabla está en segunda forma normal si:
Lo anterior quiere decir que sí tenemos datos que pertenecen a diversas entidades, cada entidad debe tener un campo clave separado. Por ejemplo:
En la tabla anterior tenemos por lo menos dos entidades que debemos separar para que cada uno dependa de manera única de su campo llave o ID. En este caso las entidades son alumnos por un lado y materias por el otro. En el ejemplo anterior, quedaría de la siguiente manera:
Tercera Forma Normal (3FN) Esta FN nos ayuda a separar conceptualmente las entidades que no son dependientes.
Formalmente, una tabla está en tercera forma normal si:
Se encuentra en 2FN No existe ninguna dependencia funcional transitiva en los atributos que no son clave
Esta FN se traduce en que aquellos datos que no pertenecen a la entidad deben tener una independencia de las demás y debe tener un campo clave propio. Continuando con el ejemplo anterior, al aplicar la 3FN separamos la tabla alumnos ya que contiene datos de los cursos en ella quedando de la siguiente manera.
Cuarta Forma Normal (4FN) Esta FN nos trata de atomizar los datos multivaluados de manera que no tengamos datos repetidos entre rows.
Formalmente, una tabla está en cuarta forma normal si:
Esta FN trata de eliminar registros duplicados en una entidad, es decir que cada registro tenga un contenido único y de necesitar repetir la data en los resultados se realiza a través de claves foráneas.
Aplicado al ejemplo anterior la tabla materia se independiza y se relaciona con el alumno a través de una tabla transitiva o pivote, de tal manera que si cambiamos el nombre de la materia solamente hay que cambiarla una vez y se propagara a cualquier referencia que haya de ella.
De esta manera, aunque parezca que la información se multiplicó, en realidad la descompusimos o normalizamos de manera que a un sistema le sea fácil de reconocer y mantener la consistencia de los datos.
Algunos autores precisan una 5FN que hace referencia a que después de realizar esta normalización a través de uniones (JOIN) permita regresar a la data original de la cual partió.
GUADALUPE GARCÍA VÁZQUEZ
Carlos Andrés Arjona Calvo
Muy buen resumen, más claro que esta última lectura. Super
Daniel Andrés Giraldo Benites
Excelente resumen.. asi se consolida mejor lo aprendido
Alexander Jimenez Sanabria
Roy Pmind Bracamonte
hola, creo que podrias aplicar la 4FN para dejar pagos como una tabla y tener una tabla extra con las claves que seria la tabla PAGOS_REALIZADOS.
Santiago Cardona Quintero
Muchas gracias, me ayudó a aterrizar el concepto
Fredy Alberto Orozco Loaiza
Yo lo entendí mas o menos así 1 Fn : Reduce las columnas redundantes 2Fn : Has que todo tenga un registro 3Fn : Ve que no haya atributos multivaluados (Ve si eso se puede quitar) 4 Fn : Has que todo sea único (Mirar las relaciones N:N)
Chantal Danielle Barreaux Palma
Entendí tal cual como lo resumes.
Mauricio Gonzalez Falcon
Explicación simple y correcta!
Carlos Eduardo Gomez García
A términos prácticos la normalización consiste en ir descomponiendo tu tabla en pequeñas tablas que hacen referencia a ciertas entidades que se empiezan a relacionar con otras, y acabamos relacionándolas por medio de su id, así las referenciamos, y esto trae muchas ventajas, de entre ellas, podemos cambiar un dato en un solo lugar y esto se propagará a todos los lugares a donde este apunte:D!
Daniel Reymundo
Genial!!!!
Marco Antonio González Hernández
A mi forma de entender la tabla cursos tiene dos entidades que se deben separar
Por un lado se tiene el campo nivel_curso, que se puede formalizar en otra tabla llamada nivel_estudio, por si se requiere agregar mas niveles de estudios.
La tabla nivel_estudios se relacionaría con la tabla cursos por medio de su id
Juan José Londoño Angel
Hola comparto este video que me ayudo a entender mucho mejor:
Jose Carlos Manjarres Pereira
Crack!!!. Esto me ayudó mas que el video y la lectura de aquí. Gracias
Javier Gamez
El ejemplo esta genial, aclaro las dudas que me habían quedado <3
Norberto Rodriguez
Está excelente la explicación, queda todo más claro! No sé si sería ya abusar demasiado pero crearía una quinta tabla y la llamaría nivel_curso y sería así: nivel_curso id INTEGER PK nivel VARCHAR(30) NN UNIQUE
Entonces haría una relación 1:N con la tabla cursos que quedaría finalmente: cursos id INTEGER PK nivel_curso_id INTEGER FK nombre_curso VARCHAR(30) NN UNIQUE
Roger Christian Cansaya Olazabal
De hecho si seria interesante cada maestría tiene diferentes y variados cursos.
Alberth Fabian Perez Mendivelso
Básicamente debemos dividir el proyecto en secciones que no tengan datos repetidos y que sean accesibles unos con otros.
José Juan Pineda
Creo que poder dominar este tema de FN requiere mucha práctica. ¿De casualidad alguien conocer alguna pagina donde se pueda practicar este tipo de problemas? Donde te pongan el ejercicio y más adelante lo puedas encontrar ya resuelto para pura comprobación.
Saludos!
Josue Noha Valdivia
Formas Normales: Primera forma normal (1FN):Con esta forma normal eliminamos los valores repetidos o no atómicos de nuestra base de datos. Cumple con las siguientes características:
Segunda forma normal (2FN): Esta forma normal nos ayuda a diferenciar los datos de diversas entidades. Cumplen con:
Tercera forma normal (3FN): En esta FN separamos conceptualmente entidades que no son dependientes. Cumple con las siguientes consideraciones:
Cuarta Forma Normal (2FN): En esta FN atomizamos los datos multivaluados de manera que no tengamos datos repetidos en las columnas. Cumple con:
Aunque en apariencia la información se multiplicó, la hicimos más fácil de mantener y de reconocer a través de la computadora.
Nota:
Alejandro González Reyes
Si normalizamos nuevamente y separamos la entidad curso de nivel. Tendríamos una relacion Muchos a Muchos
Un curso tiene muchas materias Una materia pertenece a muchos cursos
Tabla pivote cursos_materias
Lian Nivin
muy bien explicado. Si logras formar las relaciones graficamente, tendrias lo que falta a esta sesion :)
Usuario anónimo
UserSi concuerdo con tu punto de vista.
Andrés David Lizarazo Becerra
En resumen, la normalización sirve para: Facilitar el acceso e interpretación de los datos. Reducir el tiempo y complejidad de revisión de las bases de datos. Optimizar el espacio de almacenamiento. Prevenir borrados indeseados de datos. seguramente hay muchas ventajas más pero definitivamente es algo necesario
Nestor Alfonso Portela Rincón
Algo que no se ha mencionado, quizás se haga más adelante. Es que por buenas practicas el nombre de las tablas debe ir en plural por ejemplo: "nombre_alumnos" y los campos o atributos de esa tabla en singular por ejemplo: "id_alumno, nombre_alumno, apellido_alumno, edad_alumno" y así.
Alejandro Sánchez
Si se menciono [ero para los diagramas de entidad relación.
Usuario anónimo
UserSi en efecto.
David Rueda
De hecho si revisa en detalle, aún es posible generar una tabla más que estaría relacionada con el nivel de los cursos que se están tomando, con esto se crearía una nueva Entidad llamada Nivel que tendría como atributos Maestría y Licenciatura.
Diego Armando Casillas Muñoz
Conceptualmente me confunde un poco, pero espero que en las siguientes clases ya llevandolo a la práctica todo sea tan claro como parece :)
Jose Antonio Rojas Ollarves
Explicacion de normalizacion: | Primera forma normal (1FN):
* Atribubtos atomicos (Sin campos repetidos)
Luego de aplicar la primera forma normal: Entonces agregamos una llave foranea para identificar a cada estudiante y hacemos dos tablas para juanito y dos para pepito por que los doas estan viendo clases deacuerdo a su nivel de curso.
Segunda forma normal (2FN):
* Cumple 1FN y cada campo de la tabla debe depender de una clave unica
Luego de aplicar la segunda forma: En el siguiente ejemplo tenemos, que creamos una estrcutura para las materias, con un ID unico, de forma que el ID 1, 2 le pertenecen al mismo usuario pero el nombre o la asignatura de la materia cambia este tipo de cosas es lo que nos ayudan a entender la normalizacion pues que en la vida real el alumno y la materia no son una misma entidad y deben trabajar cada uno a parte
Tercera forma normal (3FN):
* Cumple 1FN y 2FN y los campos No son clave No debben tener dependencias
Luego de aplicar la tercera forma: Aqui separamos las entidades por ejemplo tenemos una entidad de alumnos que esta conformada por los alumnos, los cursos, pueden ser varios cursos y ademas no necesariamente tiene que tener a todos los alumnos o unos en especifico, puede variar. Por otra parte tenemos las materias que tambien son otra entidad y todo esto lo vamos a unir mediante a los ID de cada entidad
Cuarta forma normal (4FN):
* Cumple 1FN, 2FN y 3FN los campos multivaluados se identifican por una clave unica
Luego de aplicar la cuarta forma: Esto significa que a materias la vamos a separar nuevamente por que es un campo que tiene multivalores. Esto tambien aplica de esta forma por que en la vida real pueden existir muchas materias que tengan que ver con varios o pocos alumnos dependiendo del contexto, pero lo importante es que las materias como tal son entidades separadas a atributos por eran de multivalor.
IMPORTANTE Aunque parezca que estos pasos realizados son como mas rebuscados o sin mucho sentido, la finalidad de es que nuestro ordenador tenga una mejor ordenamiento de los datos que le vamos a pasar para tener un mayor tiempo de respuesta y nosotros como desarrolladores tener una jerarquia para un mejor orden del proyecto y evaluacion.
David Gustavo Lopez Figueroa
ALEJANDRO ESPINAL RESTREPO
Creí que era el único
Chantal Danielle Barreaux Palma
A quienes estén comenzando a estudiar los conceptos de normalización, les recomiendo ver este video https://www.youtube.com/watch?v=bO18omSzeR4
Carolina Londoño
Hola, excelente aporte, mil gracias.
Juan Esteban Bolívar Ferrer
Gracias por la recomendación
Pablo Tachella
Como de costumbre fui tomando capturas de los videos y tomando apuntes para llegar a este punto y ver que no era necesario jajaja Excelente contenido!
Mis apuntes hasta el momento.
1.- Determinar el problema a solucionar, la finalidad y los requerimientos. Antes de comenzar un proyecto de Base de datos, es importante, determinar el eje a seguir para el diseño, ya que estas nos marcarán las pautas para tener un buen resultado.
2.- Modelado de Entidades La idea es que se identifiquen los objetos de la base de datos, llamadas entidades. Para el modelado de la base de datos se propone utilizar el “modelado de objetos”, ya que, la técnica propone una forma abstracta de pensamiento acerca de problemas a resolver, empleando conceptos del mundo real, y no conceptos técnicos informáticos. En el proyecto se pueden identificar varios objetos que se relacionan y establecen un flujo de información, estos objetos se llegaran a transformar en tablas bidimensionales, las cuales son el fundamento de este tipo de base de datos relacional.
++A.- Definir entidades.++ Recordemos que las Entidades, son objetos o cosas que existen en nuestro alrededor, pensando en el proyecto ¿qué objetos intervienen en el proceso del proyecto? Estos objetos surgen identificando todos los actores que tienen el proceso, posteriormente identifique las relaciones que tiene cada uno, sus responsabilidades, y el papel que tiene en el proceso.
++B.- Definir los atributos++ Recordemos que los objetos tienen apartados que son: identificador, atributos y métodos. Productos Toda entidad tiene atributos que la describen, siendo el atributo las características de la Entidad. . 3.- Modelado Relacional. Prototipo de BD sin normalizar. Ahora bien, para el modelado ER, vamos a retomar las entidades, con sus respectivos atributos. En este paso hacemos énfasis en las relaciones de las entidades, mediante la cardinalidad, entendida por la cantidad de relaciones que tienen los objetos. Para comprender la necesidad del proyecto se debe leer detenidamente y ver cómo interactúan los objetos y relaciones de conjuntos, delimitando la asociación. Además, en el modelo ER, se utilizan figuras de relación y se hace uso de las claves principales y las claves foráneas.
++A) Diagrama E/R++ Diagrama de entidad- interrelación (E/R) perite representar gráficamente la estructura lógica de una base de datos. Para poder guiarnos y entender de mejor forma la base de datos a realizar. Figuras: • Rectángulos: entidades • Elipsis: Atributos • Rombos: Interrelaciones • Líneas: enlazan los atributos a entidades, atributos a interrelaciones y entidades a interrelaciones.
++B) Cardinalidades++ La razón de cardinalidad, expresa el numero de entidades a las que otra entidad puede estar asociada por medio de una interrelación. Existen los siguientes tipos:
• Uno a uno (1:1). • Uno a varios (1:N). • Varios a uno (N:1) o la simétrica de la anterior. • Varios a varios o muchos a muchos (N:M).
**4.- Base de datos Normalizada ** Continuamos con el paso de normalizar, ¿pero ¿qué es normalizar? Para mejorar el desempeño de una base de datos, así como evitar redundancia en la información que contiene y en consecuencia, generar condiciones para un mejor diseño, se debe conocer las formas de normalización. La normalización de datos es el proceso que permite refinar la construcción de modelos relacional con el objetivo de minimizar la redundancia de datos mediante ciertas normas y restricciones con el fin de evitar futuros problemas cuando nuestra base de datos sea mayor. Su principal objetivo es reducir la redundancia de datos y simplificar las dependencias entre columnas, aplicándose de manera acumulativa.
Aplicación de Normalización ++a) Convertirlas en Tablas++ El modelado relacional, se deberá convertir en tablas, la siguiente imagen muestra las partes que la integran.
++b) Realizar algunos registros++ Para ayudarse a visualizar mejor los casos en los que estamos cayendo en redundancias, sirve hacer ejemplos de los registros, de esta manera nos podemos percatar en las situaciones donde tendremos problemas con la estructura de nuestra base de datos.
++c) Aplicaremos las reglas de Normalización++ ----1FN: El valor de una columna debe ser una entidad atómica, indivisible, excluyendo así las dificultades que podría conllevar el tratamiento de un dato formado de varias partes.
----2FN: Una tabla se encuentra en 2FN cuando está en 1FN y no contiene dependencias parciales. Por consiguiente, una tabla 1FN automáticamente está en 2FN si su clave primaria está basada solamente en un atributo simple. Una tabla en 2FN aún puede contener dependencias transitivas.
----3FN: Cumple con la 1FN y 2FN y los campos que NO son clave, NO deben tener dependencias. Se debe seguir analizando la estructura de las tablas, para evitar que no haya registros con campos no dependientes.
----4FN: Cumple 1FN, 2FN, 3FN y los campos multivaluados se identifican por una clave única.
La normalización se emplea para hacer mas entendible los datos y para ello hay que entender y comprender el contexto general. Se debe tener presente los siguientes conceptos
EJEMPLO
digamos que tienes una hoja de Excel con los datos Básicos de los estudiantes y los pagos que han realizado
Ahora que estas aprendiendo Base de Datos sabes que esto no es Optimo y quieres normalizar y estructurar tus datos de forma adecuada 1. Entender La naturaleza de mis datos
2. Normalizando mis Datos las formas normales en la práctica se suelen aplicar en conjunto 2.1. Asignación del Identificador
2.2. Aplicando 1FN, 2FN,3FN Y 4FN ya teniendo separadas las 2 ENTIDADES puedo realizar su respectiva normalización 2.2.1 Normalizando ENTIDAD ESTUDIANTES Aquí podemos observar que el nombre del estudiante esta contenido en un solo CAMPO y lo adecuado es tenerlo separado
espero sea de utilidad este aporte, saludos!!