스키마(Schema)란
스키마
는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 정의한 집합입니다.
구체적으로 설명하자면,
개체의 특성을 나타내는 속성(Attribute)
과, 속성들의 집합으로 이루어진 개체(Entitiy)
, 개체 사이에 존재하는 관계(Relation)
에 대한 정의와 이들이 유지해야 할 제약 조건을 정의한 것입니다.
위의 ERD(Entity Relation Diagram)
을 보시면 속성, 개체, 관계에 대하여 쉽게 이해할 수 있습니다.
- 개체(Entity): 학생, 강의와 같이 단독으로 존재하는 객체를 의미합니다.
- 속성(Attribute): 학생 번호, 이름, 학번과 같이 개체가 갖는 속성을 의미합니다.
- 관계(Relation): Student takes course와 같이 개체간의 관계를 의미합니다.
📍 스키마의 특징
- 스키마는 데이터 사전(Data Dictionary)에 저장되며 다른이름으로 메타데이터라고 합니다.
*데이터 사전 : 데이터 항목들에 대한 정보를 지정한 중앙 저장소
- 스키마는 현실 세계의 특정한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어집니다.
- 스키마는 시간에 따라 불변인 특성을 가집니다.
- 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정됩니다.
📍 스키마 3계층
스키마는 사용자의 관점에서 3가지의 계층으로 분리된다.
📌 외부 스키마(External Schema) = 사용자 뷰(View)
- 개인의 입장에서 데이터 베이스의 논리적 구조를 정의한 것입니다.
- 개인의 관점이므로 같은 데이터 베이스에 대해서도 서로 다르게 정의할 수 있도록 허용합니다.
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재 가능하며, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
📌 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
- 조직체 전체를 관장하는 입장에서 DB를 정의한 것입니다.
- 따라서 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의합니다.
📌 내부 스키마(Internal Schema) = 저장 스키마(Storage Schema)
- 물리적인 저장장치(ex: 하드디스크) 입장에서 DB가 저장되는 방법을 기술한 것입니다.
- 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서 등을 나타냅니다.
References
https://coding-factory.tistory.com/216
https://victorydntmd.tistory.com/126