데이터베이스 스키마(Database Schema) feat. 데이터베이스 사상(Database Mapping)

스키마(schema)는 계획이나 도식(圖式)을 가리키는 영어 낱말 ... (중략) ...

데이터베이스 스키마는 자료를 저장하는 구조와 표현법을 정의한 것을 뜻하는 전산학 용어이다. ...(중략)...

스키마(schema, 도식)는 인공지능, 인지과학, 언어학 등에서 공통으로 사용하는 개념으로 지식을 표상하는 구조를 말한다.

- 위키백과 (스키마)


데이터베이스 스키마가 뭐지?

컴퓨터 과학에서 데이터베이스 스키마(database schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.

스키마는 3층 구조로 되어있다.

  • 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
  • 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
  • 내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 형태를 기술하는 것

데이터베이스 스키마란 데이터베이스가 어떤 구조로 구성되어 있는지를 보여주는 것이다. 데이터베이스에 대한 청사진 또는 설계 도면이라고 봐도 좋다.

데이터베이스 스키마는 각기 다른 관점을 지닌 사용자에 따라 아래와 같이 3층 구조로 나누어진다. 이 구조를 ANSI/SPARC 구조라고도 한다.

  • 외부 스키마(=서브 스키마)
  • 개념 스키마
  • 내부 스키마(=저장 스키마)

또한 3개 층으로 나누어진 데이터베이스 스키마들의 상호 변환을 위해 사상(Mapping)이라는 과정이 있다. 이는 데이터의 독립성$^*1$을 실현한다.

*1 데이터의 독립성?
데이터베이스 스키마 한 계층의 변화가 다른 계층의 변화 없이 이루어지는 것을 의미한다.

  • 외부/개념 사상(External / Conceptual Mapping)
  • 개념/내부 사상(Conceptual / Internal Mapping)


데이터베이스 스키마 알아보기

1) 외부 스키마 (External Schema)

  • 응용 프로그래머 및 일반 사용자 관점의 스키마
  • 사용자가 관심 있는 데이터베이스의 일부만 기술하고 나머지는 은폐
  • 하나의 데이터베이스 시스템은 여러 개의 응용 시스템을 지원하기에 여러 개의 외부 스키마가 존재
  • 보통 전체 데이터베이스의 한 논리적 부분이 되기에 '서브 스키마'라고도 함

2) 개념 스키마 (Conceptual Schema)

  • 기관 또는 조직 관점의 스키마
  • 물리적 저장 구조의 세부 사항은 은폐하고, 저장된 데이터의 종류 및 관계 등을 나타냄
  • 모든 응용 프로그램이나 사용자가 필요로 하는 데이터베이스 구조를 전체적이고 종합적인 관점에서 기술하므로 하나만 존재

3) 내부 스키마 (Internal Schema)

  • 시스템 프로그래머 및 시스템 설계자 관점의 스키마
  • 물리적 저장 장치 입장에서 저장 레코드 형식, 인덱스 유무, 저장 필드의 표현 방법, 저장 레코드의 물리적 순서 등 데이터가 실제로 어떻게 저장되는지 나타냄
  • 하나만 존재하며, 개념 스키마에 대한 저장 구조를 정의한 것이므로 '저장 스키마'라고도 함
  • 명칭에 '물리적'이 포함되긴 하나, 그 구조만 나타낼 뿐 실제 물리적 장치에 기록을 하는 단계는 아님

데이터베이스 사상 알아보기

1) 외부/개념 사상 (External / Conceptual Mapping)

  • 특정한 외부 스키마와 개념 스키마 사이의 대응 관계를 정의함
  • 논리적 데이터 독립성 실현
    • 개념 스키마가 달라져도 사상의 변경을 통해 외부 스키마에 영향을 주지 않음
    • ∴ 응용 프로그램 또는 사용자가 보는 뷰(View)의 변경 없이 개념 스키마 변경이 가능

2) 개념/내부 사상 (Conceptual / Internal Mapping)

  • 개념 스키마와 내부 스키마 사이의 대응 관계를 정의함
  • 물리적 데이터 독립성 실현
    • 다른 저장 매체로의 이동이나 파일 구조 변경 등의 물리적 변화에 대해 내부 스키마를 정확하게 변경시키면 개념 스키마에 영향을 미치지 않음
    • ∴ 응용 프로그램에도 영향을 미치지 않음

<참고 자료>

 

+ Recent posts