엔터티(Entity)란?
SQL공부를 하다 보면 엔터티(Entity)라는 단어를 가장 많이 접하게 된다. 엔터티란 현실 세계의 객체, 어떠한 대상, 개체를 의미한다. 사과, 연필, 장소, 사람 등 현실 세계의 어떤 것도 엔터티라고 할 수 있지만 SQL에서는 업무에 쓰이는 정보들 즉, 데이터의 집합을 의미한다. 예를 들면 "학생 엔터티" 라고 한다면 [학번, 이름, 성별, 나이, 전공] 데이터의 집합이라고 볼 수 있다.
이 때, 엔터티에 저장되는 데이터는 해당 엔터티를 설명할 수 있는 관련성이 높은 데이터여야 하고, 업무를 처리할 때 꼭 필요한 데이터여야 한다.
엔터티의 특징
업무에서 필요로 하고 관리해야 하는 정보여야 한다.
유일한 식별자에 의해 식별할 수 있어야 한다.
- 학번이나, 주민등록번호 등 고유하게 식별할 수 있는 식별자. 이름이나 성별은 중복될 수 있으므로 사용하지 않는다.
두 개 이상의 인스턴스의 집합이어야 한다.
- 두 개 이상의 레코드의 집합이어야 한다. 예를 들어 환자라는 하나의 테이블에 홍길동이라는 환자 한 개의 레코드 뿐이라면 엔터티 성립이 어렵다.
만들어진 엔터티는 업무 프로세스에 의해 사용되어야 한다.
- 만들어진 엔터티가 업무 프로세스에 의해 사용되지 않는다면, 이는 엔터티가 잘못 선정되었다고 볼 수 있다. 예를 들어 학교의 학생 성적 관리 업무에 필요한 엔터티를 만들자면 학생의 정보가 들어있는 [학생] 엔터티 [성적] 엔터티가 필요할 수 있다.
반드시 속성이 존재해야 한다.
- 한 개 이상의 속성이 반드시 존재해야 한다. 예를 들어 환자 엔터티에는 [환자 이름, 나이, 성별] 등 한 개 이상의 속성이 존재해야 한다. 단, 관계 엔터티의 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정한다.
다른 엔터티와 반드시 한 개 이상의 관계가 있어야 한다.
엔터티의 분류
발생 시점에 따른 엔터티의 분류
기본 / 키 엔터티
- 다른 엔티티에 영향을 받지 않고 독립적으로 생성/존재하는 엔터티
[고객, 상품, 학생, 과목] 등
중심 엔터티
- 기본 엔터티와 행위 엔터티 사이를 연결해 주는 중간 엔터티
기본 엔티티로부터 발생되고, 행위 엔티티를 생성하게 된다
[주문, 취소, 계좌, 성적] 등
행위 엔터티
- 행위 엔터티는 두 개 이상의 부모 엔터티로부터 발생된다.
내용이 자주 발생되고 데이터량이 많아지게 된다.
[주문 내역, 수강 내역] 등
유무형에 따른 엔터티의 분류
유형 엔터티
- 물리적인 형태로 존재하고, 지속적으로 사용되는 엔터티
[학생, 강사, 환자, 상품] 등
개념 엔터티
- 물리적으로 형태가 없지만, 관리해야 할 정보로 사용되는 엔터티
[과목, 보험상품, 진료과목] 등
사건 엔터티
- 업무 프로세스를 실행하면서 발생하는 엔터티. 발생량이 많다.
[주문 내역, 수강 내역, 진료 내역 등]