이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.
추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.
식별자의 정의
- 식별자
엔티티내에서 인스턴스들을 구분할 수 있는 구분자
하나의 엔티티에 구성되어 있는 여러 개의 속성 중 엔티티를 대표할 수 있는 속성
하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 함
식별자와 키
- 식별자는 논리 데이터 모델링 단계에서 사용
- 키는 물리 데이터 모델링 단계에서 사용
식별자의 분류
- 대표성에 따른 분류
주식별자(PK) vs 보조식별자(CK) - 목적(또는 스스로 생성되었는지)에 따른 분류
내부식별자 vs 외부식별자(FK) - 속성 수에 따른 분류
단일식별자 vs 복합식별자 - 본질(또는 대체 여부)에 따른 분류
본질식별자 vs 인조식별자
식별자의 특징
- 유일성
주 식별자에 의해 엔티티 내의 각 인스턴스들을 모두 유일하게 구분 - 최소성
주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 - 불변성
주식별자가 지정되면 그 식별자의 값은 변하면 안 됨 - 존재성
주식별자의 값은 Null이 될 수 없음
주식별자 도출 기준
- 유일성을 갖는 속성 중 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 피함
- 복합 식별자를 구성할 경우 너무 많은 속성이 포함되지 않도록 함
식별자 관계와 비식별자 관계
- 식별자 관계
부모 엔티티의 식별자를 자식 엔티티의 주식별자로 사용
- 반드시 부모 엔티티가 생성되어야 자식 엔티티가 생성될 수 있음 (Not-Null 이기 때문. Weak entity)
- 자식 엔티티의 주식별자가 해당 속성만으로 구성되는 경우 = 1:1 관계
- 자식 엔티티의 주식별자가 해당 속성 + α로 구성되는 경우 = 1:N 관계 - 비식별자 관계
부모 엔티티의 식별자를 자식 엔티티의 일반적인 속성으로 사용
- 부모 엔티티와 자식 엔티티의 관계가 약한 경우
- 부모 엔티티 없이 자식 엔티티가 생성 가능한 경우
- 자식 엔티티의 주식별자로 사용해도 되지만, 일반 속성으로 두는 것이 유리한 경우
- 자식 엔티티의 독립적인 주식별자 설정이 필요한 경우
- 식별자 관계 남용시 문제점
주식별자 속성이 지속적으로 증가
→ 개발자 복잡성과 오류가능성 증가
- 비식별자 관계 남용시 문제점
데이터 조회 시 조인 횟수 증가
→ 성능 저하
'데이터베이스(Database) > Data Modeling' 카테고리의 다른 글
[DB] 데이터 모델링(8) - 정규화(Normalization) (0) | 2022.10.24 |
---|---|
[DB] 데이터 모델링(7) - 성능 데이터 모델링과 관계형 모델 (0) | 2022.10.24 |
[DB] 데이터 모델링(5) - 속성(Attribute) (0) | 2022.10.24 |
[DB] 데이터 모델링(4) - 관계(Relationship) (0) | 2022.10.24 |
[DB] 데이터 모델링(3) - 엔티티(Entity) (0) | 2022.10.24 |