- HOME
- [종료]구루비 DB 스터디
- 2014년 상반기 - 오라클 데이터베이스 스터디
- 식별자와 키 종류
식별자의 역할은?
- 정규화 수행의 결정자 역할
- 종속자 도출하는 결정자 역할
식별자의 도출은 언제?
개념 모델링 단계
- 중요 엔티티/관계 도출하는 단계이므로
- 속성까지는 생략해도 되나 업무 식별자 도출은 권고
물리 모델링 단계
식별자의 종류는?
- 1. 후보 식별자
- 2. 주 식별자
- 3. 대리 식별자
- 4. 인조 식별자
- 5. 외래 식별자
- 6. 슈퍼 식별자
1. 후보 식별자
- 인스턴스의 유일성을 보장하며 최소 속성으로 구성 된 키
- 하나의 엔티티에 여러 개 후보 식별자가 있을 수 있다
- 엔티티 안에서 함수 종속성을 발생시키는 결정자 역할을 한다
- 후보 식별자를 알면 나머지 속성 값들도 알 수 있다
- 엔티티 정의/정규화 하는 기준이 된다
- 정규화 수행 시 다른 후보 식별자가 다른 릴레이션으로 분리될 수도 있다
- 아래 예시의 경우 사원번호를 주 식별자로 하면 FD1 에 의해 정규화 수행되며 ...어떻게?
- 후보 식별자들 중 하나가 주 식별자가 될 수 있다
- 유일성을 보장 하긴 하지만 널을 허용할 수 있다
- 유니크 인덱스 생성해 주어야 한다
2. 주 식별자
- 후보 식별자 중 성능/관리 측면에서 가장 좋은 식별자를 주 식별자로 선정
- 후보 식별자 중 주 식별자가 될 만 한 적당한 식별자가 없으면 인조 식별자 생성
- 엔티티에서 하나만 존재 할 수 있다
- PK(Primary Key) 라고 한다
3. 대리 식별자
- 후보 식별자 중 주 식별자로 선택하고 남은 후보 식별자
- AK(Alternate Key) 라고 한다
4. 인조 식별자
- 사용 조건
- 후보 식별자 중 주 식별자로 선정할 만 한 게 없을 때
- 후보 식별자 속성 조합이 지나치게 복잡할 때
- 실체/자립 엔티티에서 사용
- 주로 "코드" / "번호" 등의 무의미한 번호가 사용됨
- ~코드 라는 명은 공통코드 속성과 혼동되므로 권장하지 않음
- 인조 식별자 고려 단계
- 주요 엔티티는 개념모델 단계에서
- 일반 엔티티는 논리모델 단계에서
- 인조 식별자 사용 시 장점은 모델이나 SQL 이 간단해 지는것
- 인조 식별자 사용 시 단점은
- 인스턴스 생성 기준을 인조(주) 식별자만으로 판단하기 어렵다
- 실제 업무 식별자에 유니크 인덱스를 사용하여 추가 키 관리를 해야 한다
- 모델만 보고 업무를 이해하기 어렵다
- 특히 행위 엔티티에 인조 식별자 사용 시 가독성이 많이 저하된다
5. 외래 식별자
- 엔티티 종속 관계에서 상위 엔티티의 주 식별자가 하위 엔티티의 외래 식별자
6. 슈퍼 식별자
- 후보 식별자에 +a 개념으로 속성이 추가 된 것
- 이미 유일성이 보장 된 속성 조합에 추가로 속성이 결합되었으므로 쓰지 말기를 권장함
- HOME
- [종료]구루비 DB 스터디
- 2014년 상반기 - 오라클 데이터베이스 스터디
- 식별자와 키 종류