Fundamentos de Sistemas de Archivos y Bases de Datos: Conceptos Clave y SGBD
Clasificado en Informática
Escrito el en español con un tamaño de 7,59 KB
Sistemas de Archivos Tradicionales
Surgen de la necesidad de almacenar datos de forma persistente para su reúso.
Desventajas
- Redundancia de datos.
- Difícil integración de datos provenientes de diferentes archivos.
- Costos elevados para la propagación de cambios.
- Costoso si se requiere cambiar la estructura de los archivos.
- Alto riesgo de inconsistencia de datos.
Sistemas de Bases de Datos (SBD)
Nacen para solucionar los problemas inherentes a los sistemas de archivos tradicionales.
Capacidades Fundamentales
- Manejo eficiente de la persistencia de los datos.
- Soporte para uno o más modelos de datos (relacional, orientado a objetos, etc.).
- Soporte para un lenguaje de consulta estándar como SQL.
- Control de acceso y seguridad de los datos.
- Mecanismos para evitar inconsistencias.
Conceptos Clave de Bases de Datos
Base de Datos (BD)
Conjunto de datos interrelacionados y estructurados, almacenados en algún medio accesible, diseñados para múltiples propósitos y aplicaciones.
Esquema de la BD
Describe la estructura lógica de la base de datos (tablas, relaciones, restricciones) requerida por la organización.
Instancia de la BD
Representa los datos concretos que contiene la BD en un instante determinado de tiempo.
Roles de Usuario en Bases de Datos
Usuario Final
Persona que interactúa con la base de datos a través de aplicaciones (Apps) para realizar consultas o manipular datos, sin necesidad de conocer los detalles técnicos.
Usuario Especialista
Profesional (desarrollador, analista) que diseña, desarrolla y programa las aplicaciones que interactúan con la BD para los usuarios finales.
Administrador de Base de Datos (DBA)
Responsable de la administración general de la BD, incluyendo diseño, implementación, seguridad, respaldo, recuperación y optimización del rendimiento.
Sistema Gestor de Bases de Datos (SGBD)
Es un sistema computarizado (software) que permite la creación, gestión y mantenimiento de bases de datos. Actúa como un conjunto de programas que sirve de interfaz entre los usuarios (finales, especialistas, DBA), los datos almacenados y los programas de aplicación. Interactúa directamente con el sistema operativo para la gestión del almacenamiento.
Funcionalidades Principales
- Soporte de Lenguajes:
- DDL (Data Definition Language): Lenguaje para definir y crear los esquemas de la base de datos (ej.
CREATE TABLE
). - DML (Data Manipulation Language): Lenguaje para la inserción, actualización, consulta y borrado de datos (ej.
SELECT
,INSERT
,UPDATE
,DELETE
). - DCL (Data Control Language): Lenguaje para la gestión de usuarios, asignación y revocación de permisos y control de acceso (ej.
GRANT
,REVOKE
).
- DDL (Data Definition Language): Lenguaje para definir y crear los esquemas de la base de datos (ej.
- Gestión de Transacciones: Permite agrupar varias operaciones (consultas, actualizaciones, borrados) en una unidad lógica de trabajo que se ejecuta de forma completa o no se ejecuta en absoluto.
- Recuperación ante Fallos: Proporciona mecanismos para restaurar la base de datos a un estado consistente después de un fallo (hardware, software, sistema) y para deshacer transacciones incompletas (rollback).
- Manejo de Respaldos (Backups): Facilita la creación de copias de seguridad de la base de datos para su posterior recuperación.
- Independencia de los Datos: Abstrae a los usuarios y aplicaciones de los detalles físicos de almacenamiento (independencia física) y permite cambios en el esquema conceptual sin afectar necesariamente a todas las aplicaciones (independencia lógica).
Propiedades ACID
Garantías fundamentales que un SGBD ofrece para las transacciones:
- Atomicidad (Atomicity): Una transacción se ejecuta completamente o no tiene ningún efecto.
- Consistencia (Consistency): Una transacción lleva a la base de datos de un estado válido a otro estado válido.
- Aislamiento (Isolation): Las transacciones concurrentes no interfieren entre sí; cada una percibe la base de datos como si se ejecutara sola.
- Durabilidad (Durability): Una vez que una transacción ha sido confirmada (commit), sus cambios persisten incluso si ocurren fallos del sistema.
Componentes Internos del SGBD
- Optimizador de Consultas: Analiza las consultas DML y define el plan de ejecución más eficiente para acceder a los datos.
- Manejador de Transacciones: Controla la ejecución concurrente de las transacciones, asegurando las propiedades ACID, especialmente el aislamiento y la atomicidad.
- Manejador de Almacenamiento (o de Archivos): Interactúa con el sistema operativo para leer y escribir los datos solicitados desde/hacia el disco durante la ejecución de una transacción.
- Gestor de Buffer (Buffer Manager): Mantiene en la memoria principal (RAM) las páginas de datos más frecuentemente usadas para acelerar el acceso, gestionando la transferencia entre disco y memoria.
Ventajas de usar un SGBD
- Facilita el reúso de datos y programas de aplicación.
- Control de la redundancia de datos.
- Promueve la estandarización en la definición y acceso a los datos.
- Proporciona mecanismos robustos de seguridad y control de acceso.
- Gestiona la concurrencia, permitiendo el acceso simultáneo de múltiples usuarios.
- Permite equilibrar la carga de los diferentes requerimientos de los usuarios y aplicaciones.
- Asegura la integridad de los datos mediante restricciones.
- Acelera la rapidez en el desarrollo de aplicaciones basadas en datos.
Desventajas de usar un SGBD
- Tamaño considerable del software del SGBD.
- Susceptibilidad a fallos centralizados: un fallo en el SGBD puede afectar a todos los usuarios y aplicaciones.
- Complejidad inherente en la configuración, administración y recuperación ante fallos.
- Posible lentitud en comparación con sistemas de archivos dedicados, debido a la sobrecarga por las verificaciones de seguridad, integridad y concurrencia.
Tendencias Actuales en Bases de Datos
- Manejo de datos georreferenciados (GIS).
- Soluciones para Big Data (bases de datos NoSQL, distribuidas).
- Bases de datos optimizadas u orientadas a dispositivos móviles.
- Soporte nativo para XML y otros formatos semiestructurados.
- Bases de datos deductivas (con capacidades lógicas).
- Bases de datos temporales (manejo de la evolución de los datos en el tiempo).
- Bases de datos multimediales (almacenamiento y consulta de imágenes, audio, video).