En este tema se presentan las técnicas que se utilizan para implementar los sistemas de gestión de bases de datos. Una parte muy importante de todo sistema de gestión de bases de datos es el diccionario de datos o catálogo. El diccionario de datos es el corazón del sistema, es una ``mini-base de datos'' y su función principal es almacenar los esquemas o descripciones de las bases de datos que el sistema de gestión de bases de datos mantiene. Esta información es lo que se suele denominar metadatos y comprende la descripción del esquema conceptual de la base de datos, el esquema interno, los esquemas externos y las correspondencias entre los esquemas de diferentes niveles. Además, el diccionario de datos almacena otro tipo de información, necesaria para los distintos módulos del sistema de gestión de bases de datos como son el optimizador de consultas o el módulo que se encarga de la seguridad.
Otro aspecto muy importante de los sistemas de gestión de bases de datos es el procesamiento de las consultas. Toda consulta expresada en un lenguaje de alto nivel como SQL debe ser reconocida, analizada y validada. El reconocedor identifica los símbolos del lenguaje en el texto de la consulta, y el analizador comprueba la sintaxis de la consulta para determinar si se ha expresado de acuerdo a las reglas de la gramática del lenguaje de consultas. Además, la consulta se valida comprobando que todos los nombres de los atributos y de las relaciones son válidos en el esquema de la base de datos que se está consultando. Entonces se crea una representación interna de la consulta, normalmente mediante una estructura en forma de árbol, denominada árbol de consulta. A partir de aquí, el sistema de gestión de bases de datos debe determinar una estrategia de ejecución para obtener los datos de la consulta de los ficheros de la base de datos. Lo típico es que una misma consulta tenga varias estrategias de ejecución posibles, por lo que los sistemas de gestión de bases de datos poseen un módulo que se encarga de escoger la más apropiada: el optimizador de consultas.
Para la implementación de la optimización de consultas hay dos técnicas. La primera de ellas se basa en reglas heurísticas para ordenar las operaciones en la estrategia de ejecución de la consulta. Una regla heurística es una regla que funciona bien en la mayoría de los casos, aunque no se garantiza que funcione bien en todos los casos posibles. La segunda técnica conlleva la estimación sistemática del coste de distintas estrategias de ejecución y la elección del plan de ejecución que tiene el menor coste estimado. Normalmente, los optimizadores de consultas combinan las dos técnicas.
En el procesamiento de bases de datos, el concepto de transacción proporciona un mecanismo para describir unidades lógicas de trabajo. Los sistemas de procesamiento de transacciones son sistemas con grandes bases de datos y cientos de usuarios concurrentes que ejecutan sus transacciones. En estos sistemas se requiere una alta disponibilidad y también respuesta rápida para todos los usuarios. El problema del control de la concurrencia sucede cuando varias transacciones lanzadas por varios usuarios interfieren unas con otras de modo que se producen resultados erróneos. Cuando una transacción se lanza al sistema de gestión de bases de datos para ser ejecutada, el sistema es responsable de que, o bien todas las operaciones de la transacción se ejecuten con éxito, con lo que su efecto quedará permanentemente en la base de datos, o bien la transacción no tenga ningún efecto sobre la base de datos ni sobre ninguna otra transacción. Esto último es necesario cuando la transacción falla tras la ejecución de alguna de sus operaciones.
Hay varias técnicas de control de concurrencia que garantizan que varias transacciones que se ejecutan concurrentemente, no interfieran. La mayoría de estas técnicas garantizan la serializabilidad de planes mediante el uso de protocolos. La mayoría de los sistemas de gestión de bases de datos comerciales utilizan protocolos de bloqueo de ítems de datos. También existen protocolos de control de concurrencia que utilizan marcas de tiempo para ordenar las transacciones, protocolos multiversión que mantienen varias versiones de cada dato, y protocolos basados en el concepto de validación o certificación de transacciones, a los que se suele llamar protocolos optimistas.
Otro aspecto a tener en cuenta en la implementación de los sistemas de gestión de bases de datos es la recuperación ante fallos, tanto fallos del sistema como fallos en las transacciones. El objetivo principal de la recuperación es garantizar la atomicidad de las transacciones. Si una transacción falla antes de finalizar, el mecanismo de recuperación se tiene que asegurar de que la transacción no ha tenido ningún efecto sobre la base de datos. Para hacer esto, el sistema debe mantener un diario con información sobre los cambios que las transacciones realizan sobre los ítems.
Los sistemas de gestión de bases de datos suelen tener un subsistema de seguridad que se encarga de garantizar la seguridad de la base de datos frente a accesos no autorizados. Esto es necesario en sistemas de bases de datos multiusuario en los que no todos los usuarios pueden acceder a cualquier porción de la base de datos. Hay dos tipos de mecanismos de seguridad. Los primeros, denominados mecanismos de seguridad discrecionales, se utilizan para conceder permisos a los usuarios de modo que puedan realizar operaciones sobre ciertos ficheros de datos, registros o campos. Los segundos son los mecanismos de seguridad obligatorios, que se utilizan para reforzar la seguridad multinivel, clasificando los datos y los usuarios en varias clases o niveles de seguridad e implementando la política de seguridad que establece la organización propietaria de la base de datos.