[DB] 데이터베이스의 구조: 스키마

Joney의 SW 공부 블로그·2023년 7월 4일
0

DB

목록 보기
2/3

스키마

스키마란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

예를 들어, 고객 관련 데이터를 정의한다고 했을 때, 아래와 같이 스키마를 정의할 수 있다.

  • 고객ID : CHAR(20)
  • 이름 : CHAR(20)
  • 나이 : INT
  • 이메일 : CHAR(50)

이와 같이 데이터를 표현하는데 정의되는 모든 것을 스키마라고 한다.
그리고 정의된 스키마에 따라 데이터베이스에 실제로 저장되는 값을 인스턴스(instance)라고 한다.

3단계 데이터베이스 구조

데이터베이스의 구조를 쉽게 이해하기 위해서 데이터베이스 구조를 3단계로 나눌수 있다.
각 단계별로 다른 추상화를 제공해서 데이터베이스를 효과적으로 관리할 수 있다.

외부 단계

  • 외부 단계는 개별 사용자 관점에서 데이터베이스를 이해하고 표현한다.
  • 외부 단계에서는 개별 사용자가 데이터베이스를 보는 관전에 따라 데이터베이스의 구조가 달라진다.
    • 예를 들어, 쇼핑몰에서 사용하는 데이터베이스라고 한다면 고객 관리 담당자는 고객과 관련한 데이터를 , 상품 관리 담당자는 상품 관련 데이터만 다루게 된다.

이처럼 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마라고 한다.

개념 단계

  • 개념 단계에서는 데이터베이스를 이용하는 조직의 관점에서 이해하고 표현한다.
  • 개념 단계에서는 데이터베이스 전체의 논리적 구조를 정의한다.

이렇게 정의한 데이터베이스의 논리적 구조를 개념 스키마라고 한다.

개념 스키마

  • 조직 전체의 관점에서 생각하는 데이터베이스의 모습
  • 개념 스키마는 아래의 사항을 고려해서 정의해야 한다.
    • 어떤 데이터가 저장되는지
    • 데이터들 간에는 어떤 관계가 존재하는지
    • 데이터의 제약 조건
    • 보안 정책
    • 접근 권한
  • 개념 스키마는 데이터베이스에 하나 존재
  • 일반적으로 스키마라고 하면 개념 스키마를 나타냄

내부 단계

  • 내부 단계에서는 데이터베이스를 저장 장치의 관점에서 이해하고 표현한다.
  • 저장 장치에 실제로 저장되는 방법을 정의하며, 이를 내부 스키마라고 한다.

내부 스키마

레코드 구조, 레코드를 구성하는 필드 크기, 인덱스를 이용한 레코드 접근 경로를 정의

데이터 독립성

사용자는 외부 스키마를 통해 내부 스키마에 따라 저장된 데이터베이스에 접근해야한다.
이를 위해서, 스키마 간에는 매핑라고 부르는 대응 관계가 필요하다.

이런 대응 관계는 궁극적으로는 데이터 독립성을 실현하기 위해서 필요하다.

데이터 독립성이 왜 필요한가

  • 데이터베이스를 사용하는 응용 프로그램을 수정하지 않고도 데이터의 논리 구조를 변경 가능
  • 데이터를 접근하는 응용프로그램에 영향을 미치지 않고도 저장 장치를 변경 가능

논리적 데이터 독립성

  • 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것을 논리적 데이터 독립성이라고 한다.

물리적 데이터 독립성

  • 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것이 물리적 데이터 독립성이다.
profile
SW 지식 노트 블로그

0개의 댓글