SQLD 개념 정리 - 2. 엔터티
#
엔터티란?
엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
업무상 관리가 필요한 관심사로, 저장이 되기 위한 "어떤 것(Thing)"
예를 들어 고객이 어떤 상품을 주문하는데, 주문에 대한 변경을 할 수도 있다.
여기서 '고객' '주문' '상품' '주문변경이력' 을 각각 엔터티라고 할 수 있다.
#
인스턴스
고객이라는 엔터티에는 '홍길동' '이순신' 와 같은 인스턴스가 들어갈 수 있다.
하나의 엔터티는 여러 개의 인스턴스로 이루어져있으며, 엔터티는 인스턴스들의 집합이다.
#
엔터티 표기법
바커 표기법 기준으로, 둥근 네모 안에 엔터티 명을 쓰고 #으로 시작하는 식별자(과목번호, 사건번호 등)를 써준다.
#
엔터티의 특징
1. 엔터티는 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 예를 들어 '환자'라는 엔터티는 병원에는 필요하지만 일반 회사에서는 필요가 없음.
2. 유일한 식별자에의해 식별이 가능해야 한다. 기본키 존재
3. 영속적으로 존재하는 인스턴스의 집합이어야 한다.
4. 업무 프로세스에 의해 이용되어야 한다.
5. 반드시 엔터티의 속성이 있어야 한다. 예를 들어 고객 엔터티에는 고객명, 생년월일 등. 태풍 엔터티에는 태풍번호, 발생지역 등.
6. 다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다. 예를 들어 공급, 계약 업체, 공급도서 등의 엔터티들은 서로 관계가 있는데 출판사 엔터티는 이들과 아무 관계가 없다. 하지만 실무에서는 관계가 없더라도 엔터티가 도출되는 경우도 있다.
#
엔터티의 분류
1. 유형인가 무형인가
-유형의 엔터티: 사원, 물품, 강사 등
물리적인 형태가 있어 안정적이며 지속적으로 활용되는 엔터티.
-개념 엔터티: 조직, 보험상품 등
물리적인 형태는 존재하지 않지만 관리해야 할 개념적 정보로 구분되는 엔터티.
-사건 엔터티: 주문, 청구, 미납 등
업무를 수행함에 따라 발생되는 엔터티로, 발생량이 가장 많아 통계자료에 이용됨.
2. 발생시점에 따른 분류
-기본(key)엔터티: 고객, 상품 등
업무에 원래 존재하는 정보. 다른 엔터티와의 관계에 의해 생성되는 것이 아니라 스스로 생성됨. 타 엔터티의 부모 역할을 하게 된다.
-중심(main) 엔터티: 주문, 배송 등
기본 엔터티로부터 발생되며, 업무에서 중심적인 역할을 한다. 데이터의 양이 많고 다른 엔터티와의 관계를 통해 다양한 행위엔터티를 생성한다.
-행위(action)엔터티: 주문변경이력 등
두 개 이상의 부모엔터티로부터 발생하며, 내용이 자주 바뀔 수 있으며 그에 따라 데이터량이 증가한다.
상세 설계 단계나 프로세스와 상관모델링을 진행하며 도출된다.
#
엔터티의 명명
1. 가능하면 현업업무에서 사용하는 용어를 사용한다. --> 커뮤니케이션이 용이함.
2. 가능하면 약어를 사용하지 않는다.
3. 단수 명사를 사용한다.
4. 모든 엔터티에서 유일하게 이름이 부여되어야 한다.
5. 엔터티 생성 의미대로 이름을 부여한다.