■ 식별자
하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성
하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다.
■ 식별자 특징
★ 주식별자의 특징
유일성 | 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함 | 사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유하게 부여됨 |
최소성 | 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함 |
사원번호만으로도 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성된다면, 부 적절한 주식별자 구조임 |
불변성 | 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함 |
사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념임 |
존재성 | 주식별자가 지정되면 반드시 데이터 값이 존재함 (NOT NULL) | 사원번호 없는 회사직원은 있을 수 없음 |
★ 유 최 불 존
외부식별자의 경우 주식별자 특징과 일치하지 않으며 ,
참조무결성 제약조건(Referential Integrity)에 따른 특징을 가지고 있다.
■ 식별자 분류
분류 | 식별자 | 설명 |
대표성 여부 |
주식별자 | 엔터티 내에서 각 인스턴스를 구분할 수 있음 타 엔터티와 참족솬계를 연결할 수 있음 (기본키, Primary Key에 해당) 유일성 O 최소성 O 대표성 O |
보조식별자 | 엔터티 내에서 각 인스턴스를 구분할 수 있음 대표성을 갖지 못해 참조관계 연결에 사용되지 않음 (후보키, Candidate Key에 해당) 유일성 O 최소성 O 대표성 X |
|
스스로 생성여부 |
내부식별자 | 엔터티 내부에서 스스로 만들어지는 식별자 |
외부식별자 | 관계를 통해 유입되는 타 엔터티의 식별자 (외래키, Foreign Key에 해당) 주식별자 속성 또는 일반 속성으로 포함될 수 있음 |
|
속성의 수 | 단일식별자 | 하나의 속성으로 구성된 식별자 |
복합식별자 | 둘 이상의 속성으로 구성된 식별자 | |
대체 여부 |
본질식별자 | 업무에 의해 만들어지는 식별자 |
인조식별자 | 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자 |
예시)
■ 주식별자 도출기준
- 해당업무에서 자주 이용되는 속성을 주식별자로 지정
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않음
- 복합식별자를 구성할 경우 너무 많은 속성이 포함되지 않아야 함
■ 식별자 관계와 비식별자 관계에 따른 식별자
식별자 관계와 비식별자 관계
- 부모 엔터티 식별자 A를 자식엔터티의 외부식별자 A(FK)로 포함할 때
● A(FK)가 주식별자에 포함된 경우 -> 식별자 관계
● A(FK)가 비식별자 속성으로 포함된 경우 -> 비식별자 관계
식별자 관계
부모의 주식별자가 자식 엔터티의 주식별자로 상속
- 반드시 부모 엔터티가 생성되어야 자식 엔터티가 생성될 수 있다.
- 자식 엔터티의 주식별자가 해당속성만으로 구성되는 경우 -> 1:1관계
- 자식 엔터티의 주식별자가 해당 속성 + a 로 구성되는 경우 -> 1: N관계
비식별자 관계
부모의 주식별자가 자식엔터티의 비식별자 속성으로 상속
▶ 다음의 경우 비식별자 관계가 형성됨
- 부모 엔터티와 자식 엔터티의 관계가 약한 경우 -> 부모엔터티 없이 자식엔터티가 생성 가능
- 자식 엔터티의 주식별자로 사용해도 되지만, 일반속성으로 두는 것이 유리할 때
= 자식 엔터티의 독립적인 주식별자 설정이 필요한 경우 등
식별자와 비식별자 관계의 비교
'SQL' 카테고리의 다른 글
[SQLD] 데이터 모델과 성능 - Ⅰ성능 데이터 모델링의 정의 (0) | 2022.03.18 |
---|---|
[SQLD] 데이터 모델링의 이해 - Ⅳ 관계 (Relationship) (0) | 2022.03.13 |
[SQLD] 데이터 모델링의 이해 - Ⅲ 속성 (Attribute) (0) | 2022.03.13 |
[SQLD] 데이터 모델링의 이해 - Ⅱ엔터티(Entity) (0) | 2022.03.13 |
[SQLD] 데이터 모델링의 이해 -Ⅰ데이터 모델의 이해 (0) | 2022.03.13 |