1. 식별자 개념
엔터티는 인스턴스들의 집합임
여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름
2. 식별자의 특징
- 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 함
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함
- 주식별자가 지정이 되면 반드시 값이 들어와야 함
| 특징 | 내용 | 비고 |
|---|
| 유일성 | 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분함 | 예) 사원번호가 모든 직원들에대해 개인별로 고유하게 부여됨 |
| 최소성 | 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 | 예) 사원번호만으로도 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임 |
| 불변성 | 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함 | 예) 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념임 |
| 존재성 | 주식별자가 지정되면 반드시 데이터 값이 존재해야함 (Null 안 됨) | 예) 사원번호 없는 회사직원은 있을 수 없음 |
3. 식별자 분류 및 표기법
식별자 분류

식별자 표기법

4. 주식별자 도출기준
해당 업무에서 자주 이용되는 속성을 주식별자로 지정
예) 직원관리 시 사원번호보다는 주민등록번호를 더 많이 사용하므로 주식별자로 지정

명칭, 내역 등과 같이 이름으로 기술되는 것은 피함
예) 부서이름은 유일성이 있더라도 주식별자로 사용 X
명칭이나 내역이 있고 인스턴스를 식별할 수 있는 다른 구분자가 존재하지 않을 경우는 새로운 식별자를 생성해야함 (주로 일련번호나 코드)

속성의 수가 많아지지 않도록 함
식별자의 속성의 개수가 많을 때는 새로운 인조식별자를 생성하려 데이터 모델을 구성하는 것이 데이터 모델 및 애플리케이션 개발 시 조건절을 더 단순하게 함

5. 식별자 관계와 비식별자 관계에 따른 식별자
식별자 관계와 비식별자 관계의 결정
자식 엔터티에서 부모 엔터티로부터 받은 외부식별자를 자신의 주식별자로 이용할 것인지 또는 부모와 연결이 되는 속성으로서만 이용할 것인지를 결정해야 함

식별자 관계
- 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
- 부모로부터 받은 식별자를 자식엔터티으 주식별자로 이용하는 경우 Null값이 오면 안 됨(부모 엔터티가 생성되어야 자신의 엔터티가 생성되는 경우여야 함)

비식별자 관계
- 부모로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우 (받은 속성이 반드시 필수가 아니어도 무방한 경우 =부모없는 자식 생성 가능한 경우)
- 엔터티별로 생명주기를 다르게 관리할 경우 (예를 들어, 부모 엔터티에 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우)
- 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때이며 이에 해당됨
- 자식 엔터티에 주식별자로 사용하여도 되지만 자식 엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때 비식별자 관계에 의한 외부식별자로 표현

식별자 관계로만 설정할 경우의 문제점
- 식별자 관계를 연결한 데이터 모델의 PK 속성 수는 데이터 모델의 흐름이 길어질수록 증가할 수 밖에 없는 구조를 가지게 됨

비식별자 관계로만 설정할 경우의 문제점
- 자식엔터티에서 데이터를 조회할 때도 부모엔터티의 속성을 사용하게 되는데, 부모 속성이 자식 엔터티로 상속되지 않아 부모 엔터티까지 찾아가야함

식별자관계와 비식별자관계 모델링
- 비식별자 관계 선택 프로세스

- 식별자와 비식별자 관계 비교
| 항목 | 식별자관계 | 비식별자관계 |
|---|
| 목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
| 자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
| 표기법 | 실선 표현 | 점선 표현 |
| 연결 고려사항 | 반드시 부모엔터티 종속, 자식 주식별자 구성에 부모 주식별자 포함 필요, 상속받은 주식별자 속성을 타 엔터티에 이전 필요 | 약한 종속관계, 자식 주식별자 구성을 독립석으로 구성, 자식 주식별자 구성에 부모 주식별자 부분 필요, 사옥받은 주식별자 속성을 타 엔터티에 차단 필요, 부모쪽의 관계참여가 선택사항 |
- 식별자와 비식별자를 적용한 데이터 모델
