Gestor de base de datos
El gestor o sistema de administración de base de datos (DBMS por sus siglas en inglés), es el software que maneja todo acceso a la base de datos. De manera conceptual, lo que sucede es lo siguiente:
- Un usuario emite una petición de acceso, utilizando algún sublenguaje de datos específico (por ejemplo SQL).
- El DBMS intercepta esa petición y la analiza.
- El DBMS inspecciona las versiones objeto del esquema externo para ese usuario, la transformación externa/conceptual correspondiente, el esquema conceptual, la transformación conceptual/interna y la definición de la estructura de almacenamiento.
- El DBMS ejecuta las operaciones necesarias sobre la base de datos almacenada.
Elementos del gestor de base de datos:
- Definición de datos. El DBMS debe ser capaz de aceptar definiciones de datos. En otras palabras, el DBMS debe incluir entre sus componentes un procesador DDL, o compilador DDL, para cada uno de los diversos DDLs (lenguajes de definición de datos). El DBMS también debe “entender” definiciones DDL, en el sentido que, por ejemplo, “entienda” que los registros externos como EMPLEADO incluyen un campo SALARIO; entonces, debe poder utilizar este conocimiento para analizar y responder a las peticiones de manipulación de datos (por ejemplo: obtener todos los empleados con salario < $50,000).
- Manipulación de datos. El DBMS debe ser capaz de manejar peticiones para recuperar, actualizar o eliminar datos existentes en la base de datos o agregar nuevos datos a ésta. En otras palabras, el DBMS debe incluir un componente procesador DML o compilador DML para tratar con el DML (lenguaje de manipulación de datos)
- Optimización y ejecución. Las peticiones DML deben ser procesadas por el componente optimizador cuya finalidad es determinar una forma eficiente de implementar la petición. El administrador en tiempo de ejecución recurrirá probablemente a algún tipo de administrador de archivos para acceder a los datos almacenados.
- Seguridad e integridad de los datos. El gestor de base de datos debe vigilar las peticiones del usuario y rechazar todo intento de violar las restricciones de seguridad y de integridad definidas por el DBA (administrador de la base de datos). Estas tareas pueden realizarse durante el tiempo de compilación, de ejecución o entre ambos.
- Recuperación de datos y concurrencia. El DBMS u otro componente de software relacionado, denominado comúnmente administrador de transacciones o monitor de procesamiento de transacciones (monitor PT) debe imponer ciertos controles de recuperación y concurrencia
- Diccionario de datos. El DBMS debe proporcionar una función de diccionario de datos. Este diccionario puede ser visto como una base de datos por derecho propio (aunque una base de datos del sistema, no una base de datos del usuario). El diccionario contiene “datos acerca de los datos” (en ocasiones llamados metadatos o descriptores); es decir, definiciones de otros objetos del sistema, en lugar de simples “datos en bruto”. En particular, todos los diversos esquemas y transformaciones (externos, conceptuales, etcétera) y todas las diversas restricciones de seguridad y de integridad, serán almacenadas en el diccionario, tanto en forma fuente como objeto. Un diccionario extenso incluirá además mucha información adicional; mostrará por ejemplo qué programas utilizan qué partes de la base de datos, qué usuarios necesitan qué informes, etcétera. El diccionario podría incluso —y de hecho, debería— estar integrado dentro de la base de datos que define, e incluir por lo tanto su propia definición. En realidad, debe ser posible consultar el diccionario del mismo modo que cualquier otra base de datos, de manera que, por ejemplo, sea posible saber qué programas o usuarios se podrían ver afectados por un cambio propuesto al sistema.
- Sobra decir que el DBMS debe realizar todas las tareas antes identificadas de la manera más eficiente posible.
La finalidad general del DBMS consiste en proporcionar una interfaz de usuario para el sistema de base de datos. Podemos definir la interfaz de usuario como un límite en el sistema debajo del cual todo es invisible para el usuario. Por lo tanto, por definición la interfaz de usuario se encuentra en el nivel externo.
Administrador de archivos.
El administrador de archivos es el componente del sistema operativo subyacente que administra los archivos almacenados; por lo tanto, hablando en términos generales, está más cerca del disco de lo que lo está el DBMS. (De hecho, el DBMS es generalmente construido sobre algún tipo de administrador de archivos.) Por lo tanto, el usuario de un sistema de administración de archivos podrá crear y destruir archivos almacenados y realizar operaciones sencillas de recuperación y actualización sobre registros almacenados en dichos archivos. Sin embargo, en contraste con el DBMS:
Los administradores de archivos no están al tanto de la estructura interna de los registros almacenados, de ahí que no puedan manejar peticiones que se basen en el conocimiento de esa estructura.
- Por lo regular ofrecen poco o ningún soporte para las restricciones de seguridad y de integridad.
- Por lo regular ofrecen poco o ningún soporte para los controles de recuperación y concurrencia
- No hay un concepto real de diccionario de datos en el nivel del administrador de archivos.
- Proporcionan mucho menos independencia de datos que el DBMS.
- Por lo regular los archivos no están integrados o compartidos en el mismo sentido que en una base de datos (normalmente son exclusivos de cierto usuario o aplicación en particular).