10. Schema
스키마
: DB의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
cf) 메타 데이터
: 데이터에 대한 데이터로 어떤 목적을 가지고 만들어진 데이터
- DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의함
cf) ERD vs 스키마
- ERD(Entity-Relationship Diagram)
: 개체-관계 모델로 테이블 간의 관계를 설명해주는 다이어그램
- 테이블의 속성들을 상세히 표시함
- 차이점 )
- ERD는 설계도 -> DB를 생성하기 전에 작성하는 것
- 스키마는 구현 -> DB를 생성하면 DBMS에서 생성하는 것
- 특징 )
- 데이터 사전(Data Dictionary)에 저장됨 -> 메타 데이터라고도 함
- 데이터 사전
- DB 관리 시스템을 효율적으로 사용하기 위해 DB에 저장된 정보를 요약한 것
- 시간에 따라 불변임
- 데이터의 구조적 특성을 의미하며 인스턴스에 의해 규정됨
스키마의 3계층
- DBMS는 외부적으로 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환함
- 스키마의 3계층은 사용자의 관점에서 설계된 것
- 외부 스키마 -> 사용자의 입장
- 개념 스키마 -> 사용자의 관점으로 DB의 전체적인 구조와 논리적으로 정의한 것
- 내부 스키마 -> 컴퓨터의 입장에서 데이터의 저장 위치 등을 나타낸 것
1. 외부 스키마(External Schema)
= 사용자 뷰
= 서브 스키마
: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것
- 전체 DB의 한 논리적 부분으로 볼 수 있으므로 서브 스키마라고도 불림
- 하나의 DB 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공유할 수도 있음
- 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
- 일반 사용자의 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있음
- 응용 프로그래머는 C, JAVA 등의 언어를 사용하여 DB에 접근함
2. 개념 스키마(Comceptual Schema)
= 전체적인 뷰
: DB의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 DB로 하나만 존재함
- 개체 간의 관계와 제약 조건을 나타내고, DB의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의
- DB 파일에 저장되는 데이터의 형태를 나타내는 것으로 단순히 스키마라고 하면 개념 스키마를 의미함
- 기관이나 조직체의 관점에서 DB를 정의함
- DB 관리자(DBA)에 의해서 구성됨
3. 내부 스키마(Internal Schema)
= 저장 스키마
: 물리적 저장장치(컴퓨터)의 입장에서 본 DB 구조로 물리적인 저장장치와 밀접한 계층임
- 실제로 DB에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법
- 내부 코드의 물리적 순서 등을 나타냄
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마