본문 바로가기

데이터베이스/SQLD 공부

[SQLD] 데이터 모델링 - 식별자

반응형
식별자란?  (Identifiers)

엔터티는 인스턴스들의 집합이다. 식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자이다.

 

 

식별자의 특징
  • 유일성 - 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 최소성 - 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
  • 불변성 - 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
  • 존재성 - 주식별자가 지정이 되면 반드시 값이 들어와야 한다.

 

식별자 분류 및 표기법
  • 대표성 여부 
    • 주식별자
    • 보조식별자
  • 스스로 생성여부
    • 내부식별자
    • 외부식별자자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key 역할을 한다.
  • 속성의 수
    • 단일식별자
    • 복합식별자 - 둘 이상의 속성으로 구성된 식별자
  • 대체 여부
    • 본질식별자
    • 인조식별자 - 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자

 

주식별자 도출기준
  • 자주 이용되는 속성을 주식별자로 지정
  • 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다. (integer가 속도가 훨씬 빠르므로)
  • 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
    • 주식별자로 선정하기 위한 속성이 복합으로 구성되어 주식별자가 될 수 있을 때 가능하면 주식별자 선정하기 위한 속성의 수가 많지 않도록 해야 한다.
    • 식별자의 속성의 개수가 많을 때(일반적으로 7~8개 이상)는 새로운 인조식별자를 생성하여 데이터 모델을 구성하는 것이 데이터 모델을 한층 더 단순하게 하고 애플리케이션을 개발할 때 조건절을 단순하게 할 수 있는 방법이 될 수 있다.

 

식별자관계와 비식별자관계에 따른 식별자
  • 외부식별자(Foreign Identifier)는 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와 의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key역할을 한다.
  •  식별자관계
    • 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
    • Null값이 오면 안되므로 반 드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우
  • 비식별자관계
    • 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하 는 경우
    • 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우
    • 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우

 

식별자 관계로만 설정할 경우의 이점과 문제점
  •  이점   : 부모 엔터티의 정보를 가지고 자식 테이블을 검색하는 경우가 많다면 식별자관계가 성능과 개발의 용이성 측면에서 좋다. 
  •  문제점   : 식별자 관계를 연결한 데이터 모델의 PK속성의 수는 데이터 모델의 흐름이 길어질수록 증가할 수 밖에 없는 구조를 가지게 된다.

 

  식별자관계 비식별자관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 주식별자 영향 자식 주식별자의 구성에 포함됨 자식 일반 속성에 포함됨
표기법 실선 표현 점선 표현

연결

고려사항

  • 반드시 부모엔터티 종속
  • 자식 주식별자구성에 부모 주식별자 포함 필요
  • 상속받은 주식별자속성을 타 엔터티 에 이전 필요
  • 약한 종속관계
  • 자식 주식별자구성을 독립적으로 구성
  • 자식 주식별자구성에 부모 주식별자 부분 필요
  • 상속받은 주식별자속성을 타 엔터티에 차단 필요
  • 부모쪽의 관계참여가 선택관계

 

 

 

참조 - 한국데이터진흥원(2019). SQL 전문가 가이드 2013 Edition. 서울: 한국데이터진흥원.  

반응형