개발일기

데이터 모델링의 이해 - 식별자 본문

SQLD 자격증 공부하기/식별자

데이터 모델링의 이해 - 식별자

황대성 2025. 2. 28. 04:35

식별자

-하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 나타냄

- 하나의 유일한 식별자가 존재해야 함

- 식별자는 논리 모델링에서 사용하는 용어, 물리 모델링에서는 키(key)라고 표현

   ex) 학생 엔터티의 주식별자는 학생번호 속성 => 학생 테이블의 기본키는 학생번호 컬럼

                                 (논리 모델링)                                (물리 모델링)


주식별자 특징

1. 유일성 : 주식별자에 의해 모든 인스턴스를 유일하게 구분함

   ex) 학생 엔터티에서 이름 속성은 동명이인이 발생할 수 있으므로 모든 인스턴스를 완벽하게 구분할 수 없으므로

         학생번호와 같은 유일한 식별자를 주식별자로 사용

2. 최소성 : 주식별자를 구성하는 속성은 유일성을 만족하는 최소한의 속성으로 구성

   ex) 학생 엔터티의 주식별자는 학생번호만으로 충분한데, 학생번호 + 이름으로 구성할 필요 없음

3. 불변성 : 주식별자가 한번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함

                  (항상 고유값으로 존재해야 함)

   ex) 학생 엔터티에 주식별자인 학생번호가 때에 따라 변경되서는 안됨

4. 존재성 : 주식별자가 지정되면 반드시 값이 존재해야 하며 NULL은 허용 안 됨


식별자 분류

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

주식별자 보조식별자
1. 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자
2. 엔터티 내에서 각 인스턴스를 유일하게 구분할 수 있는 식별자
3. 타 엔터티와 참조관계를 연결할 수 있는 식별자
1. 엔터티 에서 각 인스턴스를 구분할 수 있는 구분자지만, 대표성을 가지지 못해 참조 관계연결을 할 수 없는 식별자
2. 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자

 

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

내부식별자 외부식별자
1. 다른 엔터티 참조 없이 엔터티 내부에서 스스로 생성되는 식별자 1. 다른 엔터티와 관계로 인하여 만들어지는 식별자(외래키)

 

3) 속성 수에 따른 식별자 종류

단일식별자 복합식별자
1. 하나의 속성으로 구성 1. 2개 이상의 속성으로 구성

 

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

본질식별자(원조식별자) 인조식별자
1. 비즈니스 프로세스에서 만들어지는 식별자 1. 인위적으로 만들어지는 식별자
2. 자동 증가하는 일련번호 같은 형태

주식별자 도출기준

1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.

   - 같은 식별자 조건을 만족하더라도 업무적으로 더 많이 사용되는 속성을 주식별자로 지정

     ex) 학생번호와 주민번호 중에 학생번호가 주식별자, 주민번호는 보조식별자

 

2) 명칭이나 내역등과 같은 이름은 피함

   - 이름 자체를 주식별자로 사용하는 행위를 피함

     ex) 부서명 보다는 부서코드를 부여하여 부서코드를 주식별자로 사용

 

3) 속성의 수를 최대한 적게 구성

   - 주식별자를 너무 많은 속성으로 구성 시, 조인으로 인한 성능저하 발생 우려

   - 일반적으로 7~8 개 이상의 주식별자 구성은 새로운 인조식별자를 생성하여 모델을 단순화 시키는 것이 좋음

     ex) 주문 엔터티에 대해 주문일자 + 주문상품코드 + 고객번호 + .... 등으로 구성 => 주문번호 속성 추가!


관계간 엔터티 구분

1) 강한 개체

   - 독립적으로 존재할 수 있는 엔터티

     ex) 고객과 계좌 엔터티 중, 고객은 독립적으로 존재할 수 있음

 

2) 약한 개체

   - 독립적으로 존재할 수 없는 엔터티

     ex) 고객과 계좌 엔터티 중, 계좌는 독립적으로 존재할 수 없음(고객에 의해 파생되는 엔터티)


식별 관계와 비식별 관계

1) 식별관계(Identification Relationship)

   - 하나의 엔터티의 기본키를 다른 엔터티가 기본키의 하나로 공유하는 관계

   - 식별관계는 ERD에서 실선으로 표시

     ex) 사원과 교육이력 엔터티에서 양쪽 모두 기본키 중 일부가 사원번호임

2) 비식별관계(Non-identification Relationship)

   - 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 속성으로 관계를 가지는것

   - 비식별관계는 ERD에서 점선으로 표시

     ex) 부서와 사원의 관계에서 부서의 부서번호(기본키)를 사원 엔터티에서는 일반키로 가짐

            (사원에서는 사원번호가 기본키)


Key의 종류

- 논리 모델링에서의 식별자가 물리 모델링에서는 Key가 되는데 이를 Key의 특징에 따라 다음과 같이 분류

 

1. 기본키(Primary Key)

- 엔터티를 대표할 수 있는 키

2. 후보키(Candidate Key)

- 유일성(유니크한 특성)과 최소성(최소한의 컬럼으로 유일성을 만족하는 특징)을 만족하는 키

- 결국 후보키들 중 하나가 기본키가 되고, 나머지를 대체키라고 부름

3. 슈퍼키(Super Key)

- 유일성은 만족하지만 최소성은 만족하지 않는 키

   ex) 학생 테이블에서 학번으로만 PK를 구성해도 되는데, (학번 + 이름)으로 구성한다면 이는 슈퍼키임

4. 대체키 (Alternate key)

- 여러 후보키 중 기본키가 아닌 키

5. 외래키 (Foreign Key)

- 다른 테이블의 기본키를 참조하는 키(다른 테이블의 기본키에 존재하는 값만 입력될 수 있는 키)

- 참조 테이블은 하나 또는 여러 개 가능


출처

홍쌤의 데이터랩

 

홍쌤의 데이터랩

홍은혜 강사 전) 삼성SDS 빅데이터 엔지니어 출신 현) 빅데이터 / 데이터베이스 분야 전문강사(KDT, 선도기업, 기업강의 등) 이메일 : ehhhh0407@gmail.com 홈페이지 : www.hdatalab.co.kr

www.youtube.com