# Arquitectura ANSI-SPARC

La arquitectura ANSI-SPARC, donde ANSI-SPARC significa American National Standards Institute, Standards Planning And Requirements Committee, es un modelo conceptual ampliamente aceptado para el diseño y gestión de bases de datos. Este estándar fue propuesto por primera vez en 1975 y ha influido en el desarrollo de muchos sistemas de gestión de bases de datos (DBMS) comerciales. Sin embargo, nunca se convirtió en un estándar formal.

## Arquitectura de tres niveles

La arquitectura ANSI/SPARC establece una división en tres niveles para la estructura de una base de datos. El objetivo de esta arquitectura de tres niveles es proporcionar una separación clara de la vista de los usuarios, ocultando la complejidad de la base de datos, y los detalles físicos de almacenamiento. Además:
* Permite vistas de usuario independientes y personalizadas: Cada usuario debe ser capaz de acceder a los datos, pero tiene una vista personalizada diferente de los datos. Estos deben ser independientes: los cambios en una vista no deben afectar a las demás.
* Oculta los detalles físicos de almacenamiento a los usuarios: Los usuarios no deberían tener que lidiar con los detalles de almacenamiento de la base de datos.
* El administrador de la base de datos debe ser capaz de cambiar las estructuras de almacenamiento de esta sin afectar la vista de los usuarios.
* La estructura interna de la base de datos no debería verse afectada por cambios en los aspectos físicos del almacenamiento: por ejemplo, un cambio a un nuevo disco.
Los tres niveles son:

### Nivel externo (Vistas de usuario)

En el nivel externo, se encuentra la vista de la base de datos que tienen los usuarios finales. Una vista de usuario describe una parte de la base de datos que es relevante para un usuario en particular. Permite definir y acceder a subconjuntos específicos de datos según las necesidades de cada usuario, el cual puede tener una vista personalizada de la base de datos, lo que mejora la seguridad y la simplicidad de uso.

### Nivel conceptual

En el nivel conceptual, se representa la estructura lógica global de la base de datos. Es una forma de describir los datos que se almacenan dentro de la base de datos y cómo los datos están relacionados entre sí. Aquí se definen las entidades, las relaciones y las restricciones de integridad que se aplican a todos los usuarios. Este nivel no especifica cómo se almacenan físicamente los datos, la representación es independiente de cualquier implementación física.
Algunos datos importantes acerca de este nivel son:
* El DBA (Administrador de la base de datos) trabaja en este nivel.
* Describe la estructura de todos los usuarios.
* Solo el DBA puede definir este nivel.
* Visión global de la base de datos.
* Independiente de hardware y software.

### Nivel interno (Almacenamiento Físico)

El nivel interno implica la forma en que la base de datos se representa físicamente en el sistema informático de almacenamiento. Aquí se define cómo se almacenan y acceden los datos a nivel más bajo, se describe cómo los datos se almacenan en la base de datos y en el hardware del equipo. Se incluyen detalles como la estructura de almacenamiento, los índices y los mecanismos de acceso a los datos.

## Esquemas de bases de datos

El esquema externo describe las diferentes vistas externas de los datos; puede haber muchos esquemas externos para una base de datos dada.
El esquema conceptual describe todos los datos y las relaciones entre ellos, junto con las restricciones de integridad. Solo hay un esquema conceptual por cada base de datos.
El esquema interno es el nivel más bajo que contiene los registros almacenados, los métodos de representación, los campos de datos e índices. Solo hay un esquema interno por cada base de datos.
La descripción general de una base de datos se llama esquema de base de datos.