- DB System을 구축하는 architecture
- Database에서의 변경이 Application에 영향을 주지 않도록 하기 위한 목적으로 사용
- 다음 세 가지 level이 존재하며 각각 schema가 정의되어 있음
- external level: external schema
- conceptual level: conceptual schema
- internal level: internal schema
- 각 level을 독립시켜서 어느 level에서의 변화가 상위 level에 영향을 주지 않는다. 예를 들어 internal level에서 변경이 있어도 conceptual level에는 영향을 주지 않는다.
- 대부분의 DBMS가 이런 three level 구조를 어느 정도 따르지만 명시적으로 나누지는 않음
- 결국 데이터가 존재하는 곳은 internal level
1. internal schema
- 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
2. external schema
- 특정 유저들이 필요로 하는 데이터만 표현하고 그 외의 데이터는 숨김
- logical data model을 통해 표현
3. conceptual schema
- internal schema와 external schema만 존재했을 경우 각 유저마다 필요로하는 데이터가 달라지다보니 internal schema에는 중복된 데이터가 쌓이면서 관리가 힘들었다. 그래서 이 문제를 해결하기 위해서 conceptual schema가 등장했다.
- 전체 DB 구조를 설명하며 물리적인 저장 구조는 숨기고 "entities, data types, relationships, user operations, constraints"에 집중
- logical data model을 통해 표현