Post

SQLD 자격증 공부 - 데이터 모델링 part.3

SQLD 자격증 대비를 위한 3층 스키마 구조의 개념, 각 단계 설명, 데이터 독립성의 유형 및 실제 적용 사례를 정리한 글입니다.

SQLD 자격증 공부 - 데이터 모델링 part.3

03. 3층 스키마 (3-Level Schema)

데이터 독립성이 필요한 이유

데이터베이스를 효율적이고 안정적으로 운영하려면 데이터의 구조가 응용 프로그램에 종속되지 않는 것, 즉 독립성(Data Independence) 확보가 중요합니다.

과거 파일 기반 시스템은 사용자 접근 방식에 따라 파일 구조가 종속되어야 했습니다. 하지만 현대 DBMS는 3단계 구조를 통해 이 문제를 해결하며, 사용자, 설계자, 개발자 각각이 보는 데이터의 관점을 분리합니다.

데이터 독립성을 확보하면?

  • 응용 프로그램을 변경하지 않고도 DB 구조 수정 가능
  • 유지보수 편의성과 유연성 향상
  • 요구사항 변화에도 탄력적인 대응 가능

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

3층 스키마는 ANSI 표준에 의해 정의된 개념으로, DB를 외부 스키마, 개념 스키마, 내부 스키마로 분리하여 독립성을 확보합니다.

계층설명대상자
외부 스키마 (External Schema)- 사용자 관점의 뷰(View) 구성
- 사용자가 관심 있는 데이터만 제공
- 각 사용자마다 서로 다른 스키마 가능
사용자, 고객 서비스 팀 등
개념 스키마 (Conceptual Schema)- 데이터 전체 구조와 관계 표현
- 응용 시스템 간 데이터 통합
- 비즈니스 중심 설계
설계자, 분석가
내부 스키마 (Internal Schema)- 물리적 저장 구조 (파일 구조, 인덱스 등)
- 실제 저장 포맷, 저장 방식 등 명세
개발자, DBA

요청이 외부 스키마 → 개념 스키마 → 내부 스키마로 전달되며, 응답은 내부 → 개념 → 외부로 흐릅니다. 이를 사상(mapping)이라고 부릅니다.


데이터 독립성의 유형

3층 스키마는 아래와 같은 독립성을 보장합니다:

독립성설명특징
논리적 독립성- 개념 스키마 변경이 외부 스키마에 영향을 주지 않음
- 구조 변경 없이 응용 프로그램 유지 가능
- 사용자 중심 설계 유지
- 기능 확장에 유리
물리적 독립성- 내부 스키마 변경이 개념 스키마에 영향 없음
- 저장 장치 변경, 인덱스 수정 가능
- 성능 향상 가능
- 유지보수 용이

예를 들어:

  • 새로운 속성을 개념 스키마에 추가해도 사용자 화면(UI)은 그대로 유지된다면 → 논리적 독립성 확보
  • DB 저장 방식을 변경했는데도 응용 프로그램에서 문제 없이 동작한다면 → 물리적 독립성 확보

예시로 이해하는 3층 스키마

  • CS팀 Aiden이 고객 이름, 전화번호, 주소만 필요한 경우 → 외부 스키마 #1
  • CS팀 Mae가 미성년 여부 판단을 위해 생년월일이 필요한 경우 → 외부 스키마 #2
  • 전체 고객 데이터를 저장하고 있는 DB 설계 → 개념 스키마
  • 이 데이터를 어떤 파일 구조로 저장할지 결정 → 내부 스키마

→ Mae를 위해 14세 이상 여부 필드를 개념 스키마에 추가해도 Aiden의 업무는 영향을 받지 않아야 함 → 내부적으로 데이터를 더 빠르게 처리하기 위해 파일 구조를 바꿔도 사용자에겐 변화가 없어야 함

요약

  • 3층 스키마는 사용자-설계자-개발자의 관점을 분리해 데이터 독립성을 보장
  • 논리적 독립성: 구조 변경 없이 사용자 응용 프로그램 유지
  • 물리적 독립성: 저장 방식 변경 시에도 전체 설계에는 영향 없음
  • 사상(mapping)을 통해 각 계층 간 요청/응답을 전달함

연습문제 복습

문제 1: 데이터 독립성의 필요성이 아닌 것은?

  • (1) 데이터 복잡도 증가 ◯
  • (2) 요구사항 대응 증가 X
  • (3) 유지보수 중복성 증가 ◯
  • (4) 유지보수 비용 증가 ◯

문제 2: 물리적 저장 구조를 의미하는 스키마는?

  • (1) 외부 스키마 X
  • (2) 개념 스키마 X
  • (3) 내부 스키마 ◯
  • (4) 논리 스키마 X

문제 3: 논리적 독립성과 관련 없는 설명은?

  • (1) 물리적 구조 영향 없이 개념 구조 변경 가능 X
  • (2) 사용자 특성에 맞게 변경 가능 ◯
  • (3) 통합 구조로 변경 가능 ◯
  • (4) 개념 스키마 변경이 외부 스키마에 영향 없음 ◯
This post is licensed under CC BY 4.0 by the author.