<aside> 📖
학습 목표
개념적 모델링의 핵심은 현실 세계의 객체를 데이터베이스에 맞게 구조화하는 작업입니다. 이 중 첫 번째 단계가 바로 엔티티(Entity) 도출이며, 전체 모델링의 뼈대를 형성합니다. 단순히 명사를 추출하는 것 이상의 사고가 필요하며, 이후 관계(Relationship), 속성(Attribute) 도출로 이어지는 기초가 됩니다.
*엔티티(Entity)*는 데이터베이스에서 저장하고 관리해야 할 정보 단위, 즉 현실 세계의 객체(Object)를 의미합니다.
"정보를 저장해야 할 필요가 있는 실세계의 객체 또는 개념"
| 실세계 개념 | 데이터 모델 엔티티 | 설명 |
|---|---|---|
| 고객 | Customer | 회원가입한 사용자 |
| 상품 | Product | 판매 중인 아이템 |
| 주문 | Order | 고객이 생성한 구매 요청 |
| 결제 | Payment | 주문에 대한 지불 처리 정보 |
| 장바구니 이벤트 | CartEvent | 장바구니 담기/제거 기록 추적 등 |
올바른 엔티티는 다음 특성을 충족해야 합니다:
| 특성 | 설명 |
|---|---|
| 식별 가능성 | 고유하게 구별할 수 있어야 함 (PK 가능 여부) |
| 지속성 | 일시적인 정보가 아닌 관리/보존 가치가 있어야 함 |
| 속성 보유 | 의미 있는 속성을 갖고 있어야 함 (컬럼화 가능) |
| 관계 가능성 | 다른 엔티티와 의미 있는 관계를 가질 수 있어야 함 |
| 항목 | 이유 |
|---|---|
| 임시 통계 | 물리적 저장보다 조회용 산출물에 가깝다 |
| 시스템 메시지 | 엔티티로 모델링하기보단 상수 테이블이나 설정으로 처리함 |