Arquitectura de Tres Niveles en Sistemas de Bases de Datos
Uno de los objetivos principales de un sistema de base de datos es ofrecer una visión abstracta de la información, ocultando los detalles sobre cómo están organizados y almacenados los datos. Los sistemas de bases de datos tienen tres características clave: la separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por parte de los usuarios y el uso de un catálogo que almacena el esquema de la base de datos.
En 1975, el comité ANSI-SPARC (American National Standard Institute – Standards Planning and Requirements Committee) propuso una arquitectura de tres niveles para los sistemas de bases de datos. El propósito de esta arquitectura es separar los programas de aplicación del almacenamiento físico de los datos. Aunque algunos SGBD no implementan completamente esta división, la arquitectura sigue siendo una referencia clave en el diseño de sistemas de bases de datos.
Los Tres Niveles de la Arquitectura ANSI-SPARC
- Nivel Interno: Representa la estructura física de la base de datos. Aquí se define el esquema interno, que detalla cómo se almacenan los datos y cómo se accede a ellos. Incluye:
- Archivos que contienen los datos y su organización.
- Métodos de acceso a los registros.
- Tipo y longitud de los registros.
- Nivel Conceptual: Este nivel está relacionado con el esquema conceptual, donde se definen los datos que intervienen en el sistema sin importar cómo ni dónde se almacenarán. El esquema conceptual describe:
- Entidades del mundo real (como empleados, departamentos, etc.).
- Atributos de estas entidades (como nombre, dirección, etc.).
- Relaciones entre entidades (por ejemplo, un empleado pertenece a un departamento).
- Reglas y restricciones de funcionamiento.
- Nivel Externo: Se refiere a las percepciones individuales de los usuarios sobre la base de datos, conocidas como subesquemas o vistas. Cada subesquema es una representación personalizada de los datos de la base de datos que puede ser compartida entre varios usuarios. En este nivel se puede:
- Mezclar campos de diferentes registros.
- Omitir o reordenar campos.
- Añadir campos calculados basados en los datos del esquema conceptual.
Independencia de Datos
Uno de los grandes beneficios de la arquitectura de tres niveles es la independencia de datos, que se define como la capacidad de modificar un esquema en un nivel sin que sea necesario modificar los esquemas de los niveles superiores. Existen dos tipos de independencia de datos:
- Independencia lógica: Es la capacidad de cambiar el esquema conceptual sin afectar a los esquemas externos ni a los programas de aplicación. Por ejemplo, si se elimina una entidad, los usuarios que no la utilicen no se verán afectados.
- Independencia física: Es la capacidad de modificar el esquema interno sin que se afecten el esquema conceptual o los esquemas externos. Esto se refiere a la capacidad de reorganizar los archivos físicos para mejorar el rendimiento sin modificar la forma en que los datos son vistos por los usuarios.
Transformación de Consultas
La arquitectura de tres niveles permite la transformación de peticiones entre los distintos niveles. Por ejemplo, cuando un usuario hace una consulta en un esquema externo, el SGBD debe traducir esa consulta a términos del esquema conceptual y luego al esquema interno, donde se procesa en la base de datos almacenada. Este proceso de transformación puede ser costoso en términos de tiempo y, por ello, algunos SGBD optan por no usar vistas externas.
Ventajas y Desventajas de la Arquitectura de Tres Niveles
La arquitectura de tres niveles facilita la independencia de datos tanto a nivel lógico como físico, lo cual es ventajoso para la flexibilidad y el mantenimiento del sistema. Sin embargo, la transformación entre niveles puede reducir la eficiencia del SGBD, lo que ha llevado a que muchos SGBD no implementen completamente este modelo.