Estrustura+general+del+sistema+gestor+de+bases+de+datos+relacional

= __** Tema 3 -9: Estructura general del sistema gestor de bases de datos **__ = Un SGBD se divide en módulos que se encargan de tareas específicas. Normalmente el S.O. proporciona una serie de funciones básicas que son utilizadas por el SGBD, para realizar otras tareas más complejas. Los componentes más importantes del SGBD son:
 * Gestor de ficheros (File Manager o File System).**

Encargado de asignar espacio en disco y mantener la estructura de los ficheros donde se almacenarán los datos. Además es el responsable de localizar el bloque de información que se requiere solicitándoselo al Gestor de discos del S.O. y proporcionándoselo al Gestor de Datos. Puede implementarse simplemente como un interfaz al Gestor de Ficheros del Sistema Operativo o el SGBD puede tener uno propio. **Gestor de datos (Data Manager).** Es el principal componente del SGBD. Entre sus funciones podemos citar:
 * Acceso a los datos interactuando con el gestor de ficheros propio o del S.O.
 * Asegura que se cumplen los requisitos para mantener la integridad y consistencia de los datos, además de controlar la seguridad.
 * Sincroniza las operaciones de los usuarios que están accediendo concurrentemente a la BD.
 * Interviene también en operaciones de respaldos y recuperaciones.

**Procesador de consultas (Query Processor).** Interpreta las consultas (queries) de los usuarios online y los convierte en una serie de operaciones que serán enviadas al Gestor de Datos para su ejecución. Entre sus funciones están el optimizar estas operaciones haciendo uso de la información del diccionario de datos y encontrar una estrategia eficiente para su ejecución (plan de ejecución).

**Compilador de LDD (DDL, Data Definition Languaje).** Convierte las sentencias de definición de esquemas en tablas y la información sobre las mismas se almacena en el DDL.


 * Precompilador de LMD (DML, Data Manipulation Languaje).**

Convierte las sentencias en LMD dentro de un programa de aplicación a llamadas a procedimientos en el lenguaje huésped. El precompilador debe interactuar con el procesador de consultas para generar el código apropiado. Aunque no forma parte del SGBD es interesante nombrar al software que permite la comunicación entre los usuarios online de un sistema y el SGBD, ya que el SGBD interactúa estrechamente con él. Este software, llamado sistema de telecomunicaciones o programa de control de comunicaciones hace de intermediario trasmitiendo los mensajes desde el usuario al SBD y las respuestas. Ejemplos de estos programas son CICS, IDMS-DC, TALKMASTER, etc. Además, se requieren una serie de estructuras de datos para que los módulos del SGBD puedan realizar correctamente sus funciones: **Ficheros de datos**, donde se guardan los datos de la BD. Diccionario de datos o catálogo del sistema, donde se guarda la información relativa a la estructura de la BD. Es una base de datos que sirve para documentar los datos. Se usa constantemente, por lo que su diseño e implementación deben ser adecuados para obtener el mejor rendimiento posible. Además de la información mencionada suele contener información de audit y estadísticas que ayudan a optimizar el acceso a los datos., que permiten el acceso rápido a elementos de información con determinados valores.

En la figura se muestran los pasos (simplificados) para acceder a los datos. El interfaz de usuario está representando al procesador de consultas (usuarios online complejos), al programa de aplicación compilado o a sentencias del LDD compiladas (ADB).

En la Figura 1.3.- se puede observar un esquema general de la arquitectura de una base de datos, en la cual se detallan los principales componentes de ella además de las relaciones entre ellos y la base de datos lógica. Recordemos el significado de estos elementos:
 * Una Vista Externa es una visión particular de un usuario o un grupo de usuarios de la Base de Datos. El Esquema Externo representa una forma de definición o formalización de esta vista externa.
 * La Vista Conceptual pretende ser la representación total y abstracta de los datos que componen la Base; la formalización de esta se logra mediante el Esquema Conceptual.
 * La Vista Interna es de un nivel muy bajo y corresponde al almacenamiento físico de los datos de la Base, sobre un Esquema Interno que es la formalización de esto, es decir, tipos de registros almacenados, índices, etc.
 * Las correspondencias se pueden definir como una asociaciónde distintas representaciones para un mismo dato.
 * El Administrador de Bases de Datos (DBA) corresponde a la persona o grupo de personas encargada del control general del sistema.

