식별자
2023. 10. 7. 16:10ㆍBOOKS/SQL 전문가 가이드
1. 식별자 개념
식별자
- 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자
- 엔터티를 대표하는 속성
- 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 함
2. 식별자의 특징
- 유일성 : 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수여야 함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않음
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재 (NULL X)
외부 식별자는 참조 무결성 제약 조건에 따른 특징을 가짐
3. 식별자 분류 및 표기법
식별자 분류
식별자 표기법
4. 주식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정
- 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함 → 일련 번호나 코드 사용
- 속성의 수가 많아지지 않도록 함 → 인조 식별자 생성
5. 식별자 관계와 비식별자 관계에 따른 식별자
식별자 관계와 비식별자 관계의 결정
- 외부 식별자 : 다른 엔터티와의 관계를 통해 자식 쪽 엔터티에 생성되는 속성, Foreign key
- 자식 엔터티가 외부식별자를 주식별자로 이용할지 부모와 연결되는 속성으로만 이용할지 결정해야 함
식별자 관계
- 자식 엔터티의 주식별자로 부모의 주식별자가 상속되는 경우
- 반드시 부모엔터티가 생성되어야 자신의 엔터티가 생성되는 경우
비식별자 관계
- 부모 엔터티로부터 받은 속성을 주식별자가 아닌 일반 속성으로만 사용하는 경우
- 비식별자 관계에 의한 외부속성을 생성하는 경우
- 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방한 경우
- 엔터티별로 데이터의 생명주기를 다르게 관리할 경우
- 여러개의 엔터티가 하나의 엔터티로 통합•표현되었는데 각각의 엔터티가 별도의 관계를 가질 경우
- 자식 엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 경우
식별자 관계로만 설정할 경우의 문제점
- 주식별자 속성이 지속적으로 증가할 수 밖에 없어 개발 복잡성과 오류를 유발하는 요인이 될 수 있다.
비식별자 관계로만 설정할 경우의 문제점
- 자주 조회하는 속성의 경우 불필요하게 부모엔터티까지 찾아가야해서 SQL구문에 많은 조인이 걸리고 그에 따라 복잡성이 증가하고 성능이 저하된다.
식별자 관계와 비식별자 관계 모델링
비식별자 관계 선택 프로세스
식별자와 비식별자 관계 비교
식별자와 비식별자를 적용한 데이터 모델
'BOOKS > SQL 전문가 가이드' 카테고리의 다른 글
관계와 조인의 이해 (0) | 2023.10.07 |
---|---|
정규화 (0) | 2023.10.07 |
관계 (0) | 2023.10.07 |
속성 (0) | 2023.09.29 |
엔터티 (0) | 2023.09.29 |