2025-08-11 03:54

Tags:SQL

식별자

  • 하나의 엔터티에 구성되어 있는 여러 속성 중 엔터티를 대표할 수 있는 속성
  • 각각의 인스턴스를 구분 가능하게 해주는 대표 속성
  • 하나의 엔터티는 반드시 하나의 유일한 식별자 존제
  • 키 는 DB 테이블 접근 위한 매개체로 물리적 데이터 모델링 단계에서 사용

특징

  • 유일성: 주식별자에 의해 엔터티의 모든 인스턴스 유일하게 구분
  • 최소성: 유일성을 만족하는 최소의 수
  • 불변성: 한번 특정 엔터티에 지정되면 식별자의 값 변하면 안됨
  • 존재성: Null 불가능

식별자의 분류

분류식별자설명
대표 여부주식별자 (Primary Key)엔터티 내 각 어커런스 구분 가능, 타 엔터티와 참조관계 연결 가능
보조식별자 (Candidate Key)엔터티 내에서 각 어커런스 구분 가능, 대표성을 갖지 못해 참조관계 연결 불가능
스스로 생성 여부내부식별자엔터티 내부에서 스스로 만들어지는 식별자
외부식별자 (Foreign Key)관계를 통해 유입되는 타 엔터티의 식별자
속성 수단일식별자하나의 속성으로 구성된 식별자
복합식별자둘 이상의 속성으로 구성된 식별자
대체 여부본질식별자업무에 의해 만들어지는 식별자
인조식별자업무적으로 만들어지지는 않으나, 원조식별자가 복잡한 구성을 가져 인위적으로 만들어진 식별자

본질 식별자 VS 인조 식별자

  • 원조(본질) 식별자: 업무에 의해 만들어지는 식별자(꼭 필요한 식별자)
    • 학번, 주민등록번호, 사번
  • 인조(대리) 식별자: 업무에 의해 존재하지는 않으나 원래의 식별자가 너무 복잡하게 구성되어 있어 인위적으로 만든 식별자
    • 원조 식별자가 pk 2개 이상인 복합 식별자일때 속성 하나의 속성으로 묶어 사용
    • 편의성을 위해 인위적으로 생성
  • 인조 식별자 단점
    • 중복 데이터 발생 가능성
    • 불필요한 인덱스 생성
    • 별도 인덱스 생성
  • 장점: 추가 연산 없이 시퀀스나 키 제약 조건 등 주식별자 생성 개발 편의성 상승

키의 종류

후보 키(Candidate Key)

  • 테이블에서 각 행을 유일하게 식별할 수 있는 속성들의 집합
  • 유일성과 최소성을 동시에 만족해야 함 기본 키(Primary Key)
  • 후보 키 중 엔터티를 대표하는 키로 선정된 키 슈퍼 키(Super Key)
  • 유일성은 만족하나 최소성은 만족하지 못함 대체 키(Alternative Key)
  • 후보 키 중 선별된 기본키를 제외하고 남은 키

식별자와 비식별자의 관계

1. 식별자 관계

  • 정의: 자식 테이블이 부모 테이블의 주식별자를 자신의 주식별자로 포함시키는 관계.
  • SQL 문의 조인 관계를 최소화해야 하는 경우 사용

2. 비식별자 관계

  • 정의: 부모의 주식별자가 자식 엔터티의 비식별자 속성으로 상속되는 관계.
  • 부모 엔터티 없이 자식 엔터티의 생성이 가능.