[홍쌤의 데이터랩, SQLD n과목 완벽 정리] 영상를 개인이 정리하여 [원작자의 허가 이후] 올린 글이며,
[개인이 추가로 정리한 내용]이 포함되어 있습니다.
목차
식별자 (Identifier)
- 어떤 대상을 유일하게 식별 및 구별할 수 있는 속성
- 식별자는 논리 모델링의 용어이며, 물리 모델링은 Key로 표현
- 이후 다루는 내용은 Key의 측면에서 서술
주식별자의 특징
1) 유일성
- 주식별자에 의해 모든 인스턴스가 유일하게 구분되는 특성
2) 최소성
- 주식별자를 구성하는 속성의 집합이 유일성을 만족하는 최소한의 구성인 특성
3) 불변성
- 주식별자가 한 번 지정되면, 그 값과 형식은 변하지 않아야 한다는 특성
4) 존재성
- 주식별자로 지정된 속성은 반드시 값이 존재해야 한다는 특성 (NULL 등 불가능)
식별자의 분류
1) 대표성 만족 여부에 따른 분류
주식별자
- 유일성, 최소성, 대표성을 만족하는 식별자
- 타 엔터티와 참조관계를 구성할 수 있는 식별자
보조식별자
- 유일성, 최소성을 만족하지만, 대표성을 불만족하는 식별자
- 대표성을 가지지 못해 참조 관계를 구성할 수 없는 식별자
=> 비즈니스 모델 및 설계에 따라 상이
2) 생성 출처에 따른 분류
내부식별자
- 다른 엔터티에서 파생되지 않고, 자신의 엔터티 내부에서 생성되는 식별자
외부식별자
- 다른 엔터티에서 파생되는(관계가 생성됨에 따라 받아오는) 식별자
3) 속성 수에 따른 분류
단일식별자
- 하나의 속성으로 구성된 식별자
복합식별자
- 2개 이상의 속성으로 구성된 식별자
4) 기능에 따른 분류
본질식별자(원조식별자)
- 비즈니스 프로세스에서 만들어지는 식별자
인조식별자
- 인위적으로 생성되는 식별자
e.g. AUTO_INCREMENT(In MySQL), UUID
유의할 점
1. 부서번호, 수강일자 등은 본질식별자
2. OO코드가 비즈니스적인 의미를 가진다면 본질식별자, 아니라면 인조식별자
e.g. 상품코드의 경우
- 비즈니스 내용(e.g. 제품을 식별하기 위한 속성의 조합으로 구성)를 담고있다면 => 본질식별자
- 단순히 인스턴스 구분을 위해 유일성만 가진다면 => 인조식별자
주식별자 도출 기준
1. 해당 업무에서 자주 이용되는 속성을 지정
- 같은 식별자 조건을 만족하더라도, 업무적으로 더 많이 사용되는 속성 사용
2. 명칭이나 내역등의 속성은 피함
- 이름 자체를 다루기보다는, 코드와 같은 방식을 사용
3. 속성 수를 최대한 적게 구성
- 조인으로 인한 성능저하 발생 우려
식별 관계와 비식별 관계
1. 식별관계 (Identification Relationship)
- 하나의 엔터티의 기본키를 다른 엔터티가 기본키의 구성 요소로 공유하는 관계
- ERD에서 실선으로 표시
2. 비식별 관계 (Non-Identification Relationship)
- 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 속성으로 가지는 관계
- ERD에서 점선으로 표시
Key
논리 모델링의 식별자가 물리 모델링에서는 Key로 칭해진다.
Key의 종류
1. 기본키(Primary Key)
엔터티를 대표할 수 있는 키
2. 후보키(Candidate Key)
유일성과 최소성을 만족하는 키
3. 대체키(Alternate Key)
후보키 중 기본키가 아닌 키
4. 슈퍼키(Super Key)
유일성은 만족하지만 최소성은 만족하지 않는 키
5. 외래키(Foreign Key)
(일반적으로) 다른 테이블의 기본키를 참조하며, 두 테이블을 연결하는 데 사용되는 키
'CS - 강의, 서적 > [SQLD] 홍쌤의 데이터랩' 카테고리의 다른 글
[SQLD] 1-8. 모델이 표현하는 트랜잭션의 이해 (트랜잭션, ACID, 필수적/선택적 관계) (0) | 2024.09.16 |
---|---|
[SQLD] 1-6. 정규화 (정규화, 이상 현상, 함수 종속, 역정규화) (0) | 2024.09.16 |
[SQLD] 1-4. 관계 (0) | 2024.09.13 |
[SQLD] 1-3. 속성 (속성, 함수적 종속성, 도메인) (0) | 2024.09.13 |
[SQLD] 1-1. 데이터 모델의 이해 (모델링, 스키마, ERD) (1) | 2024.09.13 |