miércoles, 15 de julio de 2020

Módulo III: Relaciones y normalización

Tema: Relación entre bases de datos y normalización de datos


Contenido general:

1. Relación entre base de datos.

2. Tipos de relaciones existentes entre bases de datos.
    2.1. Relaciones de uno a uno.
    2.2. Relaciones de uno a muchos.
    2.3. Relaciones de muchos a uno.
    2.4. Relaciones de muchos a muchos.

3. Normalización de datos en una base de datos.
    3.1. Importancia y utilidad.
    3.2. Niveles de normalización (FN1, FN2, FN3).
    3.3. Ejemplo de normalización y aplicación de FN1, FN2, FN3.

Video referente al tema:


1. Relaciones entre bases de datos.

En una base de datos relacionales, las relaciones son asociaciones entre las tablas que se crean utilizando claves únicas  que permiten establecer concordancia y relación entre las entidades o tablas además de que evita la redundancia de datos guardados en tablas y permitir la consulta de datos de forma eficaz y crear informes.

2. Tipos de relaciones existentes entre bases de datos

A la hora de manejar bases de datos es importante saber qué tipos de relaciones pueden presentarse entre dos tablas, estas relaciones se dividen en tres tipos:

2.1. Relaciones de uno a uno: En una relación uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en la tabla B y viceversa. Se crea una relación uno a uno si ambas columnas relacionadas son claves principales o tienen restricciones únicas. Este tipo de relación no es común porque la mayoría de información que está relacionada de esta manera estaría en una tabla.


2.2. Relaciones de uno a muchos: En una relación de uno a muchos, un registro de una tabla se puede asociar a uno o varios registros de otra tabla, por ejemplo, de la tabla clientes, cada cliente puede tener varios pedidos de ventas.

En este ejemplo, el capo de clave principal de la tabla clientes, ID de clientes, se ha diseñado para contener valores únicos. El capo de clave externa de la tabla Pedidos, ID de cliente, se ha diseñado para permitir varias instancias del mismo valor. Esta relación devuelve registros relacionados cuando el valor de campo ID de cliente de la tabla Pedidos es el mismo que el valor del campo ID de cliente de la tabla Clientes.

 


2.3. Relaciones de muchos a uno: Como las relaciones son bidireccionales, además de las relaciones uno a muchos también hay relaciones de muchos a uno, una relación de muchos a uno hace referencia a una tabla o entidad que contiene valores y hace referencia a otra tabla o entidad que tiene valores exclusivos. Las relaciones de muchos a uno con frecuencia son impuestas por las relaciones de clave foránea y clave primaria, y generalmente las relaciones se establecen entre las tablas de hechos y las entidades o tablas de dimensiones y entre los niveles de una jerarquía.

Por ejemplo, suponga que decide enviar un paquete de mercancía de muestra para todas las personas de la tabla [EMPLEADOS]. Usted añade una tabla [Tarifa_Postal] que contiene los códigos postales y la tarifa postal para cada código postal. El uso de esta estructura le permite imprimir las etiquetas para cada persona, incluyendo el valor de enviar el paquete.



El campo Codigo_Postal de la tabla [CODIGOS_POSTALES] es la llave primaria, así que en esta relación, la tabla [Tarifa_Postal] es la tabla Uno. El campo Codigo_Postal en la tabla [EMPRESAS] es la llave foránea para esta relación: en este caso, puede tener valores duplicados para empresas que están en una misma área. La tabla [EMPRESAS] es entonces la tabla Muchos para la relación con la tabla [CODIGOS_POSTALES].

2.4. Relaciones de muchos a muchos: Una relación de muchos a muchos, una fila de la tabla A puede tener muchas filas coincidentes en la tabla B y viceversa. Esta relación se crea definiendo una tercera tabla denominada tabla de conexión. La clave principal de la tabla conexión consta de las claves extranjeras de la tabla A y de la B. Por ejemplo, la tabla “Authors” y la tabla “Titles” tienen una relación de muchos a muchos que se define mediante una relación de uno o varios de cada uno de estas tablas a la tabla “TitleAuthors”. La clave principal de la tabla “TitleAuthors” es la combinación de la columna au_ID (la clave principal de la tabla “Authors”)  y la clumna title_ID (la clave principal de la tabla “Titles”).


3. Normalización de datos en una base de datos: La normalización de datos tiene como propósito organizar los datos de una base de datos, tomando en cuenta la creación de tablas y las reglas que se usan para definir las relación, estas reglas se diseñan para proteger los datos, y para que la base de datos sea flexible con el fin de eliminar redundancia y dependencia de incoherencias.

