엔터티란
엔터티의 사전적 의미는 "실체", "객체"를 의미한다.
엔터티에 대해서 위인들은 다음과 같이 정의하였다.
변별할 수 있는 사물 - Peter Chen(1976)
데이터베이스 내에서 변별 가능한 객체 - C.J Date(1986)
정보를 저장할 수 있는 어떤 것 - James Martin(1989)
정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 들 - Thomas Bruce(1992)
데이터 모델링에서의 엔터티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것"(Thing)으로 정의할 수 있다.
이는 눈에 보이는것도 있고 보이지 않거나 실체가 없는 개념적인 것도 있다.
인스턴스 및 속성
아래 표는 Oracle 11g의 학습 데이터인 Department table의 스키마 및 데이터를 발췌했다.
인스턴스
인스턴스란 엔터티의 하나의 값에 해당하는 것으로 위 표에서 "10", "Administration", "200", "1700" 한 줄이 하나의 인스턴스를 뜻한다.
속성
"업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위"로 정의된다.
"DEPARTMENT_ID"가 속성으로 해당되며 위 엔터티는 "DEPARTMENT_ID", "DEPARTMENT_NAME", "MANGER_ID", "LOCATION_ID" 4개의 속성을 가진다.
엔터티 특징
엔터티는 다음과 같은 특징을 가지고 있으며, 만약 도출된 엔터티가 다음의 특징을 만족하지 못하면 잘못된 엔터티 정의로 의심을 해봐야 한다.
반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 엔터티는 업무 프로세스에 의해 이용되어야 한다. 유일한 식별자에 의해 식별이 가능해야 한다. 영속적으로 존재하는 인스턴스의 집합이어야 한다. 엔터티는 반드시 속성이 있어야 한다. 엔터티는 다른 엔터와 최소 한 개 이상의 관계가 있어야 한다. |
업무에서 필요로 하는 정보
학생 정보는 학교에서는 필요한 정보이지만 회사에서는 필요한 정보가 아니다. 이처럼 시스템을 구축하고자 하는 곳에 필요한 정보여야 한다.
업무 프로세스에 의해 이용
업무 프로세스(Business Process)에 의해 이용되어야 하며, 이용되지 않을 경우 적절하지 않은 엔터티를 의미한다. 이러한 경우 데이터 모델링을 할 때 미처 발견하지 못하다가 프로세스 모델링을 하면서 데이터 모델과 검증을 하거나, 상관 모델링을 할 때 엔터티와 단위 프로세스를 교차 점검하면서 문제점이 도출된다.
식별이 가능해야 함
사원 엔터티의 식별자인 "사원번호"는 모든 인스턴스를 구분할 수 있듯이 모든 인스턴스는 식별자(Identifier)에 의해 구분이 되어야 한다.
인스턴스의 집합
영속적으로 존재하는 인스턴스의 집합이 되어야 한다는 점이다. 엔터티의 특징 중 "한개"가 아니라 "두개 이상"이라는 집합개념은 매우 중요한 개념이다. 두개 이상이라는 개념은 엔터티뿐만 아니라 엔터티간의 관계, 프로세스와의 관계 등 업무를 분석하고 설계하는 동안 설계자가 모든 업무에 대입해 보고 검증해 여러개의 인스턴스를 포함한다.
- 인스턴스가 한개밖에 없는 회사, 병원 엔터티는 집합이 아니므로 엔터티 성립이 안됨.
다른 엔터티와 관계 존재
엔터티가 도출되었다는 것은 업무에서 필요한 정보이고 업무간은 관계가 있으므로 엔터티는 최소 한개 이상의 관계가 존재해야 한다.
(단, 집계 처리인 통계성 엔터티와 읽기 효율성(Readability) 코드성 엔터티 등 필요에 의해 관계를 생략하여 표현하는 경우도 있다.)
엔터티의 분류
엔터티는 "실체유무형" 또는 "발생시점"에 의해 분류한다.
실체 유무형에 따른 분류
엔터티는 유무형에 따라 유형엔터티, 개념엔터티, 사건엔터티로 구분된다.
유형엔터티(Tangible Entity)
물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티로 업무로부터 엔터티를 구분하기가 가장 용이하다.
(예 : 사원, 물품, 강사 등)
개념엔터티(Conceptual Entity)
물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분이 되는 엔터티이다.
(예 : 조직, 보험상품 등)
사건 엔터티(Event Entity)
업무를 수행함에 따라 발생되는 엔터티로서 비교적 발생량이 많으며 각종 통계자료에 이용될 수 있다.
(예 : 주문, 청구, 미납 등)
발생시점에 따른 분류
엔터티는 발생시점에 따라 기본/키엔터티, 중심엔터티, 행위엔터티로 구분할 수 있다.
기본/키 엔터티(Fundamental Entity/Key Entity)
업무에 존재하는 정보로서, 독립적으로 생성되며 타 엔터티의 부모 역할을 한다. 다른 엔터티로부터 주 식별자를 상속 받지 않고 자신의 고유한 주 식별자를 가지게 된다.
(예 : 사원, 부서, 고객, 상품 등)
중심엔터티
기본엔터티로부터 발생된 엔터티로 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성한다.
(예 : 계약, 주문, 매출 등)
행위엔터티
두개 이상의 부모 엔터티로 부터 발생된다. 분석 초기 단계에서는 잘 나타나지 않으며 상세 설계 단계나 프로세스와 상관 모델링을 진행하면서 주로 발생된다.
(예 : 주문목록, 사원변경 이력 등)
엔터티의 명명 규칙
- 업무에 연관된 용어를 사용하여 업무와 관련된 의미를 부여한다.
- 단수명사를 사용한다.
- 유일한 명명 즉, 다른 엔터티의 이름과 중복을 피한다.
감사합니다.
'DataBase > Data Modeling' 카테고리의 다른 글
[Data Modeling-데이터 모델링]데이터 모델링 (0) | 2017.02.17 |
---|---|
[Data Modeling-데이터 모델링]관계(Relationship) (0) | 2017.02.12 |
[Modeling-모델링]속성(Attribute) (0) | 2017.02.11 |