DB/Database Knowledge

[DB] 데이터베이스 엔터티(Entity)란 무엇인가?

코딩팩토리 2022. 10. 31. 23:33

 엔터티(Entity)란? 

엔터티(Entity)를 그대로 번역하면 실제, 독립체라는 뜻으로 데이터 모델링에서 사용되는 객체라고 생각하시면 되겠습니다. 즉 엔터티(Entity)는 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 "어떤 것(Thing)"이라고 말할 수 있습니다. "어떤 것"이라고 부르는 것처럼 엔터티는 추상적인 의미를 가지며 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있습니다.

엔터티(Entity) : 엔터티는 데이터베이스 테이블이라고 생각하시면 이해가 편합니다.

인스턴스(Instance) : 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미합니다. 

속성(Attribute) : 속성은 인스턴스의 구성요소로써 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있습니다.

 

 

 적절한 엔터티의 특징  

적절한 엔터티의 특징은 아래와 같습니다. 도출한 엔터티가 이러한 특징들을 만족하지 못한다면 부적절한 엔터티일 수 있으며 엔터티 도출 프로세스의 재검토를 고려해보아야 합니다.

 

업무에서 필요로 하는 정보여야 한다.

엔터티는 반드시 시스템을 구축하고자 하는 업무에서 필요로 하고 관리하고자 하는 정보여야만 합니다. 예를 들어 환자라는 엔터티는 병원에 있어 반드시 필요한 엔터티이지만 일반 회사에서는 전혀 필요가 없는 엔터티입니다.

 

 

엔터티는 유일한 식별자가 있어야 한다.

어떤 엔터티에 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해 보아야 합니다. 일반적으로 회사의 직원들을 구분할 수 있는 방법은 이름이나 사원번호로 구분할 수 있습니다. 하지만 이름의 경우에는 동명이인이 될 수 있으므로 유일하게 식별될 수 없겠죠. 즉. 사원번호는 회사에 입사한 사람에게 고유하게 부여된 번호이므로 유일한 식별자가 될 수 있는 것입니다.

예) 회원 ID, 계좌번호

 

 

두 개 이상의 인스턴스의 집합이어야 한다.

영속적으로 존재하는 인스턴스의 집합이 되어야 합니다. 여기서 집합은 한 개가 아니라 반드시 두 개 이상일 때 집합이라고 합니다.  

예) 고객정보는 2명 이상 있어야 한다.

 

 

업무 프로세스에 의해 이용되어야 합니다.

이 엔터티가 필요하다고 생각하여 만들었는데 업무 프로세스에 의해 전혀 사용되지 않는다면 어떻게 해야 할까요? 이는 업무 분석, 업무 프로세스 도출이 적절히 이루어지지 않았음을 뜻합니다. 아래 그림과 같이 고립된 엔터티의 경우는 엔터티를 제거하거나 아니면 누락된 프로세스가 존재하는지 살펴보고 해당 프로세스를 추가해야 합니다.

예) 은행 시스템에는 고객, 계좌 엔터티가 필요하고 학생이라는 엔터티는 필요하지 않음

 

 

반드시 속성을 포함해야 합니다.

속성을 포함하지 않는 엔터티는 있어도 의미가 없습니다. 이런 엔티티는 관계가 생략되어 있거나 업무 분석이 미진하여 속성 정보가 누락되는 경우에 주로 발생합니다. 마찬가지로 주식별자만 존재하고 일반속성은 전혀 없는 경우도 마찬가지로 적절한 엔터티라고 할 수 없습니다. 단, 예외적으로 관계엔터티(Associative Entity)의 경우에만 주식별자 속성만 가지고 있어도 엔터티로 인정할 수 있습니다.

예) 고객 엔터티에는 회원 ID, 패스워드, 이름, 주소 전화번호의 속성이 존재한다.

 


다른 엔터티 간의 관계가 존재해야 합니다.

엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 합니다. 기본적으로 엔터티가 도출되었다는 것은 해당 업무 내에서 업무적인 연관성(존재적 연관성, 행위적 연관성)을 가지고 다른 엔터티와의 연관의 의미를 가지고 있음을 나타냅니다.

예) 고객은 계좌를 개설한다.

 

 

 엔터티의 분류 

엔터티는 존재하느냐 하지 않느냐와 같은 실체 유형에 따라 구분하거나 업무를 구성하는 모습에 따라 구분이 되는 발생 시점에 의해 분류할 수 있습니다.

 

유무형에 따른 분류

물리적 형태가 존재하는가?

종류 설명
유형 엔터티 - 업무에서 도출되며 지속적으로 사용되는 엔터티입니다.
- 예) 고객, 강사, 사원 등
개념 엔터티 - 유형 엔터티는 물리적 형태가 있지만 개념 엔터티는 물리적 형태가 없습니다.
- 개념적으로 사용되는 엔터티입니다.
- 예) 거래소 종목, 코스닥 종목, 생명보험 상품
사건 엔터티 - 비즈니스 프로세스를 실행하면서 생성되는 엔터티입니다.
- 예) 주문, 체결, 취소주문, 수수료 청구 등

 

발생 시점에 따른 엔터티 종류

언제 발생되느냐?

종류 설명
기본 엔터티(Basic Entity) - 키 엔터티라고도 합니다.
- 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티입니다.

- 예) 고객, 상품, 부서 등
중심 엔터티(Main Entity) - 기본 엔터티와 행위 엔터티 간의 중간에 있는것을 말합니다.
- 즉. 기본 엔터티로부터 발생되고 행위 엔터티를 생성하는것을 말합니다.
- 예) 계좌, 주문, 취소, 체결 등
행위 엔터티(Active Entity) - 2개 이상의 엔터티로부터 발생됩니다.
- 예) 주문 이력, 체결 이력 등