쇼핑몰의 배송 담당자는 주문번호·받는 사람·주소만 본다. 정산 담당자는 주문번호·결제금액·결제일만 본다. DBA 는 이 데이터가 어느 디스크에 어떤 인덱스로 저장되는지를 본다. 같은 데이터를 세 층에서 바라보는 셈이다.
이렇게 층을 나눈 이유는 한 층의 변화가 다른 층으로 번지지 않게 하기 위해서다.
이 구조는 미국 표준 협회(ANSI)의 SPARC 위원회가 제안했다. 그래서 "ANSI/SPARC 3단계 스키마 구조"라고 부른다.
스키마 관점 하는 일 개수 외부 스키마 (External)사용자 관점각 사용자·응용 프로그램이 보는 데이터베이스를 정의한다. 뷰(View) 단계라고도 한다 여러 개 개념 스키마 (Conceptual)통합 관점모든 사용자의 관점을 통합한 조직 전체 의 데이터베이스를 정의한다. 엔터티·관계·제약 조건이 여기 담긴다 하나 내부 스키마 (Internal)물리적 저장 관점데이터가 실제로 저장되는 방식(레코드 구조, 인덱스, 저장 위치)을 정의한다 하나
배송 담당 화면 정산 담당 화면 고객 마이페이지
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 외부 1 │ │ 외부 2 │ │ 외부 3 │ ← 외부 스키마 (여럿)
└────┬─────┘ └────┬─────┘ └────┬─────┘
└──────────────┬──┴─────────────────┘
│ 외부/개념 사상 → 논리적 독립성
┌──────┴───────┐
│ 개념 스키마 │ ← 고객·상품·주문 전체 구조
└──────┬───────┘
│ 개념/내부 사상 → 물리적 독립성
┌──────┴───────┐
│ 내부 스키마 │ ← 파일·인덱스·블록
└──────────────┘
외부 스키마는 사용자마다 다르므로 여러 개다. 개념 스키마와 내부 스키마는 데이터베이스마다 하나다.
개념 스키마는 "조직 전체가 무엇을 저장하는가"를 담는다. 어떻게 저장하는지(인덱스·파일)는 내부 스키마의 일이다.
SQL 로 보면 외부 스키마는 CREATE VIEW 로 만든 뷰, 개념 스키마는 테이블 정의, 내부 스키마는 테이블스페이스·인덱스 같은 저장 구조에 가깝다. 정확히 일대일 대응하는 것은 아니고 이해를 돕는 비유다.
스키마 사이를 잇는 연결을 사상(Mapping) 이라 한다. 사상이 변화를 흡수하기 때문에 독립성이 생긴다.
독립성 무엇이 바뀌어도 무엇이 영향을 받지 않나 담당 사상 논리적 독립성 개념 스키마 외부 스키마 (응용 프로그램) 외부/개념 사상 (응용 인터페이스) 물리적 독립성 내부 스키마 개념 스키마 (와 외부 스키마) 개념/내부 사상 (저장 인터페이스)
쇼핑몰 예로 보면 다음과 같다.
논리적 독립성 : 고객 테이블에 마케팅수신여부 칼럼을 추가했다. 배송 담당 화면은 그 칼럼을 쓰지 않으므로 고칠 것이 없다.
물리적 독립성 : DBA 가 주문 테이블에 인덱스를 새로 만들고 다른 디스크로 옮겼다. 테이블 구조(개념 스키마)는 그대로이므로 SQL 도 그대로 돈다.
⚠️ 이름 짝을 헷갈리기 쉽다. 논리적 독립성은 개념 스키마 변경을, 물리적 독립성은 내부 스키마 변경을 견디는 성질이다. "논리"가 "외부"와 짝이라고 외우면 틀린다. 변경되는 쪽은 개념 스키마이고, 보호받는 쪽이 외부 스키마다.
저장 구조를 바꿀 때마다 응용 프로그램을 다시 짜야 한다.
사용자마다 필요한 데이터 모습이 달라도 하나의 구조를 억지로 공유해야 한다.
결국 유지 보수 비용이 커지고 데이터 복잡도가 올라간다. 3단계 스키마는 이 문제를 줄이려는 구조다.
스키마가 "완성된 데이터베이스를 보는 층"이라면, 모델링 단계는 "데이터베이스를 만들어 가는 순서"다. 둘은 다른 개념이다.
단계 추상화 수준 하는 일 쇼핑몰 산출물 개념적 모델링 가장 높다 업무 중심으로 핵심 엔터티와 관계 를 포괄적으로 그린다. 전사적 모델링, EA(Enterprise Architecture) 수립에 쓴다 고객 — 주문 — 상품 의 큰 그림 논리적 모델링 중간 시스템 구축을 위해 키·속성·관계를 정확하게 정의한다. 정규화 를 한다. 재사용성이 높다 주문 엔터티의 주식별자, 주문상품으로 M:N 해소, 각 속성 정의 물리적 모델링 가장 낮다 실제 DBMS 에 맞춰 테이블·칼럼 타입·인덱스·성능·저장 방식 을 정한다 ORDERS 테이블, ORDER_DT DATE, 인덱스·파티션 설계
추상화 높음 추상화 낮음
───────────────────────────────────────────────────────────▶
개념적 모델링 논리적 모델링 물리적 모델링
(무엇이 있나) (정확히 어떻게 생겼나) (DBMS 에 어떻게 올리나)
개념 → 논리 → 물리로 갈수록 구체적 이 되고, 특정 DBMS 에 가까워진다.
논리 모델은 아직 특정 DBMS 에 묶이지 않는다. 그래서 같은 논리 모델로 Oracle 이든 다른 DBMS 든 물리 모델을 만들 수 있다.
정규화는 논리 모델링 단계의 일이다. 성능을 위해 일부러 중복을 허용하는 반정규화 는 물리 모델링 단계에서 주로 검토한다(Week 2 에서 다룬다).
두 개념은 "추상적인 것에서 구체적인 것으로"라는 방향이 비슷해 함께 묻기 좋다.
비교 모델링 단계 3단계 스키마 무엇을 나누나 설계 과정 데이터베이스를 보는 층 나누는 이유 단계별로 구체화하며 설계 데이터 독립성 확보단계 이름 개념적 · 논리적 · 물리적 외부 · 개념 · 내부
이름에 "개념"이 둘 다 들어 있어 헷갈린다. 개념적 모델링 은 설계의 첫 단계이고, 개념 스키마 는 조직 전체의 통합된 데이터 구조다.
모델링 단계에는 "외부"가 없고, 3단계 스키마에는 "논리"가 없다. 보기에서 "논리 스키마"나 "외부 모델링 단계"가 나오면 용어를 섞은 것이다.
정보 시스템 구축 프로젝트는 대략 계획 → 분석 → 설계 → 개발 → 테스트 → 전환 순으로 진행한다. 모델링 단계는 이 흐름에 겹쳐진다.
프로젝트 단계 주로 하는 모델링 계획·분석 개념적 모델링, 논리적 모델링 설계 물리적 모델링 개발 이후 모델을 기준으로 DB 를 구축하고, 변경이 생기면 모델부터 고친다
데이터 모델과 프로세스 모델(업무 흐름)은 함께 만들어진다. 쇼핑몰의 "주문 접수" 프로세스를 정리하면서 주문 엔터티의 속성이 드러나는 식이다.
이 대응은 교재마다 표현이 조금씩 다르다. 분석 단계에서 논리 모델까지 끝낸다고 쓰는 교재도 있고, 설계 단계에 논리 모델을 넣는 교재도 있다. 순서(개념 → 논리 → 물리)는 같다.
내일은 모델의 첫 번째 요소인 엔터티의 특징과 분류를 본다.
스키마(Schema) : 데이터베이스의 구조와 제약 조건을 기술한 정의.
외부 스키마 : 사용자·응용 프로그램 하나가 보는 데이터베이스의 모습. 사용자 수만큼 있을 수 있다.
개념 스키마 : 모든 사용자 관점을 하나로 합친 조직 전체의 데이터 구조.
내부 스키마 : 데이터가 디스크에 실제로 저장되는 방식에 대한 정의.
사상(Mapping) : 두 스키마 사이를 대응시켜, 한쪽 변화가 다른 쪽으로 번지지 않게 하는 연결.
데이터 독립성 : 한 층의 스키마를 바꿔도 다른 층이 영향을 받지 않는 성질.
정규화 : 중복을 줄이도록 엔터티를 나누는 작업. 논리적 모델링 단계에서 한다.
EA(Enterprise Architecture) : 조직 전체의 업무·데이터·시스템 구조를 한눈에 정리한 청사진.
📝 연습 문제 선택지를 클릭하면 정답·해설이 펼쳐집니다.
ANSI/SPARC 3단계 스키마 구조에서 모든 사용자의 관점을 통합한 조직 전체의 데이터베이스 구조를 정의하는 스키마는?
A 외부 스키마 B 내부 스키마 C 개념 스키마 D 서브 스키마 쇼핑몰 DBA 가 주문 테이블의 인덱스를 다시 만들고 저장 위치를 옮겼지만 테이블 구조와 응용 프로그램은 수정하지 않았다. 이 상황과 가장 관련 있는 개념은?
A 물리적 독립성 B 논리적 독립성 C 외부/개념 사상 D 개념적 모델링 데이터 모델링 단계에 대한 설명으로 가장 적절하지 않은 것은?
A 개념적 모델링은 추상화 수준이 가장 높고 업무 중심적이다. B 논리적 모델링에서는 키·속성·관계를 정확하게 표현하고 정규화를 수행한다. C 물리적 모델링에서는 성능과 저장 방식 같은 물리적 성격을 고려한다. D 논리적 모델링은 특정 DBMS 의 데이터 타입과 인덱스를 확정하는 단계다. 3단계 스키마 구조에 대한 설명으로 옳은 것은?
A 외부 스키마는 데이터베이스마다 하나만 존재한다. B 논리적 독립성은 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않는 것이다. C 내부 스키마는 사용자마다 다르게 정의되는 뷰 단계다. D 3단계 스키마의 주된 목적은 데이터 중복을 늘려 조회 속도를 높이는 것이다. 다음 중 모델링 단계와 그 주된 산출물의 연결로 가장 적절한 것은?
A 개념적 모델링 – 칼럼별 데이터 타입과 인덱스 목록 B 물리적 모델링 – 전사 핵심 엔터티와 그 관계의 큰 그림 C 개념적 모델링 – 정규화를 마친 속성 정의서 D 논리적 모델링 – 주식별자와 속성, 관계가 정확히 정의된 모델