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. 비식별자 관계
- 정의: 부모의 주식별자가 자식 엔터티의 비식별자 속성으로 상속되는 관계.
- 부모 엔터티 없이 자식 엔터티의 생성이 가능.