본문 바로가기
SQL Professional

[독학! SQLP] 데이터 모델? 데이터 모델링? 데이터 독립성?

by 개발자의 2025. 8. 18.

1. 데이터 모델링

  • 정의: 현실 세계를 데이터베이스에 옮기기 위해 추상화·단순화·정확화 하는 과정
  • 목적: 통합적 관점에서 개념(논리) 스키마 설계
  • 특징 (3가지)
    1. 추상화: 현실을 일정 수준으로 단순하게 표현
    2. 단순화: 누구나 쉽게 이해할 수 있도록 구조화
    3. 정확화: 데이터 간 의미와 제약조건을 정확히 표현
  • 유의사항
    • 중복 : 동일 데이터 반복 저장 → 불필요한 저장공간 낭비
    • 비유연성 : 변경·확장 어려운 설계
    • 비일관성 : 같은 데이터가 서로 다르게 관리

2. 데이터 모델

  • 정의: 데이터 모델링의 결과물 (= 개념 스키마) 
  • 구성요소:
    • 엔터티(Entity, 테이블)
    • 속성(Attribute, 칼럼)
    • 관계(Relationship, PK/FK)
    • 제약조건(Constraint, 무결성 제약)

3. 스키마 구조 (ANSI 3단계 스키마 구조)

(1) 외부 스키마

  • 사용자/응용프로그램 관점 → 개별 맞춤 뷰
    • 마케팅팀 : 고객명/연락처만 조회
    • 영업팀 : 구매내역 중심 조회

(2) 개념(논리) 스키마

  • 데이터베이스 전체를 통합한 논리적 설계
  • 테이블 구조, 칼럼, 데이터 타입, 관계(1:1, 1:N) 정의

(3) 내부(물리) 스키마

  • 실제 저장 방식 정의
  • 저장 구조, 인덱스, 파티션, 접근 경로 등

4. 데이터 독립성

데이터베이스 변경 시 상위 계층이 영향받지 않는 성질

구분 정의 예시 구현 난이도
논리적 데이터 독립성 개념 스키마 변경이 외부 스키마에 영향 없음 테이블 분할/컬럼 추가해도 뷰, 앱 영향 없음 어렵다
물리적 데이터 독립성 내부 스키마 변경이 개념 스키마에 영향 없음 인덱스 추가/저장소 변경해도 SQL 변경 불필요 쉽다