반응형
식별자란? (Identifiers)
엔터티는 인스턴스들의 집합이다. 식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자이다.
식별자의 특징
- 유일성 - 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 최소성 - 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 불변성 - 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 존재성 - 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
식별자 분류 및 표기법
- 대표성 여부
- 주식별자
- 보조식별자
- 스스로 생성여부
- 내부식별자
- 외부식별자 - 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key 역할을 한다.
- 속성의 수
- 단일식별자
- 복합식별자 - 둘 이상의 속성으로 구성된 식별자
- 대체 여부
- 본질식별자
- 인조식별자 - 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자
주식별자 도출기준
- 자주 이용되는 속성을 주식별자로 지정
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다. (integer가 속도가 훨씬 빠르므로)
- 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
- 주식별자로 선정하기 위한 속성이 복합으로 구성되어 주식별자가 될 수 있을 때 가능하면 주식별자 선정하기 위한 속성의 수가 많지 않도록 해야 한다.
- 식별자의 속성의 개수가 많을 때(일반적으로 7~8개 이상)는 새로운 인조식별자를 생성하여 데이터 모델을 구성하는 것이 데이터 모델을 한층 더 단순하게 하고 애플리케이션을 개발할 때 조건절을 단순하게 할 수 있는 방법이 될 수 있다.
식별자관계와 비식별자관계에 따른 식별자
- 외부식별자(Foreign Identifier)는 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와 의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key역할을 한다.
- 식별자관계
- 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
- Null값이 오면 안되므로 반 드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우
- 비식별자관계
- 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하 는 경우
- 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우
- 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우
식별자 관계로만 설정할 경우의 이점과 문제점
- 이점 : 부모 엔터티의 정보를 가지고 자식 테이블을 검색하는 경우가 많다면 식별자관계가 성능과 개발의 용이성 측면에서 좋다.
- 문제점 : 식별자 관계를 연결한 데이터 모델의 PK속성의 수는 데이터 모델의 흐름이 길어질수록 증가할 수 밖에 없는 구조를 가지게 된다.
식별자관계 | 비식별자관계 | |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 |
|
|
참조 - 한국데이터진흥원(2019). SQL 전문가 가이드 2013 Edition. 서울: 한국데이터진흥원.
반응형
'데이터베이스 > SQLD 공부' 카테고리의 다른 글
[SQLD] 데이터 모델과 성능 - 정규화, 반정규화 (0) | 2019.09.22 |
---|---|
[SQLD] 데이터 모델링 - IE/Crow's Foot 표기법 (까마귀발 표기법) & ERD 표기법 (2) | 2019.09.18 |
[SQLD] 데이터 모델링 - 관계 (0) | 2019.09.10 |
[SQLD] 데이터 모델링 - 속성 Attribute (0) | 2019.09.10 |
[SQLD] 데이터 모델링 - 엔터티 Entity (0) | 2019.09.10 |