
식별자
엔티티를 대표할 수 있는 유일성을 만족하는 속성이다. 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다.
특징
종류
대표성 여부에 따른 분류
- 주식별자: 대표성을 만족하는 식별자
- 보조 식별자: 유일성과 최소성만 만족하는 식별자(참조 관계 연결에 사용할 수 없음)
DB 키의 종류
- 기본키: 후보키 중 선정되는 엔티티를 대표하는 키
- 후보키: 유일성과 최소성을 만족하는 키
- 슈퍼키: 유일성만 만족하는 키
- 대체키: 기본키를 제외한 나머지 후보키
- 외래키: 여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨 (허용된 데이터 값만 저장하기 위함)
*무결성(일관성, 정확성, 완전성)은 결함이 없음을 나타낸다고 보면 된다.
생성 여부에 따른 분류
- 내부 식별자: 자연스럽게 존재하는 식별자
- 외부 식별자: 다른 엔티티와의 관계를 통해 생성되는 식별자
속성 수에 따른 분류
- 단일 식별자: 하나의 속성
- 복합 식별자: 여러 속성
대체 여부에 따른 분류
- 본질 식별자: 대체될 수 없는 식별자
- 인조 식별자: 인위적으로 만들어지는 대체 가능한 식별자
*인조 식별자는 순서번호(Sequence Number)를 사용하여 생성된 식별자이다. 후보 식별자 중 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 칼럼으로 구성되어 있을 때 사용한다.
주식별자를 도출하는 기준
- 해당업무에서 자주 이용되는 속성을 주식별자로 지정하도록 한다.
- 명칭, 내역 등 이름으로 기술되는 것을 피해야 한다.
- 속성의 수가 많아지지 않도록 한다.
식별자관계와 비식별자 관계
식별자관계와 비식별자 관계의 결정하는 건 외부식별자이며, 외래키가 해당 역할을 한다.
식별자 관계
자식 엔티티의 주식별자로 부모의 주식별자가 상속이 되는 경우에 Null값이 오면 안 되므로 반드시 부모 엔티티가 생성되어야 자기 자신의 엔티를 생성할 수 있다.
식별자관계로만 설정 시 문제점
주식별자 속성이 지속적으로 증가, 복잡성과 오류 가능성 유발
비식별자 관계
부모 엔티티의 속성을 자식엔티티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
비식별자관계로만 설정 시 문제점
쓸데없이 부모엔티티까지 찾아가야 하는 경우가 발생한다
식별자관계와 비식별자관계 모델링

잘못된 정보는 지적해주시면 감사하겠습니다.