본문 바로가기

Programming/DataBase

스키마 (Schema)

스키마의 개념

- 스키마는 DB의 구조와 제약 조건에 관한 전반적인 명세(Specitication)를 의미한다.


- 스키마는 DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.


- 스키마는 사용자의 관점에 따라 외부, 개념, 내부 스키마로 나뉜다.


그림으로 표현하면 다음과 같다.


스키마의 특징

- 데이터의 구조적 특성을 의미함

- 데이터 사전(Data Dictionary)에 저장된다.

- 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.

- 시간에 따라 불변인 특성을 갖는다.

- 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술한다.


스키마의 3계층

외부스키마(External Schema)

- 외부 스키마는 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터 베이스의 논리적 구조를 정의한 것이다.


- 전체 데이터베이스의 한 논리적인 부분은 볼 수 있으므로 서브 스키마(Sub Schema)라고도 함


- 하나의 DBMS는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마는 여러 개의 응용프로그램이나 사용자에 의해 공유될 수 있다.


- 동일한 DB에 대해서 서로 다른 관점을 정의할 수 있도록 혀용한다.


개념 스키마(Conceptual Schema)

- 개체 간의 관계와 제약 조건을 나타내고 DB의 접근권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것이다.


- DB의 전체적인 논리적 구조로서, 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB명세로서 하나만 존재함


- 단순히 스키마라고 하면 개념 스키마를 의미한다.


- 기관이나 조직의 관점에서 DB를 정의한 것이다.


- DBA에 의해서 작성됨


내부 스키마(Internal Schema)

- DB의 물리적 구조를 정의한 것이다.


- 물리적 저장장치의 관점에서 본 전체 DB의 명세로서 하나만 존재한다.


- 개념 스키마의 물리적 저장 구조에 대한 정의를 기술한 것(어디에 어떻게 저장할 것인가)


- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.


cf)    개체 : 현실 세계의 객체(Object)로서 유형 또는 무형의 정보 대상으로 존재하며 서로 구별될 수 있는 것.

  속성 : 개체의 특성이나 상태를 기술하는 것으로 데이터의 가장 작은 단위

  관계 : 2개 이상의 개체 사이에 연관성을 기술한 것

 

  데이터 사전 

- 데이터 사전은 DB에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템으로, 시스템 카탈로그라고도 한다.


- 데이터 사전에는 데이터에 관한 데이터가 저장되어 있다고 하여 데이터 사전을 메타 데이터라고도 한다. '데이터에 관한 데이터' 즉, 스키마가 일종의 메타 데이터가 되는 것이다.