SQL/데이터 통합

Entity 엔터티

domsam 2025. 2. 7. 17:10
반응형

1. 종류

- 실체 엔터티
- 행위 엔터티
- 가공 엔터티
- 기준 엔터티

 

1-1. 실체 엔터티

본질적인 데이터를 관리, 고객/제품/비품/사원/창고/수표/노트북 등이 실제 물체
대부분 부모(슈퍼타입)가 존재하지 않는다. 주로 업무의 시작점이 되는 데이터로 이루어지고 행위 엔터티의 주체가 된다. 
고객이 실체 엔터티인데 이름/나이/생년월일/성별 등이 그 사람의 본질을 규정하는 데이터이기 때문이다. 
주로 존재와 관련된 데이터라고 이해하면 좋다. 그 존재가 발생(생성)시키는 데이터는 행위 데이터이다.
실체 엔터티의 주 식별자는 단순한 것이 좋다. 대리키(인조 식별자)를 추천한다. 

카드의 경우, 플라스틱 카드 데이터는 실체 엔터티이지만 카드 계약은 고객이 카드를 사용하기 위해 계약한 데이터(행위 데이터)이다. 다만, 카드계약 엔터티가 카드를 계약한 행위에 의해 생성된 계약서를 관리하는 엔터티로 확대 해석하면 실체 엔터티에 가까울 수도 있다. 이러한 부분 때문에 모델러마다 판단하는 부분이 다를 수 있다.

 

1-2. 행위 엔터티

계약/주문/신청/입금 등이 대표적이다. 식별자는 주로 복합키로 구성된다. 업무 식별자를 도출한 후 행위 엔터티를 참조하는 엔터티가 있다면 대리키를 고려한다. 
데이터 생성 기준은 Who(행위의 주체), What(행위의 대상), When(행위의 시점), How(행위의 방법)이다.
Who, What이 주로 실체 엔터티, 따라서 두 개의 실체 엔터티의 교차 엔터티가 행위 엔터티가 된다. (M:N 관계 연결 엔터티)

 

1-3. 가공 엔터티

원천 데이터를 가공한 데이터를 관리한다. 주로 행위 엔터티를 가공하지만 실체 엔터티를 가공할 수도 있다.
집계, 요약, 임시 데이터를 생성하여 관리한다. 자주 조회되는 대량의 집계 내용을 미리 정리한다.
가공 엔터티의 데이터를 반영하는 방식은 크게 2가지이다.
  (1) 트랜잭션이 발생할 때마다 반영
  (2) 특정 시점에 일괄 반영

결국, 중복 데이터이기 때문에 특별한 이유 없이 사용하는 것은 바람직하지 않고 성능 문제가 발생 시 고려한다.

 

1-4. 기준 엔터티

업무의 기준이 되는 성격의 데이터이다. 우편번호/과목/권한/코드 엔터티가 대표적이다.


2. 엔터티명

이름이 지나치게 길지 않도록 한다. 가능한 어떤 데이터를 저장하는지 알 수 있는 이름이 좋다. 
‘~등록’, ‘~처리’, ‘~정보’, ‘~관리’ 등과 같이 의미 없는 단어는 사용하지 않는 것이 바람직하다.
‘고객기본정보’라는 엔터티명은 고객의 상세 데이터를 관리하는 엔터티가 없는 한 ‘기본’이라는 단어는 군더더기 표현이고, ‘정보’도 엔터티에서 관리되는 모든 것은 정보이므로 생략하여 ‘고객’ 이라는 엔터티명이 적절하다.

 

 

관계형 데이터 모델링 프리미엄 가이드 도서의 내용을 참고하였습니다.