Sistemas de Gestión de Bases de Datos (SGBD): Conceptos, Arquitecturas y Modelos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 9,15 KB
Objetivos de un SGBD
Los Sistemas de Gestión de Bases de Datos (SGBD) están diseñados con varios objetivos clave en mente, todos orientados a proporcionar una gestión eficiente y segura de los datos:
- Diseño y utilización orientada al usuario: Facilitar el acceso y la manipulación de los datos de forma intuitiva.
- Centralización: Gestionar todos los datos desde un único punto, evitando la dispersión.
- Evitar la redundancia: Minimizar la duplicación de datos para ahorrar espacio y mantener la consistencia.
- Gestionar la concurrencia: Permitir que múltiples usuarios accedan y modifiquen los datos simultáneamente sin conflictos.
- Mantener la integridad semántica de los datos: Asegurar que los datos sean precisos y consistentes con las reglas del negocio.
- Mantener la seguridad: Proteger los datos contra accesos no autorizados y modificaciones indebidas.
- Mantener la fiabilidad del sistema: Garantizar que el sistema sea resistente a fallos y pueda recuperarse de ellos.
Sublenguajes de una Base de Datos (DSL)
Los SGBD utilizan diferentes sublenguajes para interactuar con la base de datos:
- DDL (Data Definition Language): Se utiliza para definir la estructura de la base de datos (tablas, columnas, tipos de datos, etc.).
- DML (Data Manipulation Language): Permite realizar operaciones sobre los datos, como insertar, actualizar, eliminar y consultar registros.
- DCL (Data Control Language): Se utiliza para controlar el acceso a los datos y gestionar los permisos de los usuarios.
- Lenguaje anfitrión: Lenguajes de programación como C/C++, Java, que se utilizan para desarrollar aplicaciones que interactúan con la base de datos.
El acoplamiento entre el lenguaje anfitrión y el lenguaje de datos puede ser:
- Débilmente acoplado: La interacción se realiza a través de una API o un driver (por ejemplo, JDBC en Java).
- Fuertemente acoplado: El código SQL se integra directamente en el código fuente del lenguaje anfitrión, y un preprocesador se encarga de separarlo y traducirlo a llamadas a la API.
Funciones del Administrador de la Base de Datos (DBA)
El administrador de la base de datos (DBA) es responsable de diversas tareas cruciales:
- Elaboración del esquema conceptual.
- Decisión sobre la estructura de almacenamiento en el nivel interno.
- Conexión con los usuarios y gestión de sus necesidades.
- Definición de las restricciones de integridad.
- Definición e implementación de la política de seguridad.
- Definición e implementación de la estrategia de recuperación frente a fallos.
- Optimización del rendimiento y monitorización del SGBD.
Tipos de Arquitecturas de SGBD
Existen diferentes arquitecturas para los SGBD:
- Centralizada: Todos los datos y la lógica de la aplicación residen en un único servidor.
- Distribuida: Los datos y/o la lógica de la aplicación se distribuyen en múltiples servidores.
- Cliente/servidor: La aplicación se divide en dos partes: el cliente (que se ejecuta en la máquina del usuario) y el servidor (que gestiona la base de datos).
- Arquitectura de tres capas: Similar a la arquitectura cliente/servidor, pero con una capa intermedia adicional (capa de aplicación) que gestiona la lógica de negocio.
Métodos de Acceso a la Base de Datos
Existen dos categorías principales de métodos de acceso:
Métodos Secuenciales
- Secuencial: Se recupera una página de disco y se busca el registro secuencialmente dentro de la página.
- Indexado: Se utiliza un fichero índice que contiene registros con el campo clave y un puntero al registro completo.
- Índices no densos: El índice contiene una entrada por cada bloque del fichero de datos, lo que acelera la búsqueda.
- Índices jerárquicos o multinivel: Se utilizan varios ficheros de índices enlazados entre sí.
- Indexación por árboles: Los índices se organizan en estructuras de árbol balanceado (por ejemplo, árboles B+).
Métodos Directos
Se calcula la ubicación del registro mediante una fórmula matemática (función hash). El principal problema son las colisiones (cuando dos claves diferentes generan la misma ubicación). Las soluciones incluyen:
- Hashing básico: Asignar más espacio a las zonas con más colisiones.
- Hashing dinámico: Las zonas de almacenamiento crecen a medida que se ubican los registros.
Modelos de Datos Implementables
- Modelo Jerárquico: Los datos se organizan en una estructura de árbol. Presenta problemas con las relaciones de muchos a muchos (redundancia) y es complejo de programar. Los registros secundarios dependen de los primarios.
- Modelo de Red: Las instancias se representan como grafos. También es complejo de programar debido a los enlaces entre registros.
- Modelo Relacional: Los datos se organizan en tablas (relaciones). Es el modelo más utilizado en la actualidad.
Modelo Relacional
Características clave del modelo relacional:
- No hay un orden predefinido ni en las tuplas (filas) ni en los atributos (columnas).
- No hay tuplas repetidas.
- El esquema de toda relación incluye una clave primaria.
- Los valores de los atributos son atómicos (no se pueden subdividir).
Reglas de integridad:
- Específicas: Dependen de la semántica de cada atributo.
- Genéricas:
- Integridad de entidad: La clave primaria no puede contener valores nulos.
- Integridad referencial: Los valores de una clave externa deben existir como valores de la clave primaria de la tabla a la que hace referencia.
Álgebra Relacional
El álgebra relacional es un lenguaje formal para manipular relaciones. Algunas operaciones importantes son:
- Reunión (Join): Combina tuplas de dos relaciones basándose en un criterio de igualdad entre atributos. Formato:
proyecta atributo (selecciona igualdad de atributos entre tablas (tabla1 x tabla2))
. - Reunión Natural (Natural Join): Similar a la reunión, pero elimina las columnas duplicadas resultantes de la igualdad de atributos.
- Intersección:
r - (r - s)
. - División: El atributo a mostrar debe proyectarse en la primera parte de la operación.
Reglas de Codd
Edgar F. Codd definió 12 reglas (más la regla 0) que debe cumplir un SGBD para ser considerado relacional:
- Representación de la información: Toda la información se representa de forma explícita y única a nivel lógico mediante valores en tablas.
- Acceso garantizado: Se puede acceder a cualquier dato mediante el nombre de la tabla, el nombre de la columna y el valor de la clave primaria.
- Tratamiento sistemático de valores nulos: El SGBD debe soportar valores nulos de forma consistente.
- Catálogo dinámico en línea: La descripción de la base de datos (metadatos) se representa en el mismo modelo relacional y se puede consultar utilizando el mismo lenguaje.
- Sublenguaje de datos completo: Debe existir al menos un lenguaje relacional que permita definir, manipular y controlar la base de datos.
- Actualización de vistas: Las vistas (consultas que se comportan como tablas) deben ser actualizables si teóricamente es posible.
- Inserción, modificación y borrado de alto nivel: El lenguaje debe soportar operaciones de conjunto (no solo registro a registro).
- Independencia física de los datos: Los cambios en la estructura física de almacenamiento no deben afectar a las aplicaciones.
- Independencia lógica de los datos: Los cambios en el esquema lógico (por ejemplo, añadir una columna) no deben afectar a las aplicaciones, siempre que no se eliminen datos que estas utilicen.
- Independencia de la integridad: Las restricciones de integridad se deben poder definir y almacenar en el catálogo, no en las aplicaciones.
- Independencia de la distribución: La distribución de la base de datos (si la hay) debe ser transparente para las aplicaciones.
- No subversión: Si el SGBD proporciona un lenguaje de bajo nivel (por ejemplo, acceso registro a registro), este no debe poder saltarse las reglas de integridad definidas en el lenguaje relacional.