엔터티(Entity)를 구분하는 식별자(Identifier)
- 정보처리기술사/데이터베이스
- 2021. 1. 31.
식별자(Identifier)의 개념
- 데이터베이스에서 인스턴스(Instance)의 집합인 엔터티(Entity)를 구분할 수 있는 논리적인 값으로 하나의 Entity에 구성되어 있는 여러가지 속성 중에 대표할 수 있는 속성
- ex) 주민등록번호, ISBN(도서번호) 등과 같이 객체의 고유한 값들을 일반적으로 식별자라 부른다
식별자와 키(Key)를 동일한 의미로 보통 사용하는데 식별자의 용어는 논리 데이터 모델링 단계에서 사용하며, Key는 물리 데이터 모델링 단계에서 사용된다.
식별자의 특징
유일성
- 주식별자에 의해 엔터티(Entity)내의 모든 인스턴스들을 유일하게 구분한다.
- ex) 대학교 학생들에서 학번 부여
최소성
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- ex) 학번으로 구별할 수 있는데 년도 + 학번으로 구성될 경우, 부적절한 구조
불변성
- 특정 엔터티가 주식별자로 지정되면 그 식별자의 값은 변하지 않아야 된다.
- 한번 부여한 학번은 변경되면 안된다
존재성
- 주 식별자가 지정되면 반드시 데이터의 값이 존재해야 된다(not null)
- 학번이 없는 학생이 있을 수 없다
식별자의 종류
분류 | 식별자 | 내용 |
대표성 여부 | 주식별자 | 엔터티를 구분할 수 있으며, 타 엔터티와 참조관계를 연결할 수 있음 |
보조식별자 | 엔터티를 구분할 수 있지만, 주식별자보다 대표성을 가지지 못한 경우 | |
스스로 생성 여부 |
내부식별자 | 엔터티 내부에서 스스로 만들어지는 식별자 (ex: 사원번호) |
외부식별자 | 상속받거나 타 엔터티의 관계를 통해 받아오는 식별자 | |
속성의 수 | 단일식별자 | 하나의 속성으로 이루어진 식별자 |
복합식별자 | 두개 이상의 속성으로 이루어진 식별자 | |
대체 여부 | 본질식별자 | 업무에 의해서 만들어지는 식별자 |
인조식별자 | 업무적으로 만들어지지 않지만 원조식별자가 복잡한 구성을 가지고 있어서 인위적으로 만들어진 식별자 |
식별자의 도출 기준
업무에서 자주 이용되는 속성을 주식별자로 지정
- 직원이라는 엔터티중에서 사원번호와 주민등록번호 모두 유니크한 속성이지만, 사원번호가 직원을 관리할 때 더 흔히사용되고 유리하기 때문에 사원번호를 주식별자로 지정하고, 주민등록 번호를 보조 식별자로 지정함
이름으로 기술된 것은 가능하면 주식별자로 지정하지 않음
- 명칭이나 내역이 있고 인스턴스들을 식별할 수 있는 다른 구분자가 없을 경우 새로운 식별자(보통 일련번호나 코드)를 신규로 생성
너무 많은 속성으로 복합 식별자를 만들지 않는다
- 모델상에 표현하는 문장의 간편성뿐만 아니라 어플리케이션 구성에 있어서도 복잡한 소스 구성을 피하며 과도한 복합키는 최소한으로 배제
식별자의 표기법
'정보처리기술사 > 데이터베이스' 카테고리의 다른 글
데이터베이스의 논리적 작업단위, 트랜잭션(Transaction) (0) | 2020.11.28 |
---|---|
정규화의 기반이론인 함수적 종속성(Functional Dependency) (0) | 2020.11.28 |
데이터베이스의 연결함정(Connection Trap) (0) | 2020.11.27 |
DB 무결성 확보를 위한, 동시성 제어(Concurrency control) (0) | 2020.10.07 |
DB의 분산처리 기법, 샤드(Shard), 샤딩(Sharding) (0) | 2020.08.14 |