3.1. Importancia y utilidad: La normalización obtiene gran importancia y tienen utilidad a la hora de administrar los datos presentes en tablas de una base de datos estas son:

3.1.1. Evitar redundancia de datos.

3.1.2. Disminuir problemas a la hora de actualizar los datos en tablas.

3.1.3. Proteger la integridad de los datos.

3.1.4. Facilitar el acceso e interpretación de los datos.

3.1.5. Reducir el tiempo y complejidad de revisión de las bases de datos.

3.1.6. Optimizar el almacenamiento.

3.1.7. Prevenir el borrado indeseado de datos.

3.2. Niveles de normalización: Para normalizar una base de datos existen principalmente 3 reglas, las cuales se deben cumplir para evitar la redundancia en las tablas. A estas reglas se les conoce como “forma normal” que va desde la 1 a la 3 (FN1, FN2, FN3).

3.2.1. Primera Forma Normal (FN1): La primera forma normal significa que los datos están en un formato de entidad, lo que significa que se han cumplido las siguientes condiciones:

                a. Eliminar grupos repetidos en tablas individuales.

                b. Crear una tabla independiente para cada conjunto de datos relacionados.

                c. Identificar cada conjunto de datos relacionados con la clave principal.

3.2.2. Segunda Forma Normal (FN2): La segunda forma normal asegura que cada atributo describe la entidad, crear tablas separadas para el conjunto de valores y los registros múltiples, estas tablas se deben relacionar con una clave externa. Esto significa:

    a. Crear tablas independientes para conjuntos de valores que se apliquen a varios          registros.

                 b. Relacionar estas tablas con una clave externa.

3.2.3. Tercera forma normal (FN3): La tercera forma normal comprueba las dependencias transitivas, eliminando campos que no dependen de las claves principales, Esto es simplemente:

                a. Eliminar los campos que no dependan de la clave.

3.3. Ejemplo de normalización y aplicación de FN1, FN2, FN3:

Se presenta una tabla no normalizada, que contiene estudiantes, Tutor, Habitación y las Clases 1, 2 y 3. Se aplicara la FN1, FN2, FN3.

a. FN1: Al aplicarle la primera forma normal eliminamos los grupos repetidos, quedándonos con una sola columna de clases repitiendo los datos del estudiante, tutor y habitación y ahora no tenemos grupos repetidos porque aplicamos la primera forma normal (FN1).


b. FN2: Al pasar a la segunda forma normal vamos a eliminar los datos redundantes, y para lograrlo vamos a crear dos tablas. Una  tabla se llamara Estudiantes donde eliminaremos los datos redundantes quedándonos con los datos únicos (Estudiante, Tutor y Habitación) y en una segunda tabla que llamaremos Registro para el número de estudiante y las clases que llevara en el ejemplo el estudiante 1606 y 2602 llevara cada uno tres clases. El contenido de la (FN1) Primera Forma Normal que estaba en una tabla ha sido divido en dos tablas para eliminar los datos redundantes e introducirlo a la (FN2) Segunda Forma Normal.

c. FN3: La tercera forma normal comprueba las dependencias transitivas, eliminando campos que no dependen de la clave principal. Para pasar a la tercera forma normal tenemos que eliminar los campos de No Dependen de la Clave y para lograrlo dividimos la tabla estudiante en dos tablas y creamos la tabla Facultad donde trasladaremos la columna habitación que No Depende de la Clave que es la columna estudiante, el nombre del tutor será el enlace con la tabla estudiante aunque también podría ser la columna estudiante.







Fuentes por pregunta:

1. https://docs.microsoft.com/es-es/office/troubleshoot/access/define-table-relationships#:~:text=Una%20relación%20funciona%20haciendo%20coincidir,un%20campo%20de%20otra%20tabla.

2. https://fmhelp.filemaker.com/help/18/fmp/es/index.html#page/FMP_Help%2Fone-to-one-relationships.html%23

https://docs.microsoft.com/es-es/office/troubleshoot/access/define-table-relationships#:~:text=Una%20relación%20funciona%20haciendo%20coincidir,un%20campo%20de%20otra%20tabla.

https://doc.4d.com/4Dv16/4D/16.6/Tipos-de-relaciones.300-4460802.es.html

3. https://ed.team/blog/normalizacion-de-bases-de-datos

http://www.marcossarmiento.com/2017/06/28/normalizacion-de-base-de-datos/


No hay comentarios.:

Publicar un comentario