Database

[DATABASE] three-schema architecture

ju_young 2023. 10. 13. 21:31
728x90
  • 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을 통해 표현
728x90