[SQLD 1-1-2] 데이터 모델링의 이해 - 엔터티
1. 엔터티의 개념
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (Thing)
- 사람, 장소, 물건, 사건, 개념 등의 명사에 해당
- 눈에 보이지 않는 것도 포함됨
2. 엔터티와 인스턴스의 표기법
- 엔터티를 표현하는 방법은 대부분 사각형으로 표현
3. 엔터티의 특징
- 해당 업무에서 필요하고 관리하고자 하는 정보
- 유일한 식별자(Unique Identifier)로 식별 가능
- 영속적으로 존재하는 복수의 인스턴스 집합 (2개 이상)
- 업무 프로세스에 의해 이용되아야 함
- 반드시 속성이 있어야 함 (2개 이상)
- 다른 엔터티와 최소 한 개 이상의 관계
4. 엔터티의 분류
# 유무형에 따른 분류
- 유형 엔터티(Tangible Entity) : 물리적인 형태가 있고 안정적이며 지속적으로 활용됨 ex) 책, 교수, 강의실, 학생 등
- 개념 엔터티(Conceptual Entity) : 물리적인 형태는 존재하지 않으나 관리해야 할 개념적 정보 ex) 수업, 보험상품 등
- 사건 엔터티(Event Entity) : 업무 수행 과정에서 발생하며 비교적 발생량이 많음 각종 통계자료에 이용됨 ex) 수강신청, 주문, 입금 등
# 발생시점에 따른 분류
- 기본엔터티 : 그 업무에 원래 존재하는 정보. 독립적으로 생성 가능. 타 엔터티의 부모 역할. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 지님. ex) 사원, 부서, 고객, 상품, 자재 등
- 중심엔터티 : 기본 엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할. 데이터의 양이 많이 발생되고 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성. ex) 계약, 사고, 청구, 주문, 매출 등
- 행위엔터티 : 두 개 이상의 부모엔터티로부터 발생. 자주 내용이 바뀌거나 데이터량이 증가함. 분석초기 단계에서는 잘 나타나지 않고 상세 설계단계나 상관모델링을 진행하며 도출될 수 있음. ex) 주문목록, 사원변경이력 등
5. 엔터티의 명명
- 현업에서 사용하는 용어 사용
- 약어 사용 금지
- 단수명사 사용
- 모든 엔터티에 고유 이름 부여
- 엔터티 생성 의미대로 이름 부여