SQL (식별자)


식별자
  • 각각의 인스턴스를 구분 가능하게 만들어주는 대표 속성
  • 주 식별자는 PK -> 여러개 존재 가능
    • 유일성 : 해당 속성이 인스턴스를 유일하게 식별할 수 있는 성질을 가졌는지
    • 최소성 : 최소한의 속성들로만 유일성을 보장하게 하는지
    • 불변성 : 속성값이 변하지 않아야 함
    • 존재성 : 속성값은 NULL이 될 수 없음


식별자의 특성과 분류
  • 대표성 여부
    • 주 식별자(PK) -> # 으로 표현
      • 다른 엔티티와 연결 가능
      • 유일성, 최소성, 불변성, 존재성을 모두 만족하는 식별자
      • PK는 여러 속성이 존재할 수 있으나 나머지 일반 속성들이 PK속성들에 대해
        함수적 종속성을 띄어야함
        • 주 식별자(PK) 도출 기준
          • 해당 업무에서 자주 이용되는 속성
          • 명칭, 내역 등의 이름은 피함
          • 속성 수를 최대한 적게 구성
          • 자주 변하지 않는 값
    • 보조 식별자 -> 다른 엔티티와 연결 X
      • 인스턴스 식별은 가능하나 엔티티를 대표하는 식별자는 아님
      • 다른 엔티티와의 참조관계로 연결되지 않음

  • 스스로 생성 되었는가에 대한 여부
    • 내부 식별자
      • 다른 엔티티 참조 없이 해당 엔티티 내부에서 스스로 생성된 식별자
    • 외부 식별자
      • 다른 엔티티에서 온 식별자
        • 다른 엔티티와 연결고리 역할

  • 단일 속성인지에 대한 여부
    • 단일 식별자
      • 주 식별자가 1개의 속성으로 구성
    • 복합 식별자
      • 주 식별자가 2개 이상의 속성으로 구성

  • 대체되었는지 기존에 있는지에 대한 분류
    • 원조(본질) 식별자 : 업무에 의해 만들어지는 식별자
      • 가공되지 않은 원래 식별자
    • 인조(대리) 식별자 : 인위적으로 만들어지는 식별자
      • 주 식별자가 복잡할 때 이를 통합함


식별자 관계 VS 비식별자 관계
  • 식별자 관계
    • 트랜잭션에 의한 관계
      • 강한 연결 관계
      • 실선
      • 부모-자식 관계가 항시 유지
      • SQL문의 JOIN을 최소화 해줌
  • 비식별자 관계
    • 부모 엔티티의 식별자 속성이 자식 엔티티의 일반 속성이 되는 관계
      • 약한 연결 관계
      • 점선
      • 부모-자식 관계가 유지 안 될 수 있음