[DBMS]데이터 모델링(4)

Date:     Updated:

카테고리:

태그:

[5] 데이터 모델링(4)

5.1. 식별자 (Identyfier)

  • 개념
    • 엔터티의 각 인스턴스를 개별적으로 식별하기 위해 사용되는 하나의 속성 또는 속성들의 조합.
    • 엔터티 내에서 하나의 행을 콕 집어낼 때 사용하는 것임.

      예)
        - 고객 (고객번호)
        - 사원 (사원번호)
        - 주문 (주문번호)
        - 상품 (상품번호)
      
  • 특징
    • 각각의 인스턴스 집합은 주식별자에 의해 유일하게 구분할수 있음 (유일성)
    • 주식별자를 구성하는 속성의 수는 최소한의 수로 이루어져야 함 (최소성)
    • 주식별자가 한 번 정해지면 그 값은 변하지 말아야 함 (불변성)
    • 주식별자가 지정되면 반드시 데이터 값이 존재해야 함 (Null 불가) (존재성)
      • NULL : 아직 정해지지 않은 미지의 값
  • 분류
    • 대표성 여부
      • 주 식별자
        • 예) 사원번호, 고객번호
      • 보조 식별자
        • 주식별자가 아니라서 대표성을 가지지 못함
        • 예) 주민등록번호
    • 속성의 수
      • 단일 식별자
        • 하나의 속성으로 구성된 식별자
        • 예) 고객 엔터티의 고객번호
      • 복합 식별자
        • 둘 이상의 속성으로 구성된 식별자
        • 예) 주문상세 엔터티의 주문번호 + 상세순번
  • 식별자 도출 기준
    • 비즈니스에서 자주 이용되는 속성을 주식별자로 지정함
    • 명칭, 장소와 같이 이름으로 기술이 되는 속성은 가능하면 주식별자로 하지 않음
    • 주식별자를 복합식별자로 할 경우 지나치게 많은 속성이 포함되지 않도록 함
  • 식별자 관계 와 비식별자 관계
    • 식별자 관계
      • 자식 엔터티에서 부모 엔터티로부터 받은 외부 식별자를 자신의 주 식별자로 이용한 경우.
      • 자식 입장에서 외부식별자(FK)를 자신의 식별자로 사용하고 있는 것
      • 강한 연결 관계
    • 비식별자 관계
      • 자식 엔터티에서 부몬 엔터티로부터 받은 외부 식별자를 부모와 자식이 연결되는 속성으로서만 이용한 경우
      • 자식 엔터티 입장에서 외부식별자(FK)를 자신의 식별자로 사용하고 있지 않은 것
      • 약한 연결 관계
    • 업무 특징, 자식 엔터티의 주식별자 구성 SQL 작성 전략에 의해 결정함.
  • 식별자 관계로만 설정한 경우
    • SQL 문의 복잡성이 올라감
    • 조인(Join) 조건이 누락되는 실수가 발생할 확률이 높아짐
    • 관계가 도출될때마다 PK 속성의 수가 지속적으로 증가하게 됨
    • SQL 문 개발시 필연적으로 테이블간의 조인을 하게 됨
      • 조인에 참여하는 식별자 속성의 개수가 많을 경우 SQL 문의 복잡도가 올라감
  • 고객/주문의 관계를 비식별자로 설정한 경우
    • 주문 엔터티 구성 시 주문번호를 식별자로 지정하고 고객번호를 외부 식별자로 하는 비식별자 관계를 설정
    • SQL 작성시 복잡성과 오류 가능성을 줄여주게 됨
  • 비식별자 관계를 고려해야 하는 경우
    • 데이터 모델링 작업 시 식별자 관계와 비식별자 관계를 취사선택하여 연결하는 것
      • 높은 수준 내공 필요로 하는 모델링 기술임
    • 기본적으로 식별자 관계로 모든 관계를 연결하면서 다음 조건에 해당할 경우 비식별자 관계로 조정하면 됨
      • 관계의 강/약을 분석 => 약한 관계 => 비 식별자 관계 고려
      • 자식 테이블 독립 PK 필요 => 독립 PK 구성 => 비 식별자 관계 고려
      • SQL 복잡성 증가 (개발 생산성 하락) => PK 속성 단순화 => 비 식별자 관계 고려

DBMS 카테고리 내 다른 글 보러가기

댓글 남기기