1. 식별자란?
- 엔터티 내 인스턴스를 유일하게 구별하기 위한 속성 혹은 속성의 집합
- 엔터티 내 속성의 결정자(Determinant) 역할
- 유일성(Unique), 최소성, 불변성, 존재성(Not null)
2. 식별자 종류
- 업무식별자(Business Identifiers)
→ 업무적으로 인스턴스를 유일하게 구분할 수 있도록 하는 식별자
→ 데이터를 쌓는 기준, 즉 인스턴스 발생 기준을 알 수 있도록 함
- 주식별자(Primary Identifiers)
→ 엔터티(Entity) 내 대표성을 갖는 식별자(하나의 엔터티 내 주식별자는 하나만 존재해야 함)
※ 주식별자가 하나만 존재한다는 것은 주식별자를 꼭 1개의 속성으로만 구성해야 한다는 것이 아님!
→ 주키(Primary Key)가 되는 식별자
- 후보식별자(Candidate Identifiers)
→ 릴레이션 내 인스턴스의 유일성을 보장해주는 식별자
→ 주식별자가 될 수 있는 후보
→ 릴레이션 내 함수 종속의 개념으로 결정자(Determinant)는 전부 후보식별자가 됨
→ 후보식별자는 엔터티 내 여러개 존재할 수 있음
→ 정규화 수행 시 기준이 되므로 기본적으로 정의해야 하는 대상
- 외래(외부)식별자(Foreign Identifiers)
→ 본인 엔터티에서 필요한 속성이 아닌, 타 엔터티와 관계에 의해 발생하는 속성
→ 식별자의 특징인 유일성과 무관
→ 상위(부모) 엔터티의 주식별자가 하위(자식) 엔터티의 외래식별자 속성이 됨
→ 데이터베이스 생성 시 FK(Foreign Key) 역할
- 인조식별자(Artificial Identifiers)
→ 후보식별자 중 주식별자로 사용할 마땅한 대상이 없을 때 단독속성으로 새롭게 만드는 속성(일련번호 등)
→ 인조식별자 채택 시 모델 및 SQL이 단순해짐
→ 인조식별자 채택 시 인스턴스 생성 기준 및 업무 파악이 어려움
→ 단순히 인스턴스를 유일하게 식별하기 위함이 주 목적이기에, 체계 없이 무의미한 일련번호 형태 사용 권고
→ 인조식별자를 채택한 엔터티는 업무식별자를 무조건 관리해야 함
- 대체(보조, 대체)식별자(Alternate Identifiers)
→ N개의 후보식별자 중 주식별자로 채택되지 않은 나머지 후보식별자
→ 인조식별자 채택 시(후보식별자 중 주식별자 미채택 시) 대체식별자=후보식별자
→ 후보식별자 중 주식별자 채택 시 DISTINCT(주식별자+대체식별자)=후보식별자
- 슈퍼식별자(Super Identifiers)
→ 후보식별자에 속성을 추가해서 만든 식별자(식별자를 최소한의 속성으로 구성하지 않은 것)
→ 슈퍼식별자 사용은 정규형에 위배되며, 엔터티 성격을 불분명하게 만듬
→ 슈퍼식별자는 절대 사용하지 않는 것이 원칙
- 본질식별자(Natural Identifier)
→ 인조식별자의 반대 개념으로, 업무에 의해 만들어지는 식별자
- 단일식별자(Single Identifiers)
→ 복합식별자의 반대 개념으로, 단일 속성으로 구성된 식별자
- 복합식별자(Composit Identifiers)
→ 단일식별자의 반대 개념으로, 둘 이상으로 구성된 식별자
- 내부식별자(Super Identifiers)
→ 외부식별자의 반대 개념으로, 엔터티 내부에서 스스로 만들어지는 식별자
'Data architecture > Model' 카테고리의 다른 글
[Model] 데이터 모델링 매뉴얼 (1) | 2023.09.17 |
---|---|
[Model] 주식별자(Primary Identifier) 선정 (0) | 2023.05.31 |
[Model] 데이터베이스 정규화(Normalization) (0) | 2023.04.12 |