Database

[Database] schema란?

강서월 2022. 12. 2. 08:38

✏️스키마 정의

데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의하는 것을 스키마(Schema)라고 한다. => "틀"

이와 대비되는 개념으로 스키마에 따라 데이터베이스에 실제로 저장된 값을 인스턴스(Instance)라고 한다. => "내용"

 

 

✏️ ANSI-SPARC Architecture for Databases

미국 표준화 기관인 ANSI/SPARC에서 제안한것으로 3단계로 데이터베이스를 구조화한다.

간결하게 중요한 부분만 추려낸 추상화를 각 단계별로 제공하고, 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아진다. 즉 내부에서 외부단계로 갈 수록 중요한 부분만 뽑아낸다.

 

 

외부 단계 (External Level) : 개별 사용자 관점

- External Schema(Sub Schema) : 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것으로 각 사용자가 생각하는 데이터베이스의 모습, 즉 논리적 구조로 사용자 마다 다르다. 그러므로 하나의 데이터베이스에 여러 External Schema가 존재할 수 있다.

 

 

개념 단계 (Conceptual Level) : 조직 전체의 관점

- Conceptual Schema : 개념 단계에서 데이터베이스 전체의 논리적 구조를 정의한 것으로 조직 전체의 관점에서 생각하는 데이터베이스의 모습이다. 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간 어떤 관계가 존재하고, 어떤 제약 조건이 존재하는지에 대한 정의를 한다. 뿐만 아니라 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함한다. 개념 스키마는 데이터베이스에 하나만 존재한다.

 

 

내부 단계 (Internal Level) : 물리적인 저장 장치의 관점

- Internal Schema : 전체 데이터베이스가 저장 장치에 실재로 저장되는 방법을 정의하여 구조, 크기, 접근 경로 등 물리적 저장공간을 정의한다. 내부 스키마는 데이터베이스에 하나만 존재한다.

 

 

✏️Data Dependency and Mapping

3단계 구조에서 각 단계는 서로 연결되어 있으며, 만약 어떤 하나의 구조가 변경되면 그것을 참조하고 있던 상/하위 단계의 구조가 영향을 받아 데이터 종속성(Data Dependency)문제가 발생한다. 이를 해결해결 하기 위해 단계와 단계 사이에 중간 interface를 만드는 사상(Mapping) 기법을 사용한다. 

 

Mapping 기법에는 두가지가 있다.

- External-Conceputal Mapping (Application Interface)

- Conceptual-Internal Mapping(Storage Interface)

 

Mapping 기법을 사용하면 하위 Schema를 변경하면 이와 관련된 Mapping만 정확하게 변경하면 된다.

 

 

 

그림으로 정리한 내용