[DB] Identifier 정리

rockstar·2023년 7월 14일

DB

목록 보기
5/5

식별자

엔티티를 대표할 수 있는 유일성을 만족하는 속성이다. 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다.

특징

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

종류

대표성 여부에 따른 분류

  • 주식별자: 대표성을 만족하는 식별자
  • 보조 식별자: 유일성과 최소성만 만족하는 식별자(참조 관계 연결에 사용할 수 없음)

DB 키의 종류

  • 기본키: 후보키 중 선정되는 엔티티를 대표하는 키
  • 후보키: 유일성최소성을 만족하는 키
  • 슈퍼키: 유일성만 만족하는 키
  • 대체키: 기본키제외한 나머지 후보키
  • 외래키: 여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨 (허용된 데이터 값만 저장하기 위함)

*무결성(일관성, 정확성, 완전성)은 결함이 없음을 나타낸다고 보면 된다.

생성 여부에 따른 분류

  • 내부 식별자: 자연스럽게 존재하는 식별자
  • 외부 식별자: 다른 엔티티와의 관계를 통해 생성되는 식별자

속성 수에 따른 분류

  • 단일 식별자: 하나의 속성
  • 복합 식별자: 여러 속성

대체 여부에 따른 분류

  • 본질 식별자: 대체될 수 없는 식별자
  • 인조 식별자: 인위적으로 만들어지는 대체 가능한 식별자

*인조 식별자는 순서번호(Sequence Number)를 사용하여 생성된 식별자이다. 후보 식별자 중 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 칼럼으로 구성되어 있을 때 사용한다.

주식별자를 도출하는 기준

  1. 해당업무에서 자주 이용되는 속성을 주식별자로 지정하도록 한다.
  2. 명칭, 내역 등 이름으로 기술되는 것을 피해야 한다.
  3. 속성의 수가 많아지지 않도록 한다.

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

식별자관계와 비식별자 관계의 결정하는 건 외부식별자이며, 외래키가 해당 역할을 한다.

식별자 관계

자식 엔티티의 주식별자로 부모의 주식별자가 상속이 되는 경우에 Null값이 오면 안 되므로 반드시 부모 엔티티가 생성되어야 자기 자신의 엔티를 생성할 수 있다.

식별자관계로만 설정 시 문제점

주식별자 속성이 지속적으로 증가, 복잡성과 오류 가능성 유발

비식별자 관계

부모 엔티티의 속성을 자식엔티티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우

비식별자관계로만 설정 시 문제점

쓸데없이 부모엔티티까지 찾아가야 하는 경우가 발생한다

식별자관계와 비식별자관계 모델링


잘못된 정보는 지적해주시면 감사하겠습니다.

0개의 댓글