← Week 8 목차 다음: Week 10 →

Week 9: 시스템 요구사항 구조화 2 - 데이터 모델링 🗃️


📌 학습 목표


🎯 데이터 중심 접근법

개념 정의

데이터를 중심으로 시스템을 분석하고 설계하는 방법론

프로세스 중심 vs 데이터 중심

구분 프로세스 중심 데이터 중심
초점 업무 처리 절차 저장할 데이터 구조
안정성 프로세스 변경에 민감 상대적으로 안정적
도구 DFD, Mini-Spec ERD, 데이터 사전
장점 업무 흐름 명확화 데이터 무결성 보장

데이터 중심 접근법의 장점 ✨


🏗️ ERD (Entity-Relationship Diagram) 기초

ERD의 정의 및 목적


👥 엔티티 (Entity)

엔티티 정의

독립적으로 존재할 수 있으며, 구별 가능한 객체의 집합

엔티티 유형

1. 강한 엔티티 (Strong Entity) 💪

┌─────────────┐
│     고객     │
├─────────────┤
│  고객번호    │ ← 기본키
│  고객명      │
│  연락처      │
└─────────────┘

2. 약한 엔티티 (Weak Entity) 🤝

╔═════════════╗
║   주문상세   ║
╠═════════════╣
║  순번        ║ ← 부분키
║  수량        ║
║  단가        ║
╚═════════════╝

엔티티 식별 기준 ✅


🔤 속성 (Attribute)

속성 분류

1. 구성에 따른 분류

단순 속성 (Simple Attribute)

복합 속성 (Composite Attribute)

2. 값의 수에 따른 분류

단일값 속성 (Single-valued)

다중값 속성 (Multi-valued)

3. 값의 유도에 따른 분류

저장 속성 (Stored Attribute)

유도 속성 (Derived Attribute)

속성 표기법

┌─────────────────┐
│      직원        │
├─────────────────┤
│  * 직원번호       │ ← 기본키 (*)
│    직원명        │
│    주소          │ ← 복합속성
│    ○ 취미       │ ← 다중값 (○)
│   (나이)         │ ← 유도속성 ()
└─────────────────┘

🔗 관계 (Relationship)

관계의 정의

두 개 이상의 엔티티 간에 존재하는 연관성

관계의 유형

1. 1:1 관계 (One-to-One)

2. 1:N 관계 (One-to-Many)

3. M:N 관계 (Many-to-Many)

카디널리티 & 참여도

카디널리티 (Cardinality) 🔢

참여도 (Participation) 👫

고객 ──────< 주문 >══════ 제품
   │ 1         N    N    M │
   └─ 부분참여      전체참여 ─┘

📐 정규화 (Normalization)

정규화의 목적 🎯

정규화 단계

1차 정규형 (1NF) 📝

조건: 모든 속성이 원자값(atomic value)을 가져야 함

비정규화 테이블 | 학생ID | 학생명 | 수강과목 | |——–|———|———–| | S001 | 김철수 | 수학, 영어, 과학 |

1NF 적용 | 학생ID | 학생명 | 수강과목 | |——–|———|———–| | S001 | 김철수 | 수학 | | S001 | 김철수 | 영어 | | S001 | 김철수 | 과학 |

2차 정규형 (2NF) 📋

조건: 1NF + 부분함수 종속성 제거

문제 상황: 복합키의 일부에만 종속되는 속성 존재

2NF 적용: 별도 테이블로 분리

3차 정규형 (3NF) 📊

조건: 2NF + 이행함수 종속성 제거

문제 상황: 기본키가 아닌 속성에 종속되는 속성 존재

3NF 적용:

BCNF (Boyce-Codd Normal Form) 🏆

조건: 3NF + 모든 결정자가 후보키

적용 상황: 여러 후보키가 존재하고 서로 겹치는 경우


🛠️ 정규화 실습 예제

초기 비정규화 테이블

주문정보 테이블
┌──────┬────────┬──────┬──────┬──────┬──────┬──────┐
│주문번호│ 주문일자 │고객명 │고객주소│상품명 │수량  │단가  │
├──────┼────────┼──────┼──────┼──────┼──────┼──────┤
│ O001 │2024-03-15│홍길동│서울시│사과,바나나│2,3│1000,1500│
└──────┴────────┴──────┴──────┴──────┴──────┴──────┘

단계별 정규화

1NF 적용: 다중값 분해

주문상세 테이블
┌──────┬────────┬─────┬──────┬─────┬────┬────┐
│주문번호│ 주문일자 │고객명│고객주소│상품명│수량│단가│
├──────┼────────┼─────┼──────┼─────┼────┼────┤
│ O001 │2024-03-15│홍길동│ 서울시│ 사과│  2│1000│
│ O001 │2024-03-15│홍길동│ 서울시│바나나│  3│1500│
└──────┴────────┴─────┴──────┴─────┴────┴────┘

2NF 적용: 부분함수 종속 제거

주문 테이블                     주문상세 테이블
┌──────┬────────┬─────┬──────┐  ┌──────┬─────┬────┬────┐
│주문번호│ 주문일자 │고객명│고객주소│  │주문번호│상품명│수량│단가│
└──────┴────────┴─────┴──────┘  └──────┴─────┴────┴────┘

3NF 적용: 이행함수 종속 제거

주문 테이블           고객 테이블         상품 테이블
┌──────┬────────┬───┐ ┌───┬─────┬──────┐ ┌─────┬────┐
│주문번호│ 주문일자 │고객ID│ │고객ID│고객명│고객주소│ │상품명│단가│
└──────┴────────┴───┘ └───┴─────┴──────┘ └─────┴────┘

주문상세 테이블
┌──────┬─────┬────┐
│주문번호│상품명│수량│
└──────┴─────┴────┘

📚 참고 자료


**© 2024-2025 한국공학대학교 경영학부 All Rights Reserved**