Sistema gestor de bases de datos (SGBD)

¿Quieres saber qué es un sistema gestor de bases de datos? ¿Cuáles son las funciones y componentes de los sistemas gestores de bases de datos? ¿Qué tipos de sistemas gestores existen? Pues adelante, sigue leyendo que te voy a contar todo en detalle.

Esto es todo lo que vas a encontrar en este artículo:

¿Qué es un sistema gestor de bases de datos (SGBD)?
Funciones de un SGBD
Componentes de un SGBD
Usuarios de un SGBD
Tipos de SGBD
SGBD comerciales y libres

¿Qué es un sistema gestor de bases de datos?

Un sistema gestor de bases de datos o SGBD es una aplicación que permite a los usuarios definir, crear y mantener la base de datos y proporciona acceso controlado a la misma.

Básicamente, podríamos decir que actúa como interfaz entre el usuario y las bases de datos.

Fíjate en el siguiente esquema. La base de datos es el centro de todo y no interactua de forma directa ni con las aplicaciones ni con los usuarios finales.

Imagina una situación real, por ejemplo una tienda online. En ese escenario los usuarios interactuan de forma directa con la web que, en este caso, sería la aplicación. Los productos de la tienda están almacenados en la base de datos, por tanto la aplicación necesita acceder a ellos, pero no lo hace de forma directa, es el SGBD el encargado de realizar esta tarea. Actúa como capa intermedia entre la base de datos y la aplicación.

Existen otros escenarios en los que los usuarios también interactuan de forma directa con el SGBD, por ejemplo el administrador de la base de datos.

Niveles de abstracción

Los sistemas gestores cumplen con el estándar de 3 niveles de abstracción (externo, lógico y físico) establecidos por el ANSI-SPARC:

El nivel físico es el más interno. En este nivel se describe la estructura física de la base de datos: ficheros, directorios, discos, etc.

En el nivel lógico se describe la estructura de la base de datos de una forma conceptual centrándose en componentes como las tablas, atributos, restricciones, etc.

Por último, el nivel externo es el que está en contacto directo con los usuarios y las aplicaciones. Describe como son los esquemas externos o vistas correspondientes a cada grupo de usuarios.

La arquitectura en tres niveles garantiza la independencia física y lógica de los datos de forma que si se modifica el esquema en uno de los 3 niveles no afectará a los otros dos.

Objetivos

Todos los sistemas gestores tienen los mismos objetivos:

  • Agrupar los tres niveles de abstracción: físico, lógico y externo.
  • Permitir la independencia física y lógica de los datos.
  • Garantizar la consistencia de los datos.
  • Ofrecer seguridad de acceso.
  • Gestión de transacciones: conjunto de operaciones relacionadas tratadas como una sola.
  • Permitir la concurrencia de usuarios garantizando la integridad de datos.

Funciones del sistema gestor de bases de datos (SGBD)

A pesar de la gran variedad de sistemas gestores que existen en el mercado, podemos identificar una serie de funciones comunes a todos ellos:

  • Recuperar y modificar los datos almacenados en los ficheros internos de la base de datos de forma trasparente para el usuario.
  • Proporcionar un catálogo o diccionario de datos
  • Garantizar la integridad de los datos
  • Gestionar los accesos concurrentes
  • Recuperación de datos

Estas funciones deben garantizar que se cumplen los objetivos indicados en el apartado anterior.

Proporcionar un catálogo o diccionario de datos

El diccionario de datos almacena las descripciones de los datos (metadatos) y debe estar disponible para los usuarios.

En la siguiente sección te explico qué es un diccionario de datos con más detalle.

Garantizar la integridad de los datos

Una de las funciones que permiten al sistema gestor garantizar la integridad de los datos es la gestión de transacciones.

El sistema gestor debe disponer de un mecanismo que garantice que todas las operaciones de una transacción se realicen o que, en caso de fallo, no se realice ninguna.

