# ANSI-SPARC Architecture

The ANSI-SPARC Architecture (American National Standards Institute, Standards Planning And Requirements Committee), is an abstract design standard for a database management system (DBMS), first proposed in 1975.
The ANSI-SPARC model however, never became a formal standard. No mainstream DBMS systems are fully based on it (they tend not to exhibit full physical independence or to prevent direct user access to the conceptual level), but the idea of logical data independence is widely adopted.

## Three-level architecture

The objective of the three-level architecture is to separate the user's view:
* It allows independent customized user views: Each user should be able to access the same data, but have a different customized view of the data. These should be independent: changes to one view should not affect others.
* It hides the physical storage details from users: Users should not have to deal with physical database storage details.
* The Database Administrator (DBA) should be able to change the database storage structures without affecting the users’ views.
* The internal structure of the database should be unaffected by changes to the physical aspects of the storage: For example, a changeover to a new disk.
The three levels are:
* External Level (User Views): A user's view of the database describes a part of the database that is relevant to a particular user. It excludes irrelevant data as well as data which the user is not authorised to access.
* Conceptual Level: The conceptual level is a way of describing what data is stored within the whole database and how the data is inter-related. The conceptual level does not specify how the data is physically stored. Some important facts about this level are:
* It is only the DBA who defines and works at this level.
* It describes the structure for all users.
* It offers a global view of the database.
* It is independent of the hardware and other software.
* Internal Level: The internal level involves how the database is physically represented on the computer system. It describes how the data is actually stored in the database and on the computer hardware.
The Three Level Architecture has the aim of enabling users to access the same data but with a personalised view of it. The distancing of the internal level from the external level means that users do not need to know how the data is physically stored in the database. This level separation also allows the DBA to change the database storage structures without affecting the users' views.

## Database schemas

There are three different types of schema corresponding to the three levels in the ANSI-SPARC architecture:
* The external schemas describe the different external views of the data, and there may be many external schemas for a given database.
* The conceptual schema describes all the data items and relationships between them, together with integrity constraints (later). There is only one conceptual schema per database.
* The internal schema at the lowest level contains definitions of the stored records, the methods of representation, the data fields, and indexes. There is only one internal schema per database.
The overall description of a database is called the database schema.