식별자(Identifiers)

한준수·2023년 5월 26일
0

SQLD

목록 보기
5/31

식별자의 개념

엔터티는 인스턴스들의 집합이다.
그렇다면 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 있어야 하는데 이 구분자를 식별자라고 한다.

엔터티 내에서 인스턴스를 구분하는 구분자 식별자는 논리적, Key는 물리적 데이터 모델링에서 사용된다.

식별자의 특징

유일성, 최소성 , 불변성, 존재성

대체식별자의 특징은 주식별자의 특징과 같지만 외부식별자는 별도의 특징을 가지고 있다. 외부식별자의 경우 주식별자 특징과 일치하지 않으며 참조무결성 제약조건(Referential Integrity)에 따른 특징을 가지고 있다.

식별자 분류

대표성 여부 : 주식별자, 보조식별자

  • 주 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
  • 보조 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자나 대표성을 가지지 못해 참조관계 연결을 못함

스스로 생성여부 :내부식별자, 외부식별자

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

속성의 수 : 단일식별자, 복합식별자

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

대체 여부 : 본질식별자, 인조식별자

  • 본질 : 업무에 의해 만들어지는 식별자
  • 인조 : 인위적으로 만든 식별자

식별자 표기법

주식별자 도출기준

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

식별자 관계

부모로부터 상속받은 것을 어떻게 사용하는가의 차이로 주식별자, 비식별자로 분류할 수 있다.

식별자 관계

  • 자신의 주식별자로 부모의 주식별자를 상속받는다.

    식별자 관계로만 설정시 주식별자 증가로 오류유발.

  • 강한 연결관계 표현

  • 실선으로 표현

비식별자 관계

  • 부모 속성을 자식의 일반 속성으로 사용한다.

    부모와 자식에서 공통으로 중요하게 이용되는 기준 속성이 필요한 경우 자식 엔터티로 상속이 되지 않는 문제가 발생하여 자식엔터티에서 데이터를 처리할 때 쓸데없이 부모엔터티까지 찾아가야하는 문제가 발생한다.
    ➡ 비식별자 관계로만 설정 시 부모 엔터티와 조인하여 성능이 저하됨.

  • 약한 연결관계 표현

  • 점선으로 표현

비식별자 관계 생성 이유

  1. 부모 없는 자식이 생성될 수 있는 경우
  2. 부모와 자식의 생명주기가 다른 경우(별도로 소멸)
  3. 여러개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가진경우
  4. 자식엔터티에 별도의 주식별자를 생성하는 것이 더 유리한 경우
  5. SQL문장이 길어져 복잡성이 증가되는 것 방지

profile
빅데이터과 1학년

0개의 댓글