본문 바로가기

[DB]DataBase/[SQL]

[SQLD] 데이터 모델링 요소-4)식별자(Identifier)

728x90
반응형

식별자 정의

  • 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자
  • 여러 개의 속성 중 엔터티를 대표할 수 있는 속성
  • 하나의 엔터티에는 유일한 식별자가 존재해야 함
  • 엔터티는 자신을 지칭하거나 식별하는 속성인 식별자를 가짐

식별자 vs. 키

  • 식별자는 논리 데이터 모델링 단계에서 사용하고, 키(Key)는 물리 데이터 모델링 단계에서 사용한다.

식별자 특징

  • 주 식별자에 의해 엔터티 내의 모든 인스턴스가 구분 가능
  • 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
  • 지정 주 식별자 값은 자주 바뀌면 안됨
  • 주 식별자 지정 시 반드시 값이 들어와야 함
  • 대체 식별자 -> 주 식별자의 특징과 유사하지만, 참조무결성 제약조건이 특징

식별자 종류

  • 엔터티 내에서 대표성을 가지는가에 따라 주 식별자(Primary Identifier)와 보조 식별자(Alternate Identifier)로 구분
  • 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부 식별자외부 식별자(Foreign Identifier)로 구분
  • 단일 속성으로 식별이 되는가에 따라 단일 식별자(Single Identifier)와 복합 식별자(Composit Identifier)로 구분
  • 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질 식별자인조 식별자로 구분

식별자 작성 방법

주 식별자의 특징

  • 유일성
    • 주 식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분함
  • 최소성
    • 주 식별자를 구성하는 속정의 수는 유일성을 만족하는 최소의 수가 되어야 함
  • 불변성
    • 주 식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
  • 존재성
    • 주 식별자가 지정되면 반드시 데이터 값이 존재해야 함(Null 허용 안됨)

주 식별자 도출 기준

  • 해당 업무에서 자주 이요되는 속성을 주 식별자로 지정한다.
  • 명칭, 내용 등과 같이 이름으로 기술되는 것들은 가능하면 주 식별자로 지정하지 않는다.
  • 복합으로 주 식별자가 구성될 경우 너무 많은 속성이 포함되지 않도록 한다.

식별자와 비식별자 관계

  • 식별자 관계
    • 부모로부터 받은 식별자를 자식 엔터티의 주 식별자로 사용하는 경우, Null 값이 오면 안되므로 반드시 부모 엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우
    • 식별자 관계로만 데이터 모델을 개발할 경우, 주 식별자 속성이 지속적으로 증가할 수 밖에 없으므로 연결되는 만큼 PK가 늘어나는 문제가 발생

  • 비식별자 관계
    • 부모 엔터티로부터 속성을 받았지만 자식 엔터티의 주 식별자로 사용되지 않고, 일반적인 속성으로만 사용되는 경우
    • 비 식별자 관계로만 데이터 모델을 개발할 경우, 연결되지 않은 비 식별자 관계로 인해 SQL 구문이 길어지는 문제 발생

 

식별자와 비식별자 관계 모델링 파악 기준

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

반응형