본문 바로가기
카테고리 없음

[데이터베이스] 6. 식별자

by 상똥 2023. 4. 28.

[1. 식별자 기본]

1. 식별자 : 여러 개의 속성으로 구성된 엔터티 내에서 엔터티를 대표할 수 있는 하나의 속성

 - 키 ≠ 식별자

 - 업무적으로 구분하는데 사용되는 것으로 논리 데이터 모델링 단계에서 사용 (키는 데이터베이스 테이블에 접근할 때 사용)

 

2. 식별자의 분류

(1) 대표성 여부

 - 주식별자 : 속성들을 구분할 수 있으며 대표성 있음, 타 엔터티와 참조관계 연결 가능

 - 보조식별자 : 속성들을 구분할 수 있으나 대표성은 없어 참조관계 연결 불가능

(2) 스스로 생성 여부

 - 내부 식별자 : 엔터티 내에서 스스로 생성된 식별자

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

(3) 속성의 수

 - 단일 식별자 : 하나의 속성으로 구성된 식별자

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

(4) 대체 여부

 - 본질 식별자 : 업무에 의해 만들어지는 식별자

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

 

[2. 주식별자]

1. 주식별자의 특징

(1) 유일성 : 주식별자에 의해 엔터티 내의 모든 속성들이 구분되어야 함 (Ex. 사원번호)

(2) 최소성 : 주식별자를 구성하는 모든 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 (Ex. 사원번호 코드가 존재함에도 사원 분류코드를 만드는 것은 부적절)

(3) 불변성 : 주식별자가 한 번 엔터티에 지정되면 그 값은 변해선 안 됨

(4) 존재성 : 주식별자가 지정되면 NULL값이 존재해서는 안 됨 (Ex. 모든 사원은 사원번호를 가짐)

 

2. 주식별자 도출 기준

(1) 해당 업무에서 자주 이용되는 속성 (Ex. 사원번호를 주식별자, 주민번호를 보조식별자)

(2) 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함 (Ex. 일련번호 / 코드)

(3) 속성이 많아지지 않도록 함

 

[3. 식별자와 비식별자의 관계]

1. 외부식별자 : 자기 자신의 엔터티가 아니라, 다른 엔터티와의 관계를 통해 자식 쪽 엔터티에 생성되는 속성

 - 데이터베이스 생성 시 FK역할

 - 엔터티에 주식별자가 지정되고, 타 엔터티와의 관계를 연결하면 부모 엔터티쪽의 주식별자는 자식 엔터티의 속성이 됨 / 이 때 부모로부터 받은 속성을 주식별자로 사용할 것인지 결정해야 함