Notice
Recent Posts
Recent Comments
Link
체다의 기록
[SQLD] Chapter1. 데이터 모델링의 이해 1-5 식별자 (Identifiers) 본문
- 식별자란?
- 엔터티를 구분하는 논리적인 이름
- 속성 중에 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성
- 엔터티에는 반드시 하나의 유일한 식별자 존재
- 주식별자의 특징
- 유일성: 각 인스턴스에 유니크함을 구분하여 식별이 가능하도록
- 최소성: 유일성을 보장하는 최소 개수의 속성이어야
- 불변성: 되도록 변하지 않아야 한다
- 존재성: NULL일 수 없으며 반드시 데이터 값이 존재해야 한다
- 식별자 분류
- 대표성 여부
- 주식별자: 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자
- 보조식별자: 인스턴스 식별은 가능하나 대표 식별자는 아님
- 스스로 생성되었는지 여부
- 내부식별자: 엔터티 내부에서 스스로 생성
- 외부식별자: 다른 엔터티에서 온 식별자. 다른 엔터티와의 연결고리
- 단일 속성의 여부
- 단일식별자: 하나의 속성으로 구성
- 복합식별자: 두 개 이상의 속성으로 구성
- 대체 여부
- 원조식별자: 업무프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자. 본질식별자
- 대리식별자: 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 인조 식별자. 새로 만든 식별자
- 대표성 여부
- 주식별자 (PK) 도출 기준
- 해당 업무에서 자주 이용되는 속성으로 지정
- 명칭, 내역처럼 이름으로 기술되는 것은 피함 -> 구분자가 존재하지 않을 경우 새로운 식별자 생성
- 복합키를 구성할 경우, 너무 많은 속성으로 구성하지 않도록 해야 한다
- 식별자 관계 vs. 비식별자 관계
- 식별자 관계
- 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계
- 자식이 부모의 기본키를 상속받아 기본키로 사용
- 부모 엔터티가 있어야 생성 가능
- NULL이면 안 된다.
- 부모 엔터티와 자식 엔터티는 1:1 혹은 1:M 관계가 형성된다.
- 문제점: 자식의 주식별자 속성이 지속적으로 증가할 수 있으므로, 복잡해지고 오류가능성을 유발한다.
- 비식별자 관계
- 부모 엔터티의 식별자가 자식 엔터티의 일반 속성이 되는 관계
- 부모 엔터티가 없는 자식 엔터티 생성이 가능
- 자식 엔터티가 존재하는 상태에서 부모 엔터티가 삭제될 수 있다
- 문제점: 부모까지 조인해야 되는 현상 발생할 경우, SQL 구문이 길어져서 성능이 저하될 수 있다.
- 식별자 관계
항목 | 식별자 관계 | 비식별자 관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 | 점선 |
연결 고려사항 | - 반드시 부모 엔터티에 종속 - 자식 주식별자에 부모 주식별자 포함 필요 - 상속받은 주식별자 속성을 타 엔터티에 이전 필요 |
- 약한 종속 관계 - 자식 주식별자 구성을 독립적으로 구성 - 자식 주식별자 구성에 부모 주식별자 부분 필요 - 상속받은 주식별자 속성을 타 엔터티에 차단 필요 부모쪽의 관계 참여가 선택 관계 |
반응형
'STUDY' 카테고리의 다른 글
[SQLD] Chapter2. 데이터 모델과 SQL 1-2 반정규화 (De-Normalization) & 1-3 관계 반정규화 (0) | 2022.10.20 |
---|---|
[SQLD] Chapter2. 데이터 모델과 SQL 1-1 정규화 (Normalization) (0) | 2022.10.17 |
[SQLD] Chapter1. 데이터 모델링의 이해 1-5 관계 (Relationship) (0) | 2022.10.02 |
[SQLD] Chapter1. 데이터 모델링의 이해 1-4 속성(Attribute) (0) | 2022.10.02 |
[SQLD] Chapter1. 데이터 모델링의 이해 (3) 엔터티 (Entity) (0) | 2022.10.02 |