스키마 3단계와 데이터 독립성
하나의 데이터베이스를 누가 보느냐에 따라 다른 모습으로 보여주기 위한 구조가 ANSI/SPARC 3단계 스키마입니다. 건물로 비유하면 이렇습니다.
외부 스키마 (External) → "내가 쓰는 화면" (응용 프로그램/사용자 관점)
개념 스키마 (Conceptual) → "건물 전체 설계도" (조직 전체의 논리적 구조)
내부 스키마 (Internal) → "실제 콘크리트/배관" (물리적 저장 방식)- 외부 스키마: 개별 사용자나 응용 프로그램이 보는 화면. 조직 전체 데이터 중 자기한테 필요한 일부만 봅니다.
- 개념 스키마: 모든 응용이 공유하는 전체 데이터 구조. 접근 권한, 보안, 무결성 규칙도 여기 포함됩니다.
- 내부 스키마: 실제로 디스크에 어떻게 저장되는지(레코드 형식, 저장 순서 등).
세 단계는 서로 **사상(Mapping)**으로 연결되어 있습니다. 이 매핑 덕분에 한쪽이 바뀌어도 다른 쪽은 그대로 둘 수 있는데, 이걸 데이터 독립성이라 부릅니다.
- 논리적 데이터 독립성: 개념 스키마가 바뀌어도 외부 스키마는 안 바뀝니다. 예를 들어 테이블에 컬럼을 하나 추가해도, 기존 화면/코드는 고칠 필요가 없습니다.
- 물리적 데이터 독립성: 내부 스키마가 바뀌어도 개념 스키마는 안 바뀝니다. 예를 들어 조회 속도를 위해 인덱스를 새로 걸거나 저장 장치를 SSD로 바꿔도, 우리가 쓰는 테이블 정의나 SQL 문은 그대로입니다.
정리하면, 이 3단계 구조는 "화면 하나 바뀌었다고 저장 방식까지 다 뜯어고쳐야 하는" 상황을 막기 위한 설계입니다.
참고: 개인 Notion 학습 노트