최보름달
[SQL] 식별자 (Identifiers) 본문
식별자란
하나의 엔티티에 구성되어 있는 여러 개의 속성 중에 엔티티를 대표할 수 있는 속성.
하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다.
식별자? Key?
- 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용하고
- 키(key)는 데이터베이스 테이블 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용한다.
식별자의 특징
- 주식별자에 의해 엔티티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
주식별자의 특징
- 유일성: 주식별자에 의해 엔티티 내에 모든 인스턴스들을 유일하게 구분함. ex) 사원번호가 모든 직원들 빠짐없이 부여됨.
- 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함. ex) 사원번호만으로 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임.
- 불변성: 주식별자가 한 번 특정 엔티티에 지정되면 그 식별자의 값은 변하지 않아야 함. ex) 사원번호의 값이 변한다는 의미는 이전 기록이 말소되고 새로운 기록이 발생되는 개념임.
- 존재성: 주식별자가 지정되면 반드시 데이터 값이 존재(Null 안됨). ex) 사원번호 없는 직원은 존재할 수 없음.
식별자 분류
대표성을 가지는가?
- 주식별자(Primary identifier)
- 보조식별자(Alternate identifier)
스스로 생성되었는가?
- 내부식별자
- 외부식별자(Foreign identifier)
단일 속성으로 식별되는가?
- 단일식별자(Single identifier)
- 복합식별자(Composit identifier)
업무에 의해 만들어지는가?
- 본질식별자
- 인조식별자
주식별자 도출기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
식별자 관계(Identifying Relationship)
- 자식엔티티의 주식별자로 부모 주식별자가 상속이 되는 경우 (부모 엔티티가 생성되어야 자식 엔티티가 생성되는 경우.)
비식별자 관계(Non-Identifying Relationship)
- 부모엔티티로부터 속성을 받았지만 자식엔티티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우.
* 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] 정규화/ 반정규화 (0) | 2020.07.19 |
---|---|
[SQL] 성능 데이터 모델링 (0) | 2020.07.19 |
[SQL] 관계(Relationship) (0) | 2020.07.16 |
[SQL] 속성(Attribute) (0) | 2020.07.15 |
[SQL] 엔티티(Entity) (0) | 2020.07.15 |