728x90
반응형
식별자 정의
- 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자
- 여러 개의 속성 중 엔터티를 대표할 수 있는 속성
- 하나의 엔터티에는 유일한 식별자가 존재해야 함
- 엔터티는 자신을 지칭하거나 식별하는 속성인 식별자를 가짐
식별자 vs. 키
- 식별자는 논리 데이터 모델링 단계에서 사용하고, 키(Key)는 물리 데이터 모델링 단계에서 사용한다.
식별자 특징
- 주 식별자에 의해 엔터티 내의 모든 인스턴스가 구분 가능
- 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
- 지정 주 식별자 값은 자주 바뀌면 안됨
- 주 식별자 지정 시 반드시 값이 들어와야 함
- 대체 식별자 -> 주 식별자의 특징과 유사하지만, 참조무결성 제약조건이 특징
식별자 종류
- 엔터티 내에서 대표성을 가지는가에 따라 주 식별자(Primary Identifier)와 보조 식별자(Alternate Identifier)로 구분
- 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부 식별자와 외부 식별자(Foreign Identifier)로 구분
- 단일 속성으로 식별이 되는가에 따라 단일 식별자(Single Identifier)와 복합 식별자(Composit Identifier)로 구분
- 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질 식별자와 인조 식별자로 구분
식별자 작성 방법
주 식별자의 특징
- 유일성
- 주 식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분함
- 최소성
- 주 식별자를 구성하는 속정의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성
- 주 식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성
- 주 식별자가 지정되면 반드시 데이터 값이 존재해야 함(Null 허용 안됨)
주 식별자 도출 기준
- 해당 업무에서 자주 이요되는 속성을 주 식별자로 지정한다.
- 명칭, 내용 등과 같이 이름으로 기술되는 것들은 가능하면 주 식별자로 지정하지 않는다.
- 복합으로 주 식별자가 구성될 경우 너무 많은 속성이 포함되지 않도록 한다.
식별자와 비식별자 관계
- 식별자 관계
- 부모로부터 받은 식별자를 자식 엔터티의 주 식별자로 사용하는 경우, Null 값이 오면 안되므로 반드시 부모 엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우
- 식별자 관계로만 데이터 모델을 개발할 경우, 주 식별자 속성이 지속적으로 증가할 수 밖에 없으므로 연결되는 만큼 PK가 늘어나는 문제가 발생
- 비식별자 관계
- 부모 엔터티로부터 속성을 받았지만 자식 엔터티의 주 식별자로 사용되지 않고, 일반적인 속성으로만 사용되는 경우
- 비 식별자 관계로만 데이터 모델을 개발할 경우, 연결되지 않은 비 식별자 관계로 인해 SQL 구문이 길어지는 문제 발생
식별자와 비식별자 관계 모델링 파악 기준
식별자와 비식별자 관계 비교
반응형
'[DB]DataBase > [SQL]' 카테고리의 다른 글
[SQLD] 관계와 조인 (0) | 2024.03.02 |
---|---|
[SQLD] 정규화(Normalization) (0) | 2024.03.01 |
[SQLD] 데이터 모델링 요소-3)관계(Relationship) (0) | 2024.02.26 |
[SQLD] 데이터 모델링 요소-2)속성(Attribute) (1) | 2024.02.25 |
[SQLD] 데이터 모델링 요소-1)엔터티(Entity) (0) | 2024.02.24 |