YoonWould!!

[SQLD]식별자 본문

<SW>/데이터베이스

[SQLD]식별자

Hading 2018. 8. 11. 21:50
728x90

제5절 식별자

1. 식별자의 개념

  • Entity 내에서 Instance 들을 구분할 수 있는 구분자

2. 식별자의 특징

특징내용비고
유일성주식별자에 의해 Enriry 내 모든 Instance 들을 유일하게 구분함예) 사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유번호 부여됨
최소성주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함예) 사원번호만으로도 고유한 구조
사원분류코드+사원번허는 부적절함
불변성주식별자가 한번 특정 Entity 에지정되면 그값은 변하지 말아야 함예) 사원번호의 값이 변한다는 의미는 이기록이 말소되고 새로운 기록이 발생되는 개념임
존재성주식별자가 지정되면 반드시 데이터값이 존재(Null 안됨)사원번호 없는 회사직원은 있을 수 없음.

3. 식별자 분류 및 표기법

가. 식별자 분류

분류식별자설명
대표성여부주식별자엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
보조식별자엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못함
스스로생성여부내부식별자엔터티 내부에서 스스로 만들어 지는 식별자
외부식별자타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
속성의 수단일식별자하나의 속성으로 구성된 식별자
복합식별자둘 이상의 속성으로 구성된 식별자
대체성여부본질식별자업무에 의해 만들어 지는 식별자
인조식별자업무적으로 만들어지지는 않지만 원조식별자가 복잡하 구성을 가지고 있기 때문에인위적으로 만드는 식별자

나. 식별자 표기법

4. 주식별자 도출 기준

  • 해당 업무에서 자주 이용되는 속성을 주식별자로 지정하도록 함
  • 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함
  • 속성의 수가 많아지지 않도록 함

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

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

  • 부모 자식간의 관계에 의해 외부식별자가 생성된다.
  • 이때 부모로부터 받은 외부식별자를
    자신의 주식별자로 이용할 것인지? --> 식별자관계 
    부모와 연결이 되는 속성으로만 이용할 것인지? --> 비식별자관계
    결정해야 한다.

나. 식별자관계

다. 비식별자관계

라. 식별자관계로만 설정할 경우 문제점

마. 비식별자관계로만 설정할 경우 문제점

바. 식별자관계와 비식별자관계 모델링

1) 비식별관계 선택 프로세스

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

항목식별자관계비식별자관계
목적강한 연결관계 표현약한 연결관계 표현
자식 주식별자 영향자식 주식별자의 구성에 포함자식 일반속성에 포함
표기법실선 표현점선 표현
연결 고려사항\- 반드시 부모엔터티 종속
- 자식 주식별자 구성에 부모 주식별자 포함 필요
- 상속받은 주식별자속성을 타 엔터티에 이전 필요
\- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성
- 자식 주식별자 구성에 부모 주식별자 부분 필요
- 상속받은 주식별자속성을 타 엔터티에 차단 필요
- 부모쪽의 관계참여가 선택관계

3) 식별자와 비식별자를 적용한 데이터 모델

728x90

'<SW> > 데이터베이스' 카테고리의 다른 글

[SQLD]정규화  (0) 2018.08.23
[SQLD]성능 데이터 모델링  (0) 2018.08.23
[SQLD]관계(Relationship)  (0) 2018.08.11
[SQLD]속성(Attribute)  (0) 2018.08.11
[SQLD]엔터티  (0) 2018.08.11