1. 데이터베이스 스키마(Schema)의 개요
(1) 데이터베이스 스키마의 개념
- 데이터 개체(entity), 속성(attribute), 관계(relationship)를 포함하는 데이터베이스 구조(structure)와 제약조건(constraints)에 대한 명세
(2) 데이터베이스 스키마의 특징
메타데이터 | 시스템 카탈로그(데이터 사전)에 저장되며, 데이터에 관한 데이터를 의미 |
데이터 모델링 | 현실 세계의 특정한 부분을 추상화하여 데이터 모델로 표현 |
시간 불변성 | 스키마는 시간의 흐름에 따라 변하지 않음 |
구조화 | 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정 |
- 데이터베이스 스키마는 일반적으로 미국 표준화 기관 ANSI/SPARC에서 제안한 3단계로 구조화
2. 데이터베이스 스키마 구조 및 사상(Mapping)
(1) 3단계 데이터베이스 스키마 구조
(2) 단계 별 데이터베이스 스키마와 명세/구성요소
단계 | 스키마 | 스키마 명세/구성요소 |
---|---|---|
외부 단계 | 외부 스키마 (서브 스키마) | – 개별 사용자 입장에서 데이터베이스 구조를 명세 – 특정 응용에 한정된 논리적 데이터 구조를 정의 – 사용자 개체, 관계만 포함 여러 외부 스키마 존재 |
개념 단계 | 개념 스키마 | – 전체 조직 입장에서 데이터베이스를 명세 – 모든 응용 시스템의 데이터 통합 구조를 정의 – 개체, 관계, 제약조건, 접근권한, 무결성 규칙 등 |
내부 단계 | 내부 스키마 | – 저장장치 입장에서 데이터베이스 저장 방법 명세 – 개념 스키마에 대한 물리적 저장 구조를 정의 – 내부 레코드 형식, 인덱스 유무, 데이터 항목 표현 등 |
(3) 3단계 데이터베이스 스키마 사상(Mapping) 및 인터페이스
사상(Mapping) | 인터페이스 | 역할 |
---|---|---|
외부/개념 사상 | 응용 인터페이스 | – 특정 외부 스키마와 개념 스키마 대응 정의 – 외부 스키마는 개념 스키마 변경과 무관 – 논리적 데이터 독립성 제공 |
개념/내부 사상 | 저장 인터페이스 | – 개체 각 속성과 내부 필드 대응 정의 – 개념 스키마는 내부 스키마 변경과 무관 – 물리적 데이터 독립성 제공 |
- 3단계 데이터베이스 스키마 구조는 데이터 독립성 구현의 기초를 제공
- Oracle, MySql, Microsoft SQL Server, PostgreSQL 등 상용 DBMS들은 3단계 데이터베이스 스키마 구조를 엄격히 구분하지는 않으며, 스키마의 의미가 조금씩 다름
3. 데이터베이스 스키마 구조화 사례
- 학생 데이터는 개념 스키마 범위(학번, 이름, 생년월일, 등급, 학과 ,주소)로 나타내며, 이를 저장장치에 레코드 별 75 byte로 저장하고, 학생과 응용프로그램은 학생과 외부 스키마 범위(학번, 이름, 생년월일, 주소) 내에서 작성
[참고]
- 정익사, 데이타베이스 시스템(이석호 저)