엔터티 : 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것.
엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 가진다.
ex) "학생"이라는 엔터티는 학번, 이름, 학점, 생일 등의 속성으로 설명할 수 있다.
엔터티는 인스턴스의 집합이 될 수 있다.
ex) 과목이라는 엔터티에는 수학, 국어, 영어가 존재할 수 있다.
엔터티는 실제 눈에 보이는 것만이 엔터티가 아니며 눈에 보이지 않는 개념 등에 대해서도 엔터티로 인식할 수 있다. 실제 업무상에서는 눈에 보이지 않는 것이 엔터티로 도출되는 경우가 많기 때문에 더욱 주의해야 한다.
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
환자라는 엔터티는 병원에서 업무상 꼭 필요한 엔터티이지만 회사의 인사시스템에서 업무상 전혀 관리할 필요가 없으므로 회사에서는 환자 엔터티를 사용하지 않습니다.
2. 유일한 식별자에 의해 식별이 가능해야 한다.
유일한 식별자는 그 엔터티의 인스턴스만의 고유한 이름입니다. 이 식별자가 2개 이상의 엔터티를 대변하게 되면 그 식별자는 잘못 설계된 것입니다.또한 모든 엔터티는 임의의 식별자를 부여하여 유일하게 만들 수는 있지만 엔터티를 도출하는 경우에 각각의 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩 존재하는지 검증해야 합니다.
주 식별자만 존재하고 일반 속성이 없는 경우에도 잘못된 엔터티이다.
예외적으로 관계 엔터티의 경우 주식별자 속성만 가지고 있어도 엔터티로 인정한다.
3. 영속적으로 존재하는 인스턴스의 집합이어야 한다.
인스턴스가 한 개밖에 없으며 집합이 아니므로 엔터티 성립이 되지 않습니다.
4. 엔터티는 업무 프로세스에 의해 이용되어야 한다.
업무프로세스에서 CREATE, READ, UPDATE, DELETE 등이 발생하지 않는 고립된 엔터티는 제거해야 합니다.
5. 엔터티는 반드시 속성이 있어야 한다.
6. 엔터티는 다른 엔터티와 최소 한개 이상의 관계가 있어야 한다.
관계가 도출되었다는 것은 해당 업무내에서 업무적인 연관성(존재적, 행위적 연관성)을 가지고 다른 엔터티와 연관의 의미를 가지고 있음을 나타내기 때문이다. 단, 통계성 엔터티, 코드성 엔터티, 시스템 처리시 내부 필요에 의한 엔터티 도출의 경우 관계의 생략이 가능하다.
1. 유형엔터티
물리적인 형태가 있고 안정적이며 지속적으로 활용이 가능한 엔터티
ex) 사원, 물품, 강사
2. 개념엔터티
물리적인 형태는 존재하지 않고, 관리해야할 개념적 정보로 구분이 되는 엔터티
ex) 조직, 보험상품
3. 사건엔터티
업무를 수행함에 따라 발생되는 엔터티로 비교적 발생량이 많으며 각종 통계 자료에 이용될 수 있다.
ex) 주문, 청구, 미납
1. 기본엔터티 (Key Entity)
그 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고, 자신은 타 엔터티의 부모 역할을 한다.
ex) 사원, 부서, 고객, 상품
2. 중심엔터티 (Main Entity)
기본엔터티로부터 발생되며 업무에서 중심적인 역할을 한다. 다른 엔터티와의 관계를 통해 행위 엔터티를 생성한다.
ex) 계약, 사고, 청구, 주문
3. 행위엔터티 (Active Entity)
두 개 이상의 부모로 부터 발생되고 자주 내용이 바뀌거나 데이터양이 증가한다.
분석 초기 단게에서는 잘 나타나지 않으며 상세 설계단계나 프로세스의 상간모델링을 진행하며 도출된다.
ex) 주문목록, 사원변경이력
이외에도 스스로 생성될 수 있는지에 따라 독립엔터티인지 의존엔터티인지로 구분할 수도 있다.
출처: SQL 전문가 가이드 - 한국데이터베이스진흥원