Imagina este escenario: Tenemos una base de datos con viviendas y clientes. Supongamos que un cliente compra una vivienda. La transacción completa implica que el cliente pasa a ser propietario de la vivienda (esa sería una operación) y por otro lado, la vivienda deja de estar disponible para la venta (esa sería otra operación). Supongamos que la primera operación se realiza, pero algo falla y la segunda no. El usuario quedaría registrado como propietario de la vivienda, pero esta seguiría estando disponible para que otro usuario la pueda comprar.

Si falla una operación de una transacción y el resto se realizan, la base de datos queda en un estado inconsistente. Hay que deshacer todas las operaciones que sí se han efectuado.

Otra de las funciones que permite al sistema gestor garantizar la integridad de los datos es cumplir las restricciones. Garantizar que los datos almacenados y los cambios que se realizan sobre los mismos cumplen con ciertas reglas (Ej: un equipo no puede tener más de 20 jugadores).

Gestionar los accesos concurrentes

Los accesos concurrentes a la base de datos son muy comunes. Es posible que muchos usuarios intenten realizar operaciones de forma simultanea.

Si se trata de operaciones de lectura no debería suponer un problema, pero cuando se trata de operaciones de escritura pueden surgir conflictos. Es indispensable gestionar estas situaciones para garantizar la consistencia de los datos.

Recuperación de datos

Deben existir mecanismos que permitan recuperar la base de datos en caso de que ocurra algún suceso imprevisto: un fallo hardware o software, transacciones abortadas por el usuario, pérdida de datos, etc.

Si se diese alguna de estas situaciones, un sistema de backup podrá devolver la base de datos a un estado previo estable y consistente .

Componentes de un sistema gestor de bases de datos

Los componentes que conforman el SGBD son los encargados de realizar las funciones indicados en el apartado anterior.

  • Lenguajes de datos
  • Diccionario de datos
  • Objetos
  • Herramientas de administración
  • Optimizador de consultas
  • Gestor de transacciones
  • Planificador (scheduler)
  • Copias de seguridad

Lenguajes de datos

Todo sistema gestor debe disponer de lenguajes para la manipulación de datos, tanto a nivel de acceso y modificación, como a nivel de control y seguridad.

Hay tres tipos de lenguaje según su funcionalidad: Lenguaje de definición de datos, lenguaje de control de datos y lenguaje de manipulación de datos.

  • DDL (Lenguaje de definición de datos): Permite crear, eliminar y modificar las estructuras de la base de datos (tablas, índices, relaciones y restricciones)
  • DCL (Lenguaje de control de datos): Permite especificar los permisos sobre los objetos de la base de datos así como la creación y eliminación de usuarios.
  • DML (Lenguaje de manipulación de datos): Permite la inserción, actualización, eliminación y consulta de los datos en las tablas.

El lenguaje SQL engloba los tres lenguajes. Te hablaré de él más adelante en otro artículo.

Diccionario de datos

El diccionario de datos está compuesto por un conjunto de esquemas que describen el contenido del SGBD, incluyendo los distintos objetos y sus propiedades:

  • Nombre, tipo y tamaño
  • Relaciones entre datos
  • Restricciones de integridad
  • Usuarios autorizados
  • Estadísticas de utilización

Como ya mencioné anteriormente el diccionario de datos es accesible por los usuarios.

Objetos

Todos los sistemas gestores disponen de una serie de objetos que permiten la definición y manipulación de los datos:

  • Tablas base y vistas
  • Consultas
  • Dominios y tipos definidos de datos
  • Restricciones de tabla y dominio y aserciones
  • Funciones y procedimientos almacenados
  • Disparadores (triggers)

Herramientas de administración

Todo sistema gestor dispone de un conjunto de herramientas (algunas integradas y otras de terceros) que permiten cubrir diferentes tareas:

  • Seguridad
  • Integridad
  • Control de concurrencia
  • Control de recuperación
  • Gestión de diccionario de datos
  • Programación de aplicaciones
  • Importación y exportación de datos
  • Distribución de datos
  • Replicación
  • Sincronización

Optimizador de consultas

El lenguaje de manipulación de datos (DML) es el que nos permite realizar operaciones sobre los datos almacenados en la base de datos. A este tipo de operaciones se las conoce como consultas.

