ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터 모델링의 이해] 식별자 Identifiers
    SQL/SQLD 2025. 1. 8. 18:20

     

    식별자 Identifiers

    • 하나의 엔티티에 구성되는 여러 개의 속성 중에 엔티티를 대표하는 속성
    • 하나의 유일한 식별자가 존재
    • 식별자는 논리 데이터 모델링 단계에서 사용하고, Key는 물리 데이터 모델링에서 사용

     

    식별자 특징

    1. 유일성
      : 주식별자에 의해 엔티티내에 모든 인스턴스들을 유일하게 구분
      e.g. 사원번호(주식별자)가 모든 직원들에 대해 개인별로 고유하게 부여
    2. 최소성
      : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
      e.g. 사원번호만으로도 고유한 구조, 사원분류코드+사원번호로 식별자가 구분되면 부적절한 주식별자
    3. 불변성
      : 주식별자가 한번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
      e.g. 사원번호의 값이 변한다는 의미는 이전 기록이 말소되고 새로운 기록이 발생된 개념
    4. 존재성
      : 주식별자가 지정되면 반드시 데이터 값이 존재. Null 안됨.
      e.g. 사원번호가 없는 회사 직원은 없음

     

    식별자 분류

    ⎮ 대표성의 여부 

    • 주식별자
      - 엔티티 내에서 각 어커런스를 구분 가능한 구분자
      - 타 엔티티와 참조 관계를 연결
    • 보조식별자
      - 엔티티 내에서 각 어커런스를 구분 가능한 구분자
      - But, 대표성이 없어 참조 관계 연결 불가

     

    ⎮ 스스로 생성 여부 

    • 내부식별자 : 엔티티 내부에서 스스로 만들어지는 식별자
    • 외부식별자 : 타 엔티티와의 관계를 통해 타 엔티티로부터 받아오는 식별자

     

    ⎮ 속성의 수 

    • 단일 식별자 : 하나의 속성으로 구성된 식별자
    • 복합 식별자 : 둘 이상의 속성으로 구성된 식별자

     

    ⎮ 대체 여부 

    • 본질 식별자
      - 업무에 의해 만들어지는 식별자
      - 현실 세계에서 이미 고유하게 사용되고 있는 속성
      e.g. 주민번호, 학번
    • 인조 식별자
      - 업무상 존재하는 값이 아닌 원조 식별자가 복잡해서 또는 관리 목적으로 새롭게 인위적으로 생성한 값
      e.g. 주문번호(사번+주문일자+순번)

     

    식별자 표기법

    • 기본키 : 학번(PK), 사원번호(PK)
    • 외래키 : 부서번호(FK), 고객ID(FK)
    • 보조키 : 주민등록번호(AK)
    • 복합키 : 주문ID(PK)+제품ID(PK)

     

    주식별자 도출 기준

    | 유일성, 안정성, 최소성, 대체가능성

    1.  해당 업무에서 자주 이용되는 속성을 주식별자로 지정 | 유일성
      : 업무에서 자주 사용되는 속성은 해당 엔티티의 주요한 속성으로, 고유성을 유지하고 안정적인 값일 가능성이 높음
      e.g. 사원 Entity: 사원번호, 고객 Entity: 고객번호
    2. 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함 | 안정성
      : 이름이나 내역 같은 속성은 변경 가능성이 높아 안정성을 보장하기 어려움
      e.g. 고객이름, 제품설명

    3. 속성의 수가 많아지지 않도록 함 | 최소성
      : 최소한의 속성으로 구성하여 단순하고 효율적으로 설계
      주식별자로 선정된 속성이 많아지면, 자식 및 손자 엔티티에 상속될 때 조인 성능 저하
      e.g. 학년, 반 → [학번]  관할부서, 접수일자, 일련번호 → [접수번호]

     

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

    구분 식별자 관계 비식별자 관계
    핵심 정의 자식엔터티가 부모엔터티의 주식별자를 자신의 주식별자 일부로 포함하여 구성하는 단계 자식엔터티가 부모엔터티의 주식별자를 외래키(FK)로만 참조하며, 자신의 주식별자(PK)에는 포함하지 않는 관계
    관계 형태 엔터티간의 강한 연결관계 표현 엔터티간의 약한 연결관계 표현
    종속성 자식이 부모에 종속적 자식이 부모에 독립적
    생명주기 부모 엔터티 인스턴스가 소멸하면 자식 엔터티 인스턴스도 같이 소멸
    → 생명주기가 같이 얽혀있음
    자식엔터티의 주식별자를 부코엔터티와 별도로 생성하거나, 부모엔터티 인스턴스에 참조값이 없어도 자식 엔터티 인스턴스가 생성될 수 있음
    → 독립된 생명주기
    ERD 표기 실선 점선
    예시 주문 - 주문항목
    [주문항목]은 [주문]에 종속적이므로
    [주문 ID]를 포함하여 [주문항목ID]를 구성하게 됨.
    [주문]이 삭제되면 관련된 [주문항목]도 삭제되는 것이 자연스러움
    고객 - 주문
    [주문]엔터티는 [고객]엔터티의 [고객ID]를 외래키로 참조하지만,
    자체적으로 [주문ID]라는 주식별자를 가지고 있음.
    [고객]이 삭제되어도 해당[주문]은 남아있을 수 있음.

     

     

     

     

    댓글

Designed by Tistory.