본문 바로가기

programming/용어정리

[SQL] 1.2. 데이터 모델링 > 3층 스키마 (3-level schema)

 

  1. 3층 스키마 (3-level schema)
    • 관점에 따라 분류, 관계를 정의한다.
      • 여기에서 관점은 데이터베이스에 접근하는 유저인데, 분류는 아래와 같다
        • 사용자
        • 설계자
        • 개발자
    • ANSI 표준이다
    • 데이터 독립성을 확보하기 위해 사용한다
      • 논리적 독립성
        • 개념 스키마가 변경되어도 외부 스키마에 영향이 없다. 역도 참
      • 물리적 독립성
        • 내부 스키마가 변경되어도 개념 스키마에 영향이 없다. 역도 참
  2. 3층 스키마 구조
    • 외부 단계
      • 사용자 관점
      • 업무 프로세스와 관련이 있는 데이터 접근
      • 응용 프로그램이 접근하는 데이터 베이스를 정의
    • 개념 단계
      • 설계자 관점
      • 사용자 전체 집단의 데이터 베이스 구조
      • 통합 데이터 베이스 구조
    • 내부 단계
      • 개발자 관점
      • 물리적 저장 구조
      • 저장 구조, 레코드 주소, 필드 정의, 인덱스 등을 의미

* 외부 스키마n 은 3번째를 의미하는 것이 아니라 n번째를 의미

** 외부-개념 단계에 매핑 표기를 하였으나 개념-내부 단계에서도 매핑(개념/내부 사상)이 있다

 

 

 실제 사용자 User A,B,C 등은 개념/내부 단계를 참여한 사용자(설계자, 개발자)일 수는 있으나 관점상 실제 업무를 진행하는 사용자로 보아야 한다.

 

 User A (벌레 좋아하는 캬루)는 쇼핑몰의 고객 주문 응대팀이라고 생각해보자. 안그래도 포크의 내용물이 불편한데 늘 위장약을 달고 살 듯해서 안쓰럽기도 하다.

 고객 응대를 위해 필요한 정보는 주문 정보와 고객 정보이다. 그러나 모든 주문, 고객 테이블의 정보가 필요한 것은 아닐것이다. 주문번호나 주문금액, 배송지 등은 필요하나 최종 로그인 일시, 비밀번호 틀린 횟수 등은 주문과 관계는 없으니 필요하지 않을 수 있다.

 외부 스키마는 개념 스키마를 이용하여 사용자 관점의 User A에게 필요한 정보만을 제공할 수 있다. 다시말해, 각 사용자가 업무상 관련이 있는 데이터만 접근하도록 제공하는 것이다. 이러한 방식 때문에 각 계층을 라고 하기도 한다. 

 

 User B (한결 상쾌해진 캬루)는 마케팅팀이라고 하자. 이번에 사업팀에서 정해진 시간에 회원들에게 푸시 메시지와 카카오톡 푸시로 상품 광고를 좀 했으면 한다고 전달받았다. 왜 사업팀은 가만히 있는 마케팅팀을 건드리는 것인가 머리가 지끈거리지만 언제나 밝은 이미지의 User B는 법률팀에 자문을 구했다. 법률팀에서는 푸시 메시지를 보내는 것은 가능하지만, 사용자가 이를 승인하여야 한다고 말한다. 고객 테이블에 `마케팅 동의 여부`라는 새로운 필드가 생겨야 하는 것이다.

 User B에 의해 고객 테이블이 변경되었다. 내부 스키마(물리적 테이블)가 변경이 되었을 때, 개념 스키마에 영향이 가지 않아리적 독립성이 있다고 말한다. 마찬가지로 마케팅 동의 여부라는 새로운 필드가 생긴다고 해서 User A가 사용하던 주문 고객 정보 조회가 갑자기 안되면 물리적/논리적 독립성이 없다고 보면 된다.

 이러한 독립성을 제공하기 위해 매핑(mapping, 사상)을 각 level 사이에 둘 수 있다. 교재에는 외부-개념 단계에만 되어 있으나 개념-내부 단계에서도 매핑이 있다.

 

 

 

참고

- 영진닷컴 도서 `2019 이기적 SQL 개발자 이론서 + 문제집` 

- IT 위키 - 데이터베이스 독립성:  https://itwiki.kr/w/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EB%8F%85%EB%A6%BD%EC%84%B1

반응형