El optimizador de consultas es el encargado de determinar la estrategia más óptima para la ejecución de dichas consultas.

Gestor de transacciones

Como ya mencioné en la sección anterior, a un conjunto de operaciones relacionadas que se ejecutan como una unidad se le conoce con el nombre de transacción. O se ejecutan todas las operaciones o no se ejecuta ninguna.

Vimos que es imprescindible gestionar las transacciones de forma correcta para garantizar la integridad de los datos. Pues de eso se encarga el gestor de transacciones.

Planificador (scheduler)

Imagina que tienes una tienda online y quieres que todos los días a las 00:00 se calcule el importe total de todos los productos vendidos durante el día. ¿Harías esta tarea a mano cada día?

El SGBD dispone de una herramienta que permite programar y automatizar la ejecución de ciertas tareas. Simplemente hay que especificar qué queremos hacer y cuando y el planificador se encarga de ejecutarlo.

Copias de seguridad

Gracias al sistema de backup se pueden realizar copias de seguridad periódicas para devolver la base de datos a un estado consistente en caso de fallo.

Usuarios de un sistema gestor de bases de datos

Administradores

Trabajan en el nivel físico relacionado con el almacenamiento.

Se puede distinguir entre administradores del sistema y administradores de la base de datos.

  • Administradores del sistema: Instalación, configuración, control de acceso, seguridad, monitorización y optimización.
  • Administradores de la base de datos: Diseño físico, implementación y mantenimiento de la base de datos.

Diseñadores

Realizan el diseño lógico de la base de datos.

Identifican los datos, las relaciones entre ellos y las restricciones.

Debe tener conocimiento sobre los datos de la empresa y sus reglas de negocio.

El diseño lógico es independiente del SGBD, de los lenguajes de programación y de las aplicaciones.

Programadores

Implementan aplicaciones, rutinas almacenadas o disparadores que interactúan directamente con la base de datos y sirven de interfaz para los usuarios finales.

Usuarios finales

Interactúan en el nivel externo a través de vistas.

No tienen conocimiento sobre el funcionamiento ni sobre la organización interna de la base de datos.

Pueden no tener conocimientos sobre informática.

Tipos de sistemas gestores de bases de datos (SGBD)

Existen muchas formas de clasificar los sistemas gestores de bases de datos: en función del modelo lógico, por el número de usuarios, por los tipos de datos almacenados, etc.

En la siguiente tabla puedes consultar diferentes tipos de SGBD en función de un criterio de clasificación concreto:

CriterioTipo de SGBD
Modelo lógicoJerárquico
En red
Relacional
Objeto-relacional
Orientado a objetos
Nº de usuariosMonousuario
Multiusuario
Nº de sitiosCentralizado: Un solo servidor
Distribuido: Varios servidores
Ámbito de aplicaciónPropósito general: orientado a toda clase de aplicaciones
Propósito específico: centradas en un tipo específico de aplicaciones
Tipos de datosSistemas relacionales estándar: tipos básicos (int, char, etc.)
XML
Objeto-relacionales: tipos complejos
De objetos
Lenguajes soportadosSQL estándar
NoSQL

Sistemas gestores de bases de datos comerciales y libres

Existen en el mercado gran variedad de SGBD tanto comerciales como libres. 

A la hora de elegir entre comercial o libre debes tener en cuenta cuál se adapta mejor a las necesidades del proyecto y si dispones de personal cualificado.

Comerciales

El código de los mismos no está disponible libremente. Pertenecen a una empresa y hay que pagar por ellos, aunque suelen estar disponibles versiones express gratuitas con funcionalidades limitadas que permiten su evaluación.

Mucho más cerrados y rígidos.

Algunos ejemplos son Oracle o SQL Server.

Libres

Alternativa técnicamente viable y económicamente sostenible.

Libre no significa gratis. El código está disponible, pero algunas empresas ofrecen servicios de mantenimiento y soporte de pago. 

Mucho más flexibles.

Existen comunidades de usuarios que generan grandes cantidades de documentación constantemente actualizada.

Algunos ejemplos son MySQL o PostgreSQL.

Sígueme:

Los comentarios están cerrados.

Subir ↑