📌 데이터 모델 (Data Model)
현실 세계의 데이터를 추상화하여 구조화한 개념으로, 데이터 간의 관계를 정의하는 모델이다.
- 데이터베이스 시스템에서 사용되는 데이터의 논리적 구조를 설계하는 과정이다.
- 데이터를 효율적으로 저장하고 관리하기 위해 사용된다.
🛠 데이터 모델링 (Data Modeling)
데이터 모델을 개발하는 과정으로, 현실의 데이터를 추상화하여 데이터베이스 모델로 변환하는 작업이다.
데이터 모델링 과정
- 요구사항 수집 및 분석 📝
- 설계 🏗️
- 개념적 모델링: 비즈니스 개념을 개체와 관계로 표현 (후에 DBMS 선택)
- 논리적 모델링: ERD → RDB 매핑, 속성 정의(도메인 설정), 정규화 등
- 물리적 모델링: 실제 DB 구현을 위한 상세 설계
- 데이터베이스 구현 🚀
데이터베이스 생명주기 (Database Life Cycle)
🔄 데이터베이스의 생성부터 운영까지의 전체 과정:
1. 요구사항 수집 및 분석 📊
2. 설계 ✏️
3. 구현 💾
4. 운영 및 유지보수 🔍
5. 개선 및 최적화 🔄
🔗 ER 모델 (Entity-Relationship Model)
세상의 사물을 개체(Entity)와 개체 간의 관계(Relationship)로 표현하는 모델
- 개체(Entity): 독립적인 의미를 지닌 유무형의 사물 (속성으로 식별 가능)
- 관계(Relationship): 개체 간의 연관성
📊 ER 다이어그램 (ERD)
ER 모델을 표준화된 기호를 사용하여 그림으로 표현한 다이어그램
✅ 개체 (Entity) → 📦 직사각형
- 강한 개체: 독립적으로 존재 가능
- 약한 개체: 반드시 다른 개체(상위 개체)가 필요함
🔹 속성 (Attribute) → 🏷️ 타원
- 기본 키(Primary Key): 밑줄 (이름)
- 약한 개체의 식별자: 점선 밑줄 (⋯이름⋯)
- 다중값 속성: 이중 타원 ⭕⭕
- 유도 속성: 점선 타원 ⭕
- 복합 속성: 큰 타원 아래 작은 타원 연결 🔗
🔗 관계 (Relationship) → 🔷 마름모
- 개체 간의 연관성을 나타내는 개념
- 관계 집합: 관계로 연결된 개체들의 집합
관계 차수에 따른 유형
- 1진 관계: 한 개체가 자기 자신과 관계 🤝
- 2진 관계: 두 개의 개체 간 관계 🔄
- 3진 관계: 세 개의 개체 간 관계 🔗
관계 대응수
- 1:1 (일대일 관계) → 하나의 개체가 다른 하나의 개체에 대응 🏠↔️🏠
- 1:N (일대다 관계) → 하나의 개체가 여러 개체에 대응 👨🏫➡️👨🎓👨🎓👨🎓
- N:1 (다대일 관계) → 여러 개체가 하나의 개체에 대응 👨🎓👨🎓👨🎓➡️👨🏫
- N:M (다대다 관계) → 여러 개체가 여러 개체에 대응 🔀
🛠 ISA 관계 (역삼각형)
상위 개체의 특성에 따라 하위 개체가 결정되는 관계 (ex: 직원 → 정규직, 계약직)
✅ 참여 제약 조건
- 전체 참여: 모든 개체가 관계에 참여 (실선 2개) 🔗🔗
- 부분 참여: 일부 개체만 관계에 참여 (실선 1개) 🔗
📌 역할 (Role)
개체 간의 관계에서 각 개체가 수행하는 역할
🔄 순환적 관계 (Recursive Relationship)
자기 자신과 관계를 가지는 개체 유형
ER 다이어그램을 더욱 간결하게 표현하는 방법
- 개체(Entity) → 직사각형 📦
- 속성(Attribute) → 직사각형 내부에 포함 🏷️
- 관계(Relationship)
- 강한 관계 (비식별자 관계): 점선
- 약한 관계 (식별자 관계): 실선
🔄 매핑 (Mapping)
ER 모델을 실제 데이터베이스로 변환하는 과정
- 개체 타입 → 테이블
- 속성 → 컬럼
- 관계 → 외래 키 (Foreign Key)
- 1:1 관계 → 한쪽이 외래 키
- 1:N 관계 → N쪽이 외래 키
- N:M 관계 → 별도의 중간 테이블 생성
이 문서를 통해 데이터 모델과 데이터 모델링의 핵심 개념을 쉽게 이해하고, ER 다이어그램을 활용하여 데이터 구조를 체계적으로 설계할 수 있을 것이다! 🚀