개념
엔터티(Entity)를 그대로 번역하면 실제, 독립체라는 뜻으로 데이터 모델링에서 사용되는 객체다. 즉 엔터티(Entity)는 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 "어떤 것(Thing)"이라고 말할 수 있다. "어떤 것"이라고 부르는 것처럼 엔터티는 추상적인 의미를 가지며 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있다.
엔터티(Entity) : 엔터티는 데이터베이스 테이블
인스턴스(Instance) : 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합
속성(Attribute) : 속성은 인스턴스의 구성요소로써 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
적절한 엔터티 특징
도출한 엔터티가 이러한 특징들을 만족하지 못한다면 부적절한 엔터티일 수 있으며 엔터티 도출 프로세스의 재검토를 고려해보아야 한다.
업무에서 필요로 하는 정보여야 한다.
엔터티는 반드시 시스템을 구축하고자 하는 업무에서 필요로 하고 관리하고자 하는 정보여야만 한다. 예를 들어 환자라는 엔터티는 병원에 있어 반드시 필요한 엔터티이지만 일반 회사에서는 전혀 필요가 없는 엔터티다.
엔터티는 유일한 식별자가 있어야 한다
어떤 엔터티에 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해 보아야 한다. 일반적으로 회사의 직원들을 구분할 수 있는 방법은 이름이나 사원번호로 구분할 수 있다. 하지만 이름의 경우에는 동명이인이 될 수 있으므로 유일하게 식별될 수 없겠죠. 즉. 사원번호는 회사에 입사한 사람에게 고유하게 부여된 번호이므로 유일한 식별자가 될 수 있는 것이다.
예) 회원 ID, 계좌번호
두 개 이상의 인스턴스의 집합이어야 한다
영속적으로 존재하는 인스턴스의 집합이 되어야 한다. 여기서 집합은 한 개가 아니라 반드시 두 개 이상일 때 집합이라고 한다.
예) 고객정보는 2명 이상 있어야 한다.
업무 프로세스에 의해 이용되어야 한다
이 엔터티가 필요하다고 생각하여 만들었는데 업무 프로세스에 의해 전혀 사용되지 않는다면 어떻게 해야 할까? 이는 업무 분석, 업무 프로세스 도출이 적절히 이루어지지 않았음을 뜻한다. 아래 그림과 같이 고립된 엔터티의 경우는 엔터티를 제거하거나 아니면 누락된 프로세스가 존재하는지 살펴보고 해당 프로세스를 추가해야 한다.
예) 은행 시스템에는 고객, 계좌 엔터티가 필요하고 학생이라는 엔터티는 필요하지 않음
반드시 속성을 포함해야 한다
속성을 포함하지 않는 엔터티는 있어도 의미가 없다. 이런 엔티티는 관계가 생략되어 있거나 업무 분석이 미진하여 속성 정보가 누락되는 경우에 주로 발생한다. 마찬가지로 주식별자만 존재하고 일반속성은 전혀 없는 경우도 마찬가지로 적절한 엔터티라고 할 수 없다. 단, 예외적으로 관계엔터티(Associative Entity)의 경우에만 주식별자 속성만 가지고 있어도 엔터티로 인정할 수 있다.
예) 고객 엔터티에는 회원 ID, 패스워드, 이름, 주소 전화번호의 속성이 존재한다.
다른 엔터티 간의 관계가 존재해야 한다
엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 한다. 기본적으로 엔터티가 도출되었다는 것은 해당 업무 내에서 업무적인 연관성(존재적 연관성, 행위적 연관성)을 가지고 다른 엔터티와의 연관의 의미를 가지고 있음을 나타낸다.
예) 고객은 계좌를 개설한다.
분류
엔터티는 존재하느냐 하지 않느냐와 같은 실체 유형에 따라 구분하거나 업무를 구성하는 모습에 따라 구분이 되는 발생 시점에 의해 분류할 수 있다.
유무형에 따른 분류 (물리적 형태가 존재한가?)
발생 시점에 따른 엔터티 종류
'CS > 데이터베이스' 카테고리의 다른 글
NOSQL (개념, 특징, 장단점, RDBMS와의 차이점, 모델, 종류) (0) | 2024.08.27 |
---|---|
데이터 웨어하우스(DW)란? (0) | 2024.08.16 |
데이터 모델링의 이해 (0) | 2024.08.15 |
데이터 테이블의 종류 및 특성 (0) | 2024.08.11 |
[DB] 데이터 딕셔너리 (0) | 2024.08.05 |