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/


viernes, 3 de julio de 2020

Modulo II: Bases de datos

Tema: Introducción a las Bases de Datos.

Contenido general:

1. Distintos conceptos de base de datos.

2. Importancia de las bases de datos.

3. Objetivos que debe cumplir una base de datos.

4. Organización de las bases de datos.

5.  Relaciones, entidades, atributos, esquemas, subesquemas.

6.  Tipos de estructura en Base de Datos.


Vídeo del tema a tratar en este modulo:



1. Distintos conceptos de base de datos.

1.1. Una base de datos se entenderá como una colección de datos relacionados entre sí y que tienen un significado implícito.

1.2. Es un conjunto de información relacionada que se encuentra agrupada o estructurada (no confundir con un archivo, ya que por sí mismo no constituye una base de datos, sino más bien la forma en que está organizada la información es la que da origen a la base de datos.).

1.3. Es una colección de datos a la disposición de una o muchas organizaciones en tiempo real combinando los datos de manera que parezcan estar en una sola ubicación (un servidor por ejemplo).

2. Importancia de las bases de datos: La cantidad de datos que se generan a día de hoy es descomunal por tanto el registrar y el acceder de forma correcta estos datos tiene gran importancia, y hoy en día la forma más eficaz de hacerlo es con bases de datos, además de que nos permite ahorrar espacio físico y tiempo de consultar información de ellas.

3. Objetivos que debe cumplir una base de datos: Las bases de datos almacenan información que luego es obtenida con de forma rápida y exacta por las organizaciones que la requieran con el objetivo de que dicha organización use esa información para facilitar la toma de decisiones.

4. Organización de las Bases de Datos: Una base de datos se organiza en campos, registros, archivos, un campo es una pieza de información como por ejemplo: nombre, edad, ciudad, un registro es un conjunto de campos como por ejemplo: registro trabajadores en una empresa, registro de maquinarias que cuenta una empresa, un archivo es una colección de registros como por ejemplo: los archivos del área de una empresa

5.  Relaciones, entidades, atributos, esquemas, subesquemas.

5.1. Relaciones: Son una parte esencial en las bases de datos relacionales, ya que son las que permiten establecer las concordancias, asignaciones y relaciones entre las entidades o tablas, así mismo permite garantizar la integridad referencial de los datos.

5.2. Entidades: Objetos con información descriptiva sobre ellos el cual interesa guardar datos.

5.3. Atributos: Son los que describen la entidad. Se divide en dos grupos:

5.3.1. Identificadores: Identifican de manera única cada instancia.

5.3.2. Descriptores: Identifican las instancias y pueden repetirse.

5.4. Esquemas: Es la descripción de la base de dato, que se especifica durante el diseño de la base de datos y no se espera que cambie con frecuencia. La mayoría de los modelos de datos utilizan ciertas convenciones para mostrar su esquema como diagramas.

5.5. Subesquemas: Son los diferentes esquemas en el nivel de vistas, que describen diferentes vistas de la base de datos. Las vistas se dividen en: nivel externo, nivel conceptual, nivel interno.

6.  Tipos de estructura en Base de Datos.

6.1. Estructura jerárquica: Esta es la estructura que tenían las primeras bases de datos. Las relaciones entre registros forman una estructura en árbol. En esta estructura los datos se organizan en una forma similar a un árbol visto al revés, en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz,  y a los nodos que no tienen hijos se les conoce como hojas (por ser la última parte del árbol).

 

6.2. Estructura en red: Esta estructura contiene relaciones más complejas que las jerárquicas. Admite relaciones de cada registro con varios que se pueden seguir por distintos caminos, en otras palabras, se permite que un mismo nodo tenga varios padres. Esta estructura es una solución eficiente al problema de redundancia de datos.


6.3. Estructura relacional: La estructura relacional es la más extendida hoy en día. Almacena los datos en filas o registros (en matemática, “tuplas”) y columnas o campos (atributos). Estas tablas pueden estar conectadas entre sí por claves comunes. En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia(a diferencia del jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar. La información puede ser recuperada o almacenada mediante “consultas” que ofrecen una amplia flexibilidad y poder para administrar la información.


6.4. Estructura multidimensional: La estructura multidimensional tiene parecidos a la del modelo relacional, pero en vez de las dos dimensiones filas-columnas, tiene N dimensiones. Esta estructura ofrece el aspecto de una hoja de cálculo.

 

6.5. Estructura orientada a objetos: La estructura orientada a objetos está diseñada siguiendo el paradigma de los lenguajes orientados a objetos, tales como Encapsulación (propiedad que permite ocultar información al resto de objetos), herencia (propiedad que hace que los objetos hereden comportamientos dentro de una jerarquía de clases), polimorfismo (propiedad de  una operación mediante la cual puede ser aplicada a distintos tipos de objetos). De este modo soporta los tipos de datos gráficos, imágenes, voz y texto de manera natural. Esta estructura tiene gran difusión en aplicaciones web para aplicaciones multimedia.

 


 

Fuentes:

1. https://www.monografias.com/trabajos7/bada/bada.shtml

https://gestionbasesdatos.readthedocs.io/es/latest/Tema1/Teoria.html

2. https://prezi.com/wmtnk8zil6qp/la-importancia-de-las-bases-de-datos-en-la-actualidad/?fallback=1

5. https://www.ecured.cu/Bases_de_datos

https://www.jairogaleas.com/relaciones-en-bases-de-datos/

https://senati.cld.bz/89001621-FUNDAMENTO-DE-BASE-DE-DATOS/28/#zoom=z

6. https://gestionbasesdatos.readthedocs.io/es/latest/Tema1/Teoria.html

https://www.ecured.cu/Bases_de_datos