SQLD STUDY NOTE · PART 1 · 01
데이터 모델링과 엔터티
데이터 모델링의 기본 개념과 엔터티의 정의, 분류, 검증 기준을 정리한다.
모델링이란
모델(model)은 복잡한 현실을 일정한 표기법으로 축소·정리한 것이다. 현실 세계를 그대로 다룰 수 없기 때문에 필요한 부분만 뽑아서 구조화한다. 정의는 학자마다 조금씩 다르지만, 결국 "복잡한 것을 단순하게 표현한다"는 점은 동일하다.
모델링이 하는 일은 세 가지로 나뉜다.
추상화현실을 일정한 표기법의 형식에 맞춰 옮긴다.
단순화제한된 표기법으로 복잡함을 걷어내 이해를 쉽게 만든다.
명확화대상의 애매모호함을 제거하고 정확하게 기술한다.
모델링은 세 가지 관점으로 나눌 수 있다. 데이터 관점은 어떤 데이터가 있고 서로 어떤 관계인지, 프로세스 관점은 업무가 무엇을 하는지, 상관 관점은 프로세스가 데이터에 어떤 영향을 주는지를 본다. 데이터 모델링은 이 중 데이터 관점을 다룬다.
ENTITY
엔터티란
데이터 모델의 가장 기본 단위다. 여러 학자의 정의를 정리하면 다음과 같다.
| 정의한 사람 | 정의 |
|---|---|
| Peter Chen (1976) | 변별할 수 있는 사물 |
| C.J Date (1986) | 데이터베이스 내에서 변별 가능한 객체 |
| James Martin (1989) | 정보를 저장할 수 있는 어떤 것 |
| Thomas Bruce (1992) | 정보가 저장될 수 있는 사람, 장소, 물건, 사건, 개념 |
정리하면, 엔터티는 업무상 관리가 필요한 대상이며 저장되어야 하는 것(Thing)이다. 사람·장소·물건 같은 물리적 대상뿐만 아니라, 조직·보험상품처럼 개념으로만 존재하는 것도 엔터티가 될 수 있다.
엔터티는 인스턴스의 집합이다. 과목이라는 엔터티가 있으면 수학·영어·국어가 각각 인스턴스다. 그리고 엔터티는 인스턴스들의 성격을 나타내는 속성을 가진다.
엔터티 검증 기준 6가지
도출한 대상이 엔터티인지 아래 6가지로 검증한다.
- 업무에서 필요한 정보인가. 환자는 병원 시스템에서는 반드시 관리해야 할 엔터티지만, 일반 회사의 인사 시스템에서는 관리 대상이 아니다. 같은 대상이라도 업무 영역에 따라 엔터티 여부가 갈린다.
- 유일한 식별자로 식별 가능한가. 이름은 동명이인이 있을 수 있어 식별자가 되지 못하지만, 사원번호는 회사가 고유하게 부여하므로 식별자가 될 수 있다.
- 두 개 이상의 인스턴스가 영속적으로 존재하는가. '한 개'가 아니라 '두 개 이상'이라는 집합 개념이 핵심이다.
- 업무 프로세스가 실제로 이 엔터티를 이용하는가. 어떤 프로세스에서도 다뤄지지 않는 엔터티는 잘못 도출되었거나 프로세스 분석이 미진했다는 신호다.
- 속성을 가지고 있는가. 이름만 있고 속성이 없는 엔터티는 관계나 속성 정의가 빠졌다는 뜻이다. 다만 관계엔터티(Associative Entity)는 주식별자 속성만 있어도 인정된다.
- 다른 엔터티와 최소 한 개 이상의 관계가 있는가. 단, 통계용 엔터티나 코드성 엔터티, 시스템 내부용 엔터티(트랜잭션 로그 등)는 관계를 생략하는 것이 오히려 정상이다.
주의. 여섯 번째 기준을 기계적으로 적용하면 코드 테이블까지 전부 관계로 연결하려는 실수를 하기 쉽다. 코드성 엔터티는 관계를 그려 넣을수록 모델의 가독성만 떨어뜨린다.
엔터티 분류
유무형 기준과 발생시점 기준, 두 가지 축으로 나눈다.
| 유무형 분류 | 설명 | 예시 |
|---|---|---|
| 유형엔터티 | 물리적 형태가 있고 안정적으로 지속 활용됨 | 사원, 물품, 강사 |
| 개념엔터티 | 물리적 형태 없이 개념으로만 관리됨 | 조직, 보험상품 |
| 사건엔터티 | 업무 수행 중 발생, 발생량이 많고 통계에 활용 | 주문, 청구, 미납 |
| 발생시점 분류 | 설명 | 예시 |
|---|---|---|
| 기본엔터티 | 업무에 원래 존재, 독립적으로 생성. 다른 엔터티의 부모 역할 | 사원, 부서, 고객, 상품 |
| 중심엔터티 | 기본엔터티로부터 발생, 업무의 중심, 데이터량이 많음 | 계약, 주문, 매출 |
| 행위엔터티 | 두 개 이상의 부모엔터티로부터 발생, 자주 변경됨 | 주문목록, 사원변경이력 |
엔터티 명명 원칙
- 현업에서 실제로 쓰는 용어를 그대로 쓴다.
- 약어는 되도록 쓰지 않는다.
- 단수명사를 쓴다.
- 모든 엔터티 이름은 서로 겹치지 않게 유일하게 부여한다.
- 엔터티가 생성된 의미 그대로 이름을 붙인다.
다섯 번째가 실무에서 가장 자주 깨진다. 고객이 제품을 주문해서 생긴 행위엔터티를 '고객제품'이라 부르면, '주문한 제품'인지 '보유한 제품'인지 구분이 안 된다.
'기초 CS > 데이터베이스' 카테고리의 다른 글
| 04. 관계형 데이터베이스와 DML (0) | 2026.08.03 |
|---|---|
| 03. 정규화 / 반정규화 (0) | 2026.08.03 |
| 02. 속성, 관계, 식별자 (1) | 2026.08.02 |