SQLD

관계(Relationship) & 식별자(Identifiers)

Jeongmin Lee 2020. 1. 2. 15:05

관계(Relationship)


관계

인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태


페어링(Paring)

엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것


관계의 표기법

  • 관계명 : 관계의 이름
  • 관계차수 : 1:1, 1:M, M:N
  • 관계선택사양 : 필수관계, 선택관계





식별자(Identifiers)


식별자

엔티티내에서 인스턴스들을 구분할 수 있는 구분자


식별자의 특징

  • 유일성 : 주식별자에 의해 엔티티내에 모든 인스턴스들이 유일하게 구분
  • 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
  • 불변성 : 지정된 주식별자의 값은 자주 변하지 않는 것
  • 존재성 : 주식별자가 지정이 되면 반드시 값이 들어와야함
식별자의 분류
  • 대표성 여부
    • 주식별자 : 엔티티 내에서 각 어커런스를 구분할 수 있는 구분자, 타 엔티티와 참조관계를 연결할 수 있음
    • 보조식별자 : 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결 불가
  • 스스로 생성 여부
    • 내부식별자 : 스스로 생성되는 식별자
    • 외부식별자 : 타 엔티티로부터 받아오는 식별자
  • 단일속성여부
    • 단일식별자 : 하나의 속성으로 구성
    • 복합식별자 : 2개 이상의 속성으로 구성
  • 대체여부
    • 본질식별자 : 업무에 의해 만들어지는 식별자
    • 인조식별자 : 인위적으로 만든 식별자

주식별자 도출기준
  • 해당 업무에서 자주 이용되는 속성
  • 명칭, 내역 등과 같이 이름으로 기술되는 것들은 X 
  • 복합으로 주식별자로 구성할 경우 너무 많은 속성 X

식별자 관계
  • 주식별자 : 자식의 주식별자로 부모의 주식별자 상속
    • 부모로부터 받은 식별자를 자식엔티티의 주식별자로 이용하는 경우
    • 강한 연결관계 표현, 실설 표기
  • 비식별자 : 부모 속성을 자식의 일반 속성으로 사용
    • 부모 없는 자식이 생성될 수 있는 경우
    • 부모와 자식의 생명주기가 다른 경우
    • 여러개의 엔티티가 하나의 엔티티로 통합되어 표현되었는데 각각의 엔티티가 별도의 관계를 가진 경우
    • 자식엔티티에 별로의 주식별자를 생성하는 것이 더 유리한 경우
    • SQL 문장이 길어져 복잡성 증가되는 것 방지
    • 약한 연결관계 표현, 점선 표기


반응형