SQLD/데이터 모델링의 이해

식별자 Identifiers

hyerimir 2023. 3. 12. 17:36

 

식별자 : 각각의 인스턴스를 구분 가능하게 만들어주는 것

 

주식별자; 하나의 속성이 주 식별자가 될 수도 있고 여러 개의 속성이 주 식별자가 될 수도 있음

- 유일성 : 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다

- 최소성 : 유일성을 보장하는 최소 개수의 속성이어야 한다

- 불변성 : 속성값이 되도록 변하지 않아야 한다

- 존재성 : 속성값이 NULL일 수 없다

 

분류

1) 대표성 여부

- 주식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자, 다른 엔터티와 참조 관계로 연결

- 보조식별자 : 인스턴스를 식별할 수는 있지만 대표 식별자가 아님, 다른 엔터티와 참조 관계로 연결되지 않음

2) 스스로 생성되었는지 여부

- 내부식별자 : 엔터티 내부에서 스스로 생성된 식별자

- 외부식별자 : 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할

3) 단일 속성의 여부

- 단일식별자 : 하나의 속성으로 구성된 식별자

- 복합식별자 : 두 개 이상의 속성으로 구성된 식별자

4) 대체 여부

- 원조식별자 : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자

- 대리식별자 : 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자, ex) 주문번호 = 주문일자 + 순번

 

식별자 관계 identification relationship

- 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계

- 주식별자는 반드시 존재해야하므로 부모 엔터티가 있어야 생성가능

- 단일식별자인지 복합식별자인지에 따라 1:1이거나 1:M으로 결정됨

 

비식별자 관계 non-identification relationship

- 부모 엔터티의 식별자가 주식별자가 아닌 일반속성이 되는 관계

- 일반 속성값은 NULL이 될 수 있으므로 부모 엔터티가 없는 자식 엔터티 생성이 가능

- 자식 엔터티가 존재하는 상태에서 부모 엔터티 삭제 가능