[Database] 데이터베이스 스키마


DBMS의 구성





  1. DDL 컴파일러

    • 데이터 정의어로 작성된 스키마의 정의를 해석
    • 저장 데이터 관리자의 도움을 받아 새로운 DB 구축
    • 스키마의 정의를 데이터 사전에 저장
    • DDL로 작성된 기존 스키마의 삭제나 수정 요청도 처리하여 변경된 내용을 데이터 사전에 저장
  2. DML 프리 컴파일러

    • 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에게 전달
    • 데이터 조작어와 관련이 없는 코드는 해당 언어의 컴파일러에 전달
  3. DML 컴파일러

    • 데이터 조작어로 작성된 데이터의 처리(삽입, 수정, 삭제, 검색) 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석
  4. 런타임 데이터베이스 처리기

    • 저장 데이터 관리자를 통해 데이터베이스에 접근
    • DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에서 실제로 실행
  5. 트랜잭션 관리자

    • DB 접근을 위한 사용자의 접근 권한이 유효한지 검사
    • DB 무결성을 유지하기 위한 제약조건 위반 여부를 확인
    • 회복, 병행 수행
  6. 저장 데이터 관리자

    • 사용자 DB와 데이터 사전을 관리
    • 운영체제의 도움을 받아 DB에 접근

데이터베이스 스키마 (3단계)


  • 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조


  1. 외부 스키마

    • 일반사용자나 응용프로그래머가 접근하는 계층
    • 사용자에게 필요한 데이터베이스를 정의
    • 하나의 데이터베이스에 여러 개의 외부 스키마가 존재할 수 있음
  2. 개념 스키마

    • 데이터베이스의 전체적인 논리적 구조를 정의
    • 하나의 데이터베이스에 하나의 개념 스키마만 존재함
    • 데이터의 관계, 제약조건, 무결성에 대한 내용이 포함
    • 데이터에 대한 보안 정책이나 접근 권한에 대한 정의 포함
  3. 내부 스키마

    • DBMS가 보는 데이터
    • 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법
    • 레코드 구조, 필드 크기, 레코드 접근 경로, 데이터 압축 등 물리적 저장 구조를 정의

매핑/사상 및 데이터 독립성 1



  1. 매핑(Mapping) / 사상

    • 외부/개념 매핑

      • 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴
      • 응용 인터페이스 (Application Interface)라고도 함
    • 개념/내부 매핑

      • 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응
      • 저장 인터페이스 (Storage Interface)라고도 함
  2. 데이터 독립성 (Data Independency)

    • 논리적 데이터 독립성 (Logical Data Independency)

      • 외부 단계와 개념 단계 사이의 독립성
      • 개념 스키마가 변경되어도 외부 스키마에는 영향이 없도록 하는 개념
      • 예, 개념 스키마의 테이블을 생성하거나 변경할 경우, 외부 스키마가 직접 다루는 테이블이 아니면 영향을 없다.
    • 물리적 데이터 독립성 (Physical Data Independency)

      • 개념 단계와 내부 단계 사이의 독립성
      • 저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념스키마에 영향이 없도록 하는 개념

매핑/사상 및 데이터 독립성 2



  • 데이터베이스 스키마 구성도



  • 데이터베이스 스키마 예