본문 바로가기

computer science

cs - 스키마의 종류와 차이점(물리스키마, 논리스키마, 내부스키마, 외부스키마, 개념스키마)

데이터베이스 스키마는 데이터베이스의 구조, 제약 조건, 관계 등을 정의하는 데 사용되는 개념입니다. 스키마는 데이터베이스를 설계, 구현, 관리하는 데 중요한 역할을 합니다. 주로 다음과 같은 다양한 종류의 스키마가 있으며, 각각의 특징과 차이점을 가집니다:

  1. 논리 스키마(Logical Schema)
    • 논리 스키마는 데이터베이스의 논리적 구조를 정의합니다.
    • 데이터 모델, 데이터 유형, 관계, 제약 조건 등을 포함합니다.
    • 이 스키마는 데이터베이스 관리 시스템(DBMS)에 독립적이며, 사용자가 데이터베이스를 어떻게 보고 사용할지를 정의합니다.
    • 예: 테이블, 뷰, 인덱스, 관계 등.
  2. 물리 스키마(Physical Schema)
    • 물리 스키마는 데이터베이스의 실제 물리적 저장 구조를 정의합니다.
    • 데이터 파일, 레코드의 저장 방식, 액세스 경로 등을 포함합니다.
    • 이 스키마는 데이터베이스의 물리적인 측면, 즉 데이터가 실제로 어떻게 저장되고 접근되는지를 다룹니다.
    • 예: 파일 시스템, 블록 크기, 인덱싱 메커니즘 등.
  3. 개념 스키마(Conceptual Schema)
    • 개념 스키마는 전체 데이터베이스의 추상적인 구조를 나타냅니다.
    • 데이터베이스의 모든 객체와 관계, 사용자 뷰 등을 포함하는 전체적인 뷰를 제공합니다.
    • 이 스키마는 데이터베이스의 구조를 고수준에서 설명하며, 특정 데이터 모델이나 기술적인 세부 사항으로부터 독립적입니다.
    • 예: 기업이나 조직의 데이터 모델.
  4. 외부 스키마(External Schema) 또는 사용자 뷰(User View)
    • 외부 스키마는 사용자나 사용자 그룹이 데이터베이스에서 볼 수 있는 데이터의 부분 집합을 정의합니다.
    • 사용자 인터페이스와 밀접하게 관련되어 있으며, 사용자가 필요로 하는 데이터를 제공하는 방식을 정의합니다.
    • 예: 특정 사용자 또는 응용 프로그램에 맞춘 데이터 뷰.

외부 스키마와 내부 스키마의 차이

  1. 외부 스키마 (External Schema)
    • 외부 스키마, 또는 사용자 뷰는 데이터베이스 사용자가 실제로 볼 수 있는 데이터의 구조를 정의합니다.
    • 이는 사용자가 필요로 하는 데이터의 부분 집합이며, 사용자별로 다를 수 있습니다.
    • 외부 스키마는 데이터베이스의 전체 구조에서 필요한 부분만을 제공하는 사용자 맞춤형 뷰입니다.
    • 예를 들어, 한 사용자는 고객 데이터만 볼 수 있고, 다른 사용자는 주문 데이터만 볼 수 있는 경우가 이에 해당합니다.
  2. 내부 스키마 (Internal Schema)
    • 내부 스키마, 또는 물리 스키마는 데이터베이스의 물리적 저장 구조를 정의합니다.
    • 데이터가 실제로 저장되는 방식, 저장 장치의 구조, 데이터 액세스 방법, 인덱싱 전략 등을 포함합니다.
    • 내부 스키마는 데이터베이스의 물리적인 세부 사항을 다루며, 이는 데이터의 효율적인 저장과 접근을 위해 중요합니다.
    • 예를 들어, 특정 테이블이 하드 드라이브의 어떤 부분에 저장되는지, 인덱스가 어떻게 구성되는지 등이 이에 해당합니다.

차이점:

  • 목적: 외부 스키마는 사용자 관점에서 데이터를 어떻게 보고 사용할지에 초점을 맞춘 반면, 내부 스키마는 데이터가 실제로 어떻게 저장되고 관리될지에 대한 세부사항에 초점을 맞춥니다.
  • 접근성: 외부 스키마는 사용자가 직접 상호작용하는 부분이지만, 내부 스키마는 일반 사용자가 보거나 알 필요가 없는 데이터베이스의 내부적인 측면입니다.
  • 추상화 수준: 외부 스키마는 데이터베이스의 높은 수준의 추상화를 제공하는 반면, 내부 스키마는 데이터베이스의 물리적인 구현에 대한 낮은 수준의 추상화를 제공합니다.

이러한 차이점은 데이터베이스 설계에서 중요한 역할을 하며, 각 스키마는 데이터베이스의 다른 측면을 나타냅니다. 데이터베이스 관리 시스템(DBMS)에서 이 두 스키마의 조화는 데이터의 효율적인 관리와 사용자의 편의성을 동시에 증진시키는 데 중요합니다.

 

사례: 도서관 관리 시스템

외부 스키마 (External Schema)

외부 스키마는 도서관의 다양한 사용자가 데이터베이스와 상호 작용하는 방식을 정의합니다. 예를 들어, 도서관 시스템에는 다음과 같은 사용자 뷰가 있을 수 있습니다.

  1. 도서 검색 뷰 (독자용):
    • 독자들은 도서 제목, 저자, 장르 등을 기반으로 도서를 검색할 수 있습니다.
    • 이 뷰에서 독자는 도서의 위치, 대출 여부 등의 정보를 볼 수 있지만, 도서의 구매 가격이나 공급업체 정보는 볼 수 없습니다.
  2. 도서 입출고 관리 뷰 (직원용):
    • 도서관 직원은 도서의 입고, 출고, 대출 상태, 대출 기록 등을 관리할 수 있습니다.
    • 이 뷰에서는 도서의 구매 가격, 공급업체 정보, 도서의 물리적 위치 등을 관리할 수 있습니다.

내부 스키마 (Internal Schema)

내부 스키마는 도서관 시스템에서 데이터가 실제로 어떻게 저장되고 관리되는지를 정의합니다. 예를 들어:

  • 도서 정보는 'Books'라는 테이블에 저장되며, 각 도서는 고유한 ID, 제목, 저자, 장르, 출판사, 가격, 공급업체 정보 등으로 구성됩니다.
  • 대출 정보는 'Loans'라는 별도의 테이블에 저장되며, 이 테이블은 도서 ID, 회원 ID, 대출 날짜, 반납 날짜 등의 정보를 포함합니다.
  • 이 데이터는 디스크의 특정 영역에 저장되며, 효율적인 검색을 위해 도서 제목과 저자 이름에 인덱스가 생성됩니다.

차이점

  • 외부 스키마는 사용자의 관점에서 데이터를 어떻게 볼 수 있는지를 정의합니다. 사용자는 자신의 필요에 따라 제한된 데이터에만 접근할 수 있습니다.
  • 내부 스키마는 데이터베이스 시스템의 관점에서 데이터가 실제로 어떻게 저장되고 처리되는지를 정의합니다. 이는 일반 사용자가 볼 수 없는 데이터베이스의 내부 구조를 나타냅니다.