엔터티의 개념
엔터티는 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 엔터티는 그 집합에 속하는 개체들의 특성을 설명하는 속성Attribute을 갖는데, 이 속성은 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성일 수도 있고 일부에만 해당하는 개별 속성일 수도 있다. 또 집합의 특성을 가지며 순수 개체이거나 행위 집합이다.
엔터티와 인스턴스에 대한 내용과 표기법
엔터티는 대부분 사각형으로 표현한다. 엔터티와 엔터티 사이의 ERD는 다음과 같다.
엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이다. 업무에서 관리되어야 하는 집합이다.
2. 유일한 식별자에 의해 식별 가능하다.
3. "두 개 이상"의 인스턴스의 집합이다.
4. 엔터티는 업무 프로세스에 의해 이용된다.
5. 반드시 속성이 있다.
예외적으로, 관계엔터티Associative Entity의 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정한다.
6. 엔터티는 다른 엔터티와 꼭 관계가 있다.
단 관계를 생략하는 경우도 있다.
- 통계성 엔터티 도출: 업무 진행 엔터티로부터 통계 업무만(Read Only)을 위해 별도로 엔터티를 다시 정의하게 되므로 관계가 생략된다.
- 코드성 엔터티 도출: 너무 많은 엔터티와 엔터티간 관계 설정으로 인해 데이터 모델의 읽기효율성Readability이 저하되어 모델링 작업이 힘들 수 있다. 또 코드성 엔터티는 물리적 테이블과 프로그램 구현 이후에도 외부 키에 의해 참조무결성을 체크하기 위한 규칙을 DB 기능에 맡기지 않는 경우가 많아 논리적/물리적으로도 관계를 설정할 이유가 없다.
- 시스템 처리시 내부 필요에 의한 엔터티(transaction log table 등) 도출: 트랜잭션이 업무적으로 연관된 테이블과 관계 설정이 필요하지만 업무 상 필요가 아니라 시스템 내부적인 필요에 의해 생성된 엔터티이므로 관계를 생략한다.
엔터티의 분류
1. 유무형에 따른 분류
유형 엔터티Tangible Entity
-업무에서 도출되며 지속적으로 사용되는 엔터티
-물품, 사원 등
-물리적 형태. 지속적. 안정적. 업무도출.
개념 엔터티Conceptual Entity
-물리적 형태는 없고 관리해야 할 개념적으로 사용되는 엔터티
-조직, 보험상품 등
-개념적.
사건 엔터티Event Entity
-업무를 수행할 때(비즈니스 프로세스 실행할 때) 발생되는 엔터티
-비교적 발생량이 많고 각종 통계 자료에 이용
-주문, 청구, 미납 등
-업수발생.
2. 발생시점에 따른 분류
기본 엔터티Basic Entity = 키 엔터티
-다른 엔터티의 영향을 받지 않고 독립적으로 생성되는 엔터티
-타 엔터티의 부모 역할을 하며 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐
-사원, 부서, 고객, 상품, 자재 등
-독립생성. 고유주식별자.
중심 엔터티Main Entity
-기본 엔터티와 행위 엔터티 중간에 있는 엔터티로 기본 엔터티로부터 발생되고 행위 엔터티를 생성함
-업무처리에 중심이 되며 부모 엔터티(키 엔터티)로부터 파생된다
-계약, 사고, 청구, 주문, 매출 등
-생성
행위 엔터티Active Entity
-두 개 이상의 부모엔터티로부터 발생되는 엔터티
-업무처리를 하는 동안에 발생되는 엔터티로 자주 변경되고 지속적으로 정보가 추가된다(보통 양이 가장 많다)
-주문 목록, 사원변경이력 등
엔터티의 명명
- 가능하면 현업에서 사용하는 용어 사용
- 가능하면 약어를 사용하지 않음
- 단수명사를 사용
- 모든 엔터티는 유일한 이름 부여
- 엔터티 생성 의미대로 이름 부여 (원활한 커뮤니케이션을 위함)
'SQLD > 데이터 모델링의 이해' 카테고리의 다른 글
2-1 성능 데이터모델링의 개요 (0) | 2020.02.16 |
---|---|
1-5 식별자 (0) | 2020.02.16 |
1-4 관계 (0) | 2020.02.13 |
1-3 속성 (0) | 2020.02.13 |
1-1 데이터 모델의 이해 (0) | 2020.02.10 |