Introducción a los Modelos de Datos (MD)
Definición y Tipos de MD
Los Modelos de Datos (MD) son mecanismos utilizados por los Sistemas de Gestión de Bases de Datos (SGBD) para ocultar los detalles de almacenamiento y gestión de datos a los usuarios no administradores. Los MD respetan tres niveles de abstracción: interno, conceptual y externo. Permiten describir la estructura de la base de datos (BD), los tipos de datos, las interrelaciones entre los datos y las restricciones de los datos.
Existen tres tipos principales de MD:
- Alto Nivel (Conceptual): Basados en constructores cercanos al usuario final, como entidades, atributos y relaciones. Ejemplos: Modelo Entidad-Relación (E/R) y UML.
- Representacional: Basados en conceptos similares al almacenamiento en disco, pero fáciles de entender para los usuarios. El más común es el Modelo Relacional.
- Bajo Nivel: Cercanos a los detalles de implementación, como árboles B+, estructuras hash e índices.
Aspectos Estáticos y Dinámicos de los MD
Los MD tienen dos aspectos principales:
- Estático: Describe la estructura de la base de datos (esquema) y no debería cambiar con frecuencia.
- Dinámico: Describe los datos almacenados en un momento dado (instancias u ocurrencias) y puede cambiar con el tiempo.
Limitaciones de los MD
Los MD tienen limitaciones en ambos aspectos:
- Estático: No pueden representar todas las restricciones inherentes o semánticas de los datos.
- Dinámico: Los datos admitidos están restringidos por el MD y los operadores disponibles.
Sistemas de Gestión de Bases de Datos (SGBD)
Ventajas de los SGBD frente a los Sistemas de Ficheros (SF)
Los SGBD ofrecen varias ventajas sobre los SF:
- Mayor independencia de los datos.
- Mayor disponibilidad y eficiencia en la gestión de datos.
- Mayor coherencia y normalización de la información.
- Mayor seguridad y control de acceso.
- Acceso más rápido y sencillo a los datos.
- Facilidad para compartir datos.
- Adaptabilidad a cambios en los requisitos.
Funciones de los SGBD
Los SGBD realizan cuatro funciones principales:
- Descripción: Permite definir la estructura de la BD utilizando un Lenguaje de Definición de Datos (DDL).
- Manipulación: Permite consultar y actualizar los datos utilizando un Lenguaje de Manipulación de Datos (DML).
- Control: Ofrece interfaces de usuario y procedimientos para administrar la BD, incluyendo seguridad y control de acceso.
- Transacciones: Permite especificar y gestionar transacciones utilizando un Lenguaje de Control de Transacciones (TCL).
Tecnologías de Bases de Datos
Object-Relational Mapping (ORM)
Los ORM son frameworks que simulan una BD orientada a objetos para programadores que utilizan una BD relacional. Ejemplo: Django.
Object-Relational Impedance Mismatch
Describe las diferencias entre los SGBD relacionales y los lenguajes de programación orientados a objetos, lo que causa dificultades de comunicación y sincronización.
Agregaciones de Datos en NoSQL
Las BD NoSQL permiten realizar agregaciones de datos de manera eficiente y escalable, utilizando un enfoque distribuido en paralelo.
Escalabilidad de los SGBD
Los SGBD tradicionales tienen problemas de escalabilidad debido a su diseño centralizado y estructura rígida.
Modelos de BD NoSQL
Existen varios modelos de BD NoSQL:
- Documento: La agregación tiene una estructura definida.
- Clave-Valor: El contenido de las agregaciones es opaco para el SGBD.
- Familia de Columnas: Las vistas permiten controlar y facilitar el acceso a los datos.
- Maestro-Esclavo: Replica información en varios nodos para mejorar la disponibilidad y el rendimiento.
Sharding vs. Replicación entre Pares
El sharding divide los datos en varios servidores, mientras que la replicación entre pares crea una red de servidores que admiten lecturas y escrituras.
BD como Integradoras de Aplicaciones
Las BD pueden centralizar la gestión de datos de diferentes aplicaciones, pero esto presenta limitaciones de complejidad, dependencia y rendimiento.