[SQLD] 15. 데이터 모델의 이해

TJK·2025년 8월 11일

데이터 모델의 이해

데이터 모델링은 현실 세계의 복잡한 업무 프로세스를 정보 시스템으로 구축하기 위해, 데이터의 구조와 관계를 체계적으로 정의하는 과정임. 건물의 설계도와 같이 시스템 개발의 근간을 이루며, 전체 시스템의 품질에 가장 큰 영향을 미침.


1. 데이터 모델링의 특징

데이터 모델링은 복잡한 현실을 일정한 형식에 맞춰 표현하는 과정으로, 다음 세 가지 특징을 가짐.

  1. 추상화 (Abstraction): 현실 세계의 다양한 요소 중, 정보 시스템 구축에 필수적인 핵심 데이터만 추출하여 간결하게 표현함.
  2. 단순화 (Simplification): 복잡한 현실의 문제를 누구나 쉽게 이해할 수 있는 약속된 규칙과 형태로 표현함.
  3. 명확화 (Clarification): 모델을 보는 모든 사람이 오해 없이 동일한 의미로 해석할 수 있도록, 애매모호함을 제거하고 명확하게 정의함.

2. 데이터 모델링의 중요성 및 유의점

2.1 중요성

  • 파급 효과 (Leverage): 개발 초기 단계인 모델링의 오류는 이후 전 과정에 영향을 미쳐 막대한 수정 비용을 초래하므로, 초기 모델링의 완성도가 매우 중요함.
  • 간결한 표현 (Conciseness): 잘 만들어진 데이터 모델(ERD 등)은 시스템의 데이터 구조와 업무 규칙을 가장 명확하고 간결하게 표현하는 의사소통 도구가 됨.
  • 데이터 품질 (Data Quality): 데이터의 중복을 방지하고, 데이터 간의 관계를 명확히 정의함으로써 데이터의 일관성과 정확성을 보장함.

2.2 유의점 (SQLD 핵심 포인트)

좋은 데이터 모델은 다음 세 가지를 반드시 고려하여 설계해야 함.

유의점설명해결 방안
중복성
(Duplication)
동일한 데이터가 여러 곳에 저장되어 데이터 불일치를 유발할 가능성.정규화(Normalization)를 통해 중복을 최소화하고 데이터를 원자적으로 관리함.
비유연성
(Inflexibility)
업무 변화에 대응하기 어려운 경직된 데이터 구조.핵심 데이터와 부가 데이터를 분리하고, 통합 가능한 구조로 설계하여 향후 확장에 유연하게 대처함.
비일관성
(Inconsistency)
데이터 간의 관계가 명확하지 않아 논리적으로 모순된 데이터가 발생하는 상태.참조 무결성(FK) 등 제약조건을 활용하여 데이터 간의 논리적 관계를 명확히 정의함.

3. 데이터 모델링의 3단계 절차

단계목적주요 활동산출물비유
개념적 모델링업무의 핵심 개념과 관계를 추상적으로 정의- 핵심 엔터티 추출
- 엔터티 간 관계 정의
- 기술적 요소 배제
개념적 ERD아이디어 스케치
논리적 모델링데이터베이스의 논리적 구조를 상세하게 설계- 모든 엔터티, 속성, 관계 정의
- 정규화(Normalization) 수행
- 식별자(PK, FK) 정의
논리적 ERD상세 설계도
물리적 모델링논리적 모델을 실제 데이터베이스에 구현- 특정 DBMS에 맞는 테이블, 컬럼명 정의
- 데이터 타입(VARCHAR2, NUMBER) 정의
- 인덱스, 제약조건 등 물리적 객체 설계
물리적 ERD, CREATE 스크립트실제 건축/시공

4. 데이터 독립성

데이터 모델링을 단계별로 나누는 주된 이유는 데이터 독립성을 확보하기 위함임. 데이터 독립성이란, 한 부분의 변경이 다른 부분에 미치는 영향을 최소화하는 것을 의미함.

4.1 데이터베이스 3단계 스키마 구조

스키마설명대응 모델링 단계
외부 스키마 (External Schema)개별 사용자나 응용 프로그램이 보는 관점의 데이터베이스. (View)-
개념 스키마 (Conceptual Schema)데이터베이스 전체의 논리적 구조와 관계를 정의. (전체 설계도)논리적 모델링
내부 스키마 (Internal Schema)데이터가 물리적 저장 장치에 어떻게 저장되는지를 정의.물리적 모델링

4.2 데이터 독립성의 종류

  1. 논리적 데이터 독립성: 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음.
    • 예시: User 테이블에 phone_number 컬럼을 추가해도, 기존에 만들어 둔 사용자 조회 화면은 코드를 수정할 필요가 없음.
  2. 물리적 데이터 독립성: 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음.
    • 예시: 데이터베이스의 저장 파일 위치를 바꾸거나, 더 빠른 하드디스크로 교체해도 기존의 SQL 쿼리는 수정 없이 그대로 동작함.

5. 데이터 모델의 3요소

요소정의특징예시 (인스타그램)
엔터티
(Entity)
업무상 관리해야 할 정보의 대상 또는 의미 있는 명사.- 2개 이상의 속성을 가짐
- 인스턴스(실제 데이터) 존재
- 다른 엔터티와 구별 가능
User, Post, Comment
속성
(Attribute)
엔터티가 가지는 세부 정보. 더 이상 쪼갤 수 없는 최소 단위.- 엔터티의 특징을 설명함
- 각 속성은 고유한 이름과 데이터 타입을 가짐
User 엔터티의 user_id, name, email
관계
(Relationship)
엔터티 간의 의미 있는 연관성 또는 상호작용.- 관계 차수(1:1, 1:N, N:M)와 선택성(필수/선택)을 가짐UserPost를 '작성한다' (1:N)

6. 시험 문제 유형 및 함정 포인트

  • 모델링 특징: '추상화', '단순화', '명확화'의 개념을 정확히 이해하고 구분하는 문제가 출제됨.
  • 모델링 유의점: '중복성', '비유연성', '비일관성'의 개념을 묻고, 각 문제점에 대한 해결 방안(정규화, 참조 무결성 등)을 연결하는 문제가 나옴.
  • 모델링 3단계: 각 단계(개념적, 논리적, 물리적)의 목적과 주요 활동, 산출물을 구분하는 것은 단골 출제 포인트임. 특히, 정규화는 논리적 모델링 단계에서 수행된다는 점을 기억해야 함.
  • 데이터 독립성: '논리적 독립성'과 '물리적 독립성'의 정의를 묻고, 각 독립성과 관련된 스키마 변경 예시를 구분하는 문제가 출제됨.
  • 모델 3요소: '엔터티', '속성', '관계'의 정의를 묻거나, 주어진 시나리오에서 각 요소를 식별하는 문제가 나옴. 엔터티는 '저장되어야 하는 정보의 집합'이라는 점을 기억해야 함.
profile
Hello world!

0개의 댓글