취준일지/SQLD

[SQLD] 1.5 식별자

양쏘쏘 2021. 11. 4. 00:00
728x90
반응형

5. 식별자

식별자 

: 엔터티 내에서 인스턴스를 구분하는 구분자
   식별자는 논리적, Key는 물리적 데이터 모델링 단계에 사용

 

식별자 분류
대표성여부 
- 주식별자 : 엔터티 내에서 인스턴스를 구분할 수 있는 구분자, 타 엔터티와 참조관계를 연결
- 보조식별자 : 구분자이나 대표성X, 참조관계 연결X

 

스스로생성여부 
- 내부식별자 : 스스로 생성되는 식별자
- 외부식별자 : 타 엔터티로부터 받아오는 식별자

 

속성의 수 
- 단일식별자 : 하나의 속성으로 구성
- 복합식별자 : 2개 이상의 속성으로 구성

 

대체 여부 
- 본질식별자: 업무에 의해 만들어지는 식별자
- 인조식별자 : 인위적으로 만든 식별자

 

식별자의 특징 
- 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분하게 함
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자가 지정되면 반드시 값이 존재(NULL X)

 

주식별자 도출기준

- 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등과 같이 이름으로 기술되는 것 지양
- 복합으로 주식별자로 구성할 경우 속성의 수가 많아지지 않도록 함

 

식별자 관계
주식별자 : 자식의 주식별자로 부모의 주식별자 상속
- 부모로부터 받은 식별자를 자식엔터티의
주식별자로 이용하는 경우
- 강한 연결관계 표현, 실선 표기
- 식별자 관계로만 설정 시 주식별자 증가로 오류 유발

 

비식별자 : 부모 속성을 자식의 일반 속성으로 사용
- 부모 없는 자식이 생성될 수 있는 경우
- 부모와 자식의 생명주기가 다른 경우 (별도로소멸)
- 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가진 경우
- 자식 엔터티에 별도의 주식별자를 생성하는 것이 더 유리한 경우
- SQL 문장이 길어져 복잡성 증가되는 것 방지
   > 약한 연결관계 표현, 점선 표기
   > 비식별자 관계로만 설정 시 부모 엔터티와 조인하여 성능 저하

728x90

'취준일지 > SQLD' 카테고리의 다른 글

[SQLD] 3.1 관계형 데이터베이스 개요  (0) 2021.11.10
[SQLD] 2.2 정규화와 성능  (0) 2021.11.08
[SQLD] 1.4 관계  (0) 2021.11.03
[SQLD] 1.3 속성  (0) 2021.11.03
[SQLD] 1.2 엔터티  (0) 2021.11.03