본문 바로가기

자격증/SQLD

식별자

1. 식별자(Identifiers) 개념


식별자(PK) : 특정 엔티티 인스턴스의 식별 가능한 속성


2. 식별자의 특징


주식별자의 특정

  • 유일성 : 엔티티 내 모든 인스턴스가 유일하게 구분되어야 함

  • 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

  • 불변성 : 자주 변하지 않는 값 ( 사실은 변하지 말아야 함, 파급효과가 장난이 아님 ㅎ)

  • 존재성 : 반드시 값이 들어와야 한다.

  • 대체 식별자의 특징 == 주 식별자의 특징


외부 식별자는 참조무결성 제약조건(Referential Integrity)에 따른 특징을 가지고 있다.




3. 식별자 분류 및 표기법


대표성 여부

  • 주식별자 : 엔티티 내 각 어커런스 구분 가능, 참조관계 연결 가능

  • 보조 식별자 : 엔티티 내 각 어커런스 구분 가능, 참조관계 연결 불가능


스스로 생성 여부

  • 내부 식별자 : 엔티티 내부에서 만들어짐

  • 외부 식별자 : 엔티티 외부에서 받아 옴


속성의 수

  • 단일 식별자 : 하나의 속성으로 구분

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


대체 여부

  • 본질 식별자 : 업무의 의해 만들어짐

  • 인조 식별자 : 업무적으로 만들어지진 않지만, 원조식별자가 복잡해 인위적으로 만들어짐



4. 주식별자 도출기준


기준

  • 자주 이용되는 속성
    주민번호, 사원번호 중에서 자주사용되는 것은 사원번호

  • 이름으로 기술되는 것은 지정 자제
    일련번호와 코드가 많이 사용됨

  • 많은 속성이 포함되지 않도록
    속성 수가 많은 경우 새로운 인조 식별자를 생성하는 것이 성능상 유리



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


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

부모의 식별자를 자신의 주식별자로 이용할 것 인지, 연결 속성으로만 사용할 것 인지 결정


식별자관계

부모의 키가 자신의 주식별자 로 상속되므로 반드시 부모가 존재 해야하는 관계인 경우


비식별자관계

  • 자식 엔티티에서 받은 속성이 반드시 필수가 아니여도 무방한 경우

  • 엔티티 별로 생명주기가 다른 경우 (부모 인스턴스가 사라져도, 자식 인스턴스는 남는 경우)

  • 여러 개의 엔티티가 하나로 통합되었는데, 각각의 엔티티가 별도의 관계를 가지는 경우

  • 주식별자로 사용해도 되지만 전략상 보조 식별자일때가 유연하다고 판단될 때
    (계약번호와 계약사원번호인 경우엔 단독 계약으로 생성도 가능하기 때문)


비식별자관계 선택하는 경우

  • 약한 관계일 경우

  • 독립 PK 구성이 필요한 경우

  • PK 속성의 단순 화가 필요한 경우


독립 PK 구성 : 업무적 필요성과 성능상 필요여부를 모두 포함



'자격증 > SQLD' 카테고리의 다른 글

반정규화와 성능  (0) 2016.09.09
성능 데이터 모델링의 개요  (0) 2016.09.02
관계(Relation Ship)  (0) 2016.09.02
속성(Attribute)  (0) 2016.09.02
엔티티(Entity)  (0) 2016.09.02