본문 바로가기
자격증/SQL개발자(SQLD)

1-5장. 데이터 모델링의 이해_식별자(Identifiers)

by 김엉배 2023. 5. 14.
728x90
반응형

SQLD 단원별 목록으로


1. 식별자(Identifiers) 개념

- 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 유일한

  식별자가 존재해야 한다.

 


2. 식별자의 특징

- 외부식별자의 경우 주식별자 특징과 일치하지 않으며 참조무결성 제약조건(Referential Interity)에 따른 특징을 가지고 있다.

 

 

 


3. 식별자 분류 및 표기법

가) 식별자 분류

- 자신의 엔터티 내에서 대표성을 가지는가에 따른 주식별자(Primary Identifier)와 보조식별자(Alternate Identifier)로 구분

- 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자(Foreign Identifier)로 구분

- 단일 속성으로 식별이 되는가에 따라 단일식별자(Single Identifier)와 복합식별자(Composit Identifier)로 구분

나) 식별자 표기법

 


4. 주식별자 도출기준

가) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정하도록 함

- 예를 들면, 직원이라는 엔터티가 있을 때 유일하게 식별가능한 속성으로는 주민등록번호와 사원번호가 존재할 수 있다.

   사원번호가 그 회사에서 직원을 관리할 때 흔히 사용되므로 사원번호를 주식별자로 지정하고 주민등록번호는 보조식별자로 사용

 

나) 명칭, 내역 등과 같이 이름으로 기술되는 것을 피함

- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않도록 한다.

- 예를 들어, 한 회사에 부서이름이 100개가 있다고 할 때, 각각의 부서이름은 유일하게 구별될 수 있다고 하여 부서이름을 주식별자로

   지정하지 않도록 해야 한다.

- 부서명과 같은 경우 부서코드를 부여하여 코드엔터티에 등록한 후 부서코드로 주식별자를 지정하는 방법과 부서일련번호(부서번호)를

   주식별자로 하고 부서명은 보조식별자로 활용하는 두 가지 방법이 있다.

 

다) 속성의 수가 많아지지 않도록 함

왼편의 복잡한 주식별자 조회 쿼리
오른편의 인조삭별장릉 통해 단순화한 주식별자 조회 쿼리

 


5. 식별자관계와 비식별자관계에 따른 식별자

가) 식별자관계와 비식별자 관계의 결정

- 엔터티에 주식별자가 지정되고 엔터티 간 관계를 연결하면 부모 쪽의 주식별자를 자식엔터티의 속성으로 내려 보낸다.

   이때 자식엔터티에서 부모엔터티로부터 받은 외부식별자를 자식의 주식별자로 이용할 것인지 또는 부모와 연결이 되는 속성으로서만

   이용할 것인지를 결정해야 한다.

 

나) 식별자 관계

- 부모로부터 받은 식별자를 자식엔터티의 주식별자로 이용하는 경우는 Null 값이 오면 안 되므로 반드시 부모엔터티가 생성되어야

   자기 자신의 엔터티가 생성되는 경우.

 

다) 비식별자 관계

- 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로 사용하는 경우

  ① 자식엔터티에서 받는 속성이 반드시 필수가 아니어도 무방하기  떄문에 부모 없는 자식이 생성될 수 있다.

  ② 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우

  ③ 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때

  ④ 자식엔터티에 주식별자로 사용하여도 되지만 자식엔터티에서 별도의 주식별자을 생성하는 것이 더 유리하다 판단될 때

 

라) 식별자와 비식별자관계 비교

 

728x90
반응형