- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야함
- 유일한 식별자에 의해 식별이 가능해야함
- 영속적으로 존재하는 인스턴스의 집합(⭐️두 개 이상!!)
- 업무 프로세스에 의해 이용되어야함
- 반드시 속성이 있어야함
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야함
기본, 키 엔터티(Fundamental, Key Entity)
- 그 업무에 원래 존재하는 정보
- 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성할 수 있고 자신은 타 엔터티의 부모 역할을 함
- 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐
중심 엔터티(Main Entity)
- 기본 엔터티로부터 발생하고 그 업무에 있어서 중심적인 역할
- 데이터의 양이 많고 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성
행위 엔터티(Active Entity)
- 두 개 이상의 부모엔터티로부터 발생
- 자주 내용이 바뀌거나 데이터양이 증가
- 분석 초기 단계에서는 잘 나타나지 않음
- 기본속성(Basic Attribute): 사원이름, 고용일자 등 일반적인 속성
- 설계속성: 업무상 필요한 데이터 외에 데이터 모델링을 위해 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성, 부서 번호, 부서 이름 등
- 파생속성: 다른 속성에 영향을 받아 발생하는 속성(계산된 값), 가급적 적게 정의하는 것이 좋음
- 해당 업무에서 사용하는 이름 부여
- 서술식 속성명은 사용하지 않음
- 약어 사용 제한
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋음
각 속성이 가질 수 있는 값의 범위
엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것
ERD
- 존재와 행위 구분 X
- 단일화된 표기법 사용
UML - 클래스 다이어그램
- 연관관계: 실선
- 의존관계: 점선
- 관계명(Membership): 관계의 이름
- 관계차수(Cardinality): 1:1, 1:M, N:M
- 관계선택사양(Optionality): 필수/선택 관계
- 두 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
- 두 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
대표성 여부
- 주식별자(Primary)
부서번호, 사번, 주문번호 등- 보조식별자(Alternate): 인스턴스를 구분할 수 있지만 대표성을 가지지 못해 참조 관계를 연결하지 못함
주민등록번호(사원 엔티티에서는 주민번호보다 사번이 주식별자로 적합함)스스로 생성 여부
- 내부식별자: 엔터티 내부에서 스스로 만들어짐
- 외부식별자(Foreign): 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
사원엔터티의 부서번호(사원 엔터티와 부서 엔터티는 부서번호로 관계되어 있음)속성의 수
- 단일식별자: 하나의 속성으로 구성된 식별자
- 복합식별자: 둘 이상의 속성으로 구성된 식별자
사번과 수강일자 두 속성을 이용해 식별자 역할대체 여부
- 본질식별자: 업무에 의해 만들어지는 식별자
부서번호, 사번 등- 인조식별자: 업무적으로 만들어지지는 않았지만 원조식별자가 복잡한 구성을 가지고 있어 인위적으로 만들어짐
주문번호(사번+주문일자+순번으로 처리하는 것이 복잡 ➡︎ 주문번호를 만들어 처리)
부모의 주식별자가 자식엔터티의 주식별자로 상속되는 경우
실선 표현문제점
- 식별자 관계만으로 연결될 경우 주식별자 속성이 지속적으로 증가하고 복잡성과 오류 가능성이 증가함
식별자 연결을 고려하는 경우
- 자식 엔터티가 반드시 부모에게 종속되어야할 때
- 자식 주식별자 구성에 부모 주식별자가 필요할 때
- 상속받은 주식별자 속성을 타 엔터티에 이전 필요할 때
- 강한 연결관계를 표현할 때
부모로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로 사용하는 경우
점선 표현문제점
- 조인이 많아짐
- 복잡성이 증가하고 성능이 저하됨
(식별자로 설정한다면 바로 조회조건을 이용하여 조회할 수 있음)비식별자 연결을 고려하는 경우
- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성해야할 때
- 자식 주식별자 구성에 부모 주식별자가 부분적으로 필요할 때
- 상속받은 주식별자 속성을 타 엔터티에 차단이 필요할 때
- 부모쪽의 관계참여가 선택 관계일 때
- 부모 없이 자식 엔터티의 인스턴스가 먼저 생성될 수 있는 경우
- 부모 인스턴스가 자식 인스턴스보다 먼저 소멸하는 경우
- 별도의 주식별자를 생성하는 것이 더 유리하다고 판단 되는 경우