본문 바로가기

데이터베이스/데이터베이스 기초

[DB] 식별자의 정의와 특징 & 시퀀스(Sequence) 와의 관계

식별자의 정의

식별자란 하나의 엔티티 내에서 각각의 인스턴스를 유일하게 구분해낼 수 있는 속성 또는 속성그룹을 말한다. 하나의 엔티티는 반드시 하나 이상의 식별자를 보유하고 있어야 한다.

 

식별자의 특징(최불유존)

식별자의 유형

 

 

식별자 예시

부서번호

- 주식별자: 엔터티 내에서 대표성을 가지며, 각 어커런스를 구분할 수 있다. 또한, 타 엔터티와 참조관계를 연결할 수 있음. 

- 내부식별자: 부서라는 엔터티 내에서 스스로 만들어지는 식별자.

- 단일식별자: '부서번호'라는 하나의 속성으로만 구성된 식별자.

- 원조식별자(본질식별자?): 업무에 의해 만들어지는 식별자.

 

사번

- 주식별자: 엔터티 내에서 대표성을 가지며, 각 어커런스를 구분할 수 있다. 또한, 타 엔터티와 참조관계를 연결할 수 있음. 

- 내부식별자: 사원이라는 엔터티 내에서 스스로 만들어지는 식별자.

- 단일식별자: '사번'이라는 하나의 속성으로만 구성된 식별자.

- 원조식별자(본질식별자?): 업무에 의해 만들어지는 식별자.

 

주민등록번호

- 보조식별자: 엔터티 내에서 각 어커런스를 구분할 수 있으나, 대표성이 없어서 참조관계 연결 불가능.

 

부서번호

- 외부식별자: 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자.

 

사번, 수강일자

- 주식별자: 엔터티 내에서 대표성을 가지며, 각 어커런스를 구분할 수 있다. 또한, 타 엔터티와 참조관계를 연결할 수 있음. 

- 복합식별자: 둘 이상의 속성으로 구성된 식별자.

- 원조식별자(본질식별자?): 업무에 의해 만들어지는 식별자.

 

주문번호

- 주식별자: 엔터티 내에서 대표성을 가지며, 각 어커런스를 구분할 수 있다. 또한, 타 엔터티와 참조관계를 연결할 수 있음. 

- 단일식별자: '주문번호'라는 하나의 속성으로만 구성된 식별자.

- 내부식별자: '구매신청' 엔터티 내에서 스스로 만들어지는 식별자.

- 인조식별자: 업무적으로 만들어지지는 않지만, 원조식별자가 복잡한 구성을 가지고 있어서 인위적으로 만든 식별자.

 

 

시퀀스(Sequence)란?

시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체입니다. 보통 PK값에 중복값을 방지하기위해 사용합니다. 예를들어 게시판에 글이 하나 추가될때마다 글번호(PK)가 생겨야 한다고 해보겠습니다. 만약 100번까지 글 번호가 생성되어있다면 그 다음 글이 추가가 되었을 경우 글 번호가 101으로 하나의 ROW를 생성해주어야 할것입니다. 이때 101이라는 숫자를 얻으려면 기존 글번호중 가장 큰 값에 +1을 하는 로직을 어딘가에 넣어야하는데 시퀀스를 사용하면 이러한 로직이 필요없이 데이터베이스에 ROW가 추가될때마다 자동으로 +1을 시켜주어 매우 편리합니다.

- 참조: https://coding-factory.tistory.com/420

 

식별자와 시퀀스(Sequence)의 관계

시퀀스를 식별자로 사용할 수 있다.