Un DSL es un de datos, es una combinación de dos lenguajes: un lenguaje de definición de datos (DDL) y un lenguaje de manipulación de Datos (DML). Este lenguaje representa un nexo entre el Sistema de Base de Datos y algún lenguaje anfitrión (p.e. COBOL, FORTRAN, C, etc.); e.d., el DSL provee herramientas a los lenguajes tradicionales para que se integren al Sistema de Base de Datos. Puede haber distintos tipos de DSL para un mismo sistema. DBMS es la sigla en inglés de Sistema Gestor de Bases de Datos, que corresponde al Software que maneja todos los accesos a la Base de Datos, es decir, cada solicitud de acceso de un usuario al SGBD es interpretada e inspeccionadas las correspondencias, generando, a continuación, una respuesta coherente a las necesidades de la pregunta. La interfaz con el Usuario es el límite de acceso que tiene un Usuario común a la Base, todo lo que está bajo este límite es transparente (desconocido) para él



 Los SGBD son paquetes de software muy complejos y sofisticados que deben proporcionar los servicios comentados en la sección anterior. No se puede generalizar sobre los elementos que componen un SGBD ya que varían mucho unos de otros. Sin embargo, es muy útil conocer sus componentes y cómo se relacionan cuando se trata de comprender lo que es un sistema de bases de datos.   Un SGBD tiene varios módulos, cada uno de los cuales realiza una función específica. El sistema operativo proporciona servicios básicos al SGBD, que es construido sobre él.

 El //procesador de consultas// es el componente principal de un SGBD. Transforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la base de datos.
 * El //gestor de la base de datos// es el interface con los programas de aplicación y las consultas de los usuarios. El gestor de la base de datos acepta consultas y examina los esquemas externo y conceptual para determinar qué registros se requieren para satisfacer la petición. Entonces el gestor de la base de datos realiza una llamada al gestor de ficheros para ejecutar la petición.
 * El //gestor de ficheros// maneja los ficheros en disco en donde se almacena la base de datos. Este gestor establece y mantiene la lista de estructuras e índices definidos en el esquema interno. Si se utilizan ficheros dispersos, llama a la función de dispersión para generar la dirección de los registros. Pero el gestor de ficheros no realiza directamente la entrada y salida de datos. Lo que hace es pasar la petición a los métodos de acceso del sistema operativo que se encargan de leer o escribir los datos en el buffer del sistema.
 * El //preprocesador del LMD// convierte las sentencias del LMD embebidas en los programas de aplicación, en llamadas a funciones estándar escritas en el lenguaje anfitrión. El preprocesador del LMD debe trabajar con el procesador de consultas para generar el código apropiado.
 * El //compilador del LDD// convierte las sentencias del LDD en un conjunto de tablas que contienen metadatos. Estas tablas se almacenan en el diccionario de datos.
 * El //gestor del diccionario// controla los accesos al diccionario de datos y se encarga de mantenerlo. La mayoría de los componentes del SGBD acceden al diccionario de datos.

 Los principales componentes del gestor de la base de datos son los siguientes:


 * //Control de autorización//. Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.
 * //Procesador de comandos.// Una vez que el sistema ha comprobado los permisos del usuario, se pasa el control al procesador de comandos.
 * //Control de la integridad.// Cuando una operación cambia los datos de la base de datos, este módulo debe comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.
 * //Optimizador de consultas.// Este módulo determina la estrategia óptima para la ejecución de las consultas.
 * //Gestor de transacciones.// Este módulo realiza el procesamiento de las transacciones.
 * //Planificador (scheduler).// Este módulo es el responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos.
 * <span style="color: #000000; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Gestor de recuperación.// Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.
 * // Gestor de buffers. // Este módulo es el responsable de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. A este módulo también se le denomina //gestor de datos//.