데이터베이스 스키마(Schema)

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로 저장하고, 학생과 응용프로그램은 학생과 외부 스키마 범위(학번, 이름, 생년월일, 주소) 내에서 작성

[참고]

  • 정익사, 데이타베이스 시스템(이석호 저)

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^