1. 식별자의 개념과 특징
1️⃣ 식별자(Identifier)의 개념
- 여러 인스턴스 중에서 특정 인스턴스를 구분할 수 있는 일종의 구분자
- 엔터티를 대표하는 속성
- 하나의 엔터티에는 반드시 하나의 유일한 식별자가 존재해야 함
- 식별자 = 키(Key)
- 논리 모델링에서는 식별자, 물리 모델링에서는 키(Key)라고 함
2️⃣ 식별자의 특징
1) 유일성
- 주식별자는 엔터티 내 모든 인스턴스를 유일하게 구분함
- 예) 사원번호
2) 최소성
- 주식별자를 구성하는 속성 수는 유일성을 만족하는 최소한의 수여야 함
- 예) 사원번호 + 부서번호로 이루어진 주식별자
→ 최소성 위배
→ 사원번호가 유일하다면 부서번호와의 조합은 불필요
3) 불변성
- 주식별자가 한 번 지정되면 그 식별자의 값은 변하지 않아야 함
- 예) 사번 변경
→ 실제 사번 변경 X
→ 이전 사번 말소, 새로운 사번 생성 O
4) 존재성
- 주식별자가 지정되면 반드시 값이 존재해야 하며, NULL 값을 가질 수 없음
- 예) 사번이 부여되면 해당 사번을 가진 직원이 반드시 존재해야 함
2. 식별자의 분류 및 도출 기준
1️⃣ 식별자의 분류 ⭐
분류 기준을 제시하고 주식별자의 명칭을 묻는 문제 유형
주식별자 명칭과 설명을 바탕으로 해당 식별자를 구분하느 문제 자주 출제
1) 대표성 여부에 따른 분류
- 주식별자
- 엔터티 내에서 각 행을 구분할 수 있는 대표 식별자
- 다른 엔터티와 참조 관계를 연결할 수 있음
- 예) 사원번호, 고객번호
- 보조식별자
- 각 행을 구분할 수 있으나, 대표성이 없어 참조 관계 연결이 불가능한 식별자
- 예) 주민등록번호
2) 스스로 생성 여부에 따른 분류
- 내부식별자
- 엔터티 내부에서 스스로 생성되는 식별자
- 예) 고객번호
- 외부식별자
- 다른 엔터티와의 관계를 통해 외부 엔터티로부터 받아오는 식별자
- 예) 주문 엔터티의 고객번호
3) 속성의 수에 따른 분류
- 단일식별자
- 하나의 속성으로 구성된 식별자
- 예) 고객 엔터티의 고객번호
- 복합식별자
- 둘 이상의 속성으로 구성된 식별자
- 예) 주문상세 엔터티의 주문번호+상세순번
4) 대체 여부에 따른 분류
- 본질식별자
- 업무적으로 자연스럽게 생성되는 식별자
- 예) 고객번호
- 인조식별자
- 복잡한 원조 식별자를 대체하기 위해 인위적으로 만든 식별자
- 예) 주문엔터티의 주문번호(고객번호+주문번호+순번)
2️⃣ 식별자의 도출 기준
- 주식별자는 해당 업무에서 자주 사용되는 속성으로 성정
- 예 ) 학생의 경우 → 학번을 주식별자, 주민등록번호는 보조식별자로 지정
- 명칭, 내역과 같이 이름으로 기술되는 것들은 주식별자로 지정하지 않음
- 이름을 구분자로 사용해야 한다면 코드화하여 사용
- 복합 식별자를 사용할 경우 속성의 수를 최소화
3. 식별자 관계와 비식별자 관계
1️⃣ 주식별자 관계 (Identifying Relationship)
- 부모 엔터티의 주식별자가 자식 엔터티에 상속되어 자식 엔터티의 주식별자로 사용되는 경우
- 자식 엔터티의 주식별자에 NULL 값이 올 수 없으며, 반드시 부모 엔터티가 생성된 후에 자식 엔터티가 생성됨
- 주식별자는 데이터베이스 생성 시 PK(Primary Key) 역할을 함
2️⃣ 비식별자 관계 (Non-Identifying Relationship)
- 부모 엔터티의 주식별자가 자식 엔터티에 상속됐지만, 자식 엔터티의 주식별자로 사용되지 않고 단순히 연결 속성으로만 활용되는 경우
- 부모 엔터티로부터 생성된 속성은 외부식별자라고 하며, 데이터베이스 생성 시 FK(Foreign Key) 역할을
Share article