SQLD - 식별 관계(Identification Relationship)

헨도·2023년 6월 20일
0

SQLD

목록 보기
5/28
post-thumbnail

식별 관계와 비식별 관계

식별 관계

  • 고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체(Strong Entity)이다.
  • 강한 개체는 어떤 다른 엔터티에게 의존하지 않고 독립적으로 존재한다.
  • 강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유한다.
  • 강한 개체는 식별 관계로 표현된다.
  • 강한 개체의 기본키 값이 변경되면 식별 관계(기본키를 공유받은)에 있는 엔터티의 값도 변경된다.
  • 식별 관계는 실선으로 표시한다.

비식별 관계

  • 비식별 관계는 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것이다.
  • 비식별 관계는 점선으로 표현한다.

강한 개체(Strong Entity)와 약한 개체(Weak Entity)

  • 강한 개체는 누구에게도 지배되지 않는 독립적인 개체(Entity)이다.
  • 약한 개체는 개체의 존재가 다른 개체의 존재에 달려 있는 개체이다.

엔터티 식별자

"식별자"라는 것은 엔터티를 대표할 수 있는 유일성을 만족하는 속성이다.
일반적으로 회원ID, 계좌번호, 주민등록번호, 외국인등록번호, 여권번호 등이 있다.

주식별자(기본키, Primary Key)

  • 최소성 : 주식별자는 최소성을 만족하는 키
  • 대표성 : 주식별자는 엔터티를 대표할 수 있어야 한다.
  • 유일성 : 주식별자는 엔터티의 인스턴스를 유일하게 식별한다.
  • 불변성 : 주식별자는 자주 변경되지 않아야 한다.

키의 종류

데이터베이스 키설명
기본 키(Primary Key)후보키 중에서 엔터티를 대표할 수 있는 키이다.
후보 키(Candidate Key)후보키는 유일성과 최소성을 만족하는 키이다.
슈퍼 키(Super Key)슈퍼키는 유일성은 만족하지만, 최소성을 만족하지 않는 키이다.
대체 키(Alternate Key)대체키는 여러 개의 후보키 중에서 기본키를 선정하고 남은 키이다.
외래 키(Foreign Key)하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해서 사용되는 키이다.
즉, 허용된 데이터 값만 데이터베이스에 저장하기 위해 사용된다.

식별자의 종류

"식별자"는 대표성, 생성 여부, 속성의 수, 대체 여부로 분류된다.

식별자의 대표성

  • 주식별자는 엔터티를 대표할 수 있는 식별자이다.
    예를 들어 회원ID는 고객 엔터티에 주식별자가 된다.

  • 대표성 여부에 따른 식별자의 종류

    종류설명
    주 식별자유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자이다.
    다른 엔터티와 참조 관계로 연결될 수 있다.
    보조 식별자유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자이다.

생성 여부

  • 생성 여부에 따른 식별자의 종류

    종류설명
    내부 식별자내부 식별자는 엔터티 내부에서 스스로 생성되는 식별자이다.
    ex) 부서코드, 주문번호, 종목코드 등
    외부 식별자다른 엔터티와의 관계로 인하여 만들어지는 식별자이다.
    ex) 계좌 엔터티에 회원ID

속성의 수

  • 속성의 수에 따른 식별자의 종류

    종류설명
    단일 식별자하나의 속성으로 구성된다.
    ex) 고객 엔터티에 회원ID
    복합 식별자두 개 이상의 속성으로 구성된다.

대체 여부

  • 대체 여부에 따른 식별자의 종류

    종류설명
    본질 식별자비즈니스 프로세스에서 만들어지는 식별자이다.
    인조 식별자인위적으로 만들어지는 식별자이다.

인조 식별자

  • 인조 식별자는 후보 식별자 중에서 주식별자로 선정할 것이 없거나 주식별자가 너무 많은 컬럼으로 되어 있는 경우에 사용한다.
  • 즉, 순서번호(Sequence Number)를 사용해서 식별자를 만드는 것이다.
profile
Junior Backend Developer

0개의 댓글