Meme's IT

[SQLD] 식별자 본문

공부/SQLD

[SQLD] 식별자

Memez 2023. 10. 17. 17:49

# 식별자

엔터티를 대표할 수 있는 속성을 의미한다

하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다.

 

 

# 식별자의 특징

1. 유일성

모든 인스턴스들이 주식별자로 유일하게 구분되어야 한다.

예를 들어, 이름은 동명이인이 있을 수 있으므로, 식별자로 사원번호를 부여해준다.

 

2.  최소성

주식별자를 구성하는 속성은 최소의 수가 되어야 한다.

사원번호로도 충분하므로 그 외의 식별자는 필요없음

 

3. 불변성

주식별자의 값은 자주 변하지 않는 것이어야 한다.

사원번호는 변경되면 안된다.

 

4. 존재성

주식별자가 지정되면 반드시 값이 들어와야 한다.

사원번확 없는 직원은 있을 수 없다.

 

 

# 식별자의 종류

1. 대표성 여부에 따른 분류

  • 주식별자: 대표성을 만족하는 식별자 (ex. 사원번호)
  • 보조 식별자: 유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음
더보기

(참고) DB 키의 종류

 

  • 기본키(PK, Primary Key): 엔터티를 대표하는 키, 후보키 중 선정됨
  • 후보키: 유일성과 최소성을 만족하는 키
  • 슈퍼키: 유일성만 만족하는 키
  • 대체키: 기본키를 제외한 나머지 후보키
  • 외래키(FK, Foreign Key): 여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨

 

2. 생성 여부에 따른 분류

  • 내부 식별자: 자연스럽게 존재하는 식별자(≒ 본질식별자)
  • 외부 식별자: 다른 엔터티와의 관계를 통해 생성되는 식별자

3. 대체 여부에 따른 분류

  • 본질 식별자: 대체될 수 없는 식별자
  • 인조 식별자: 인위적으로 만들어지는 대체가능한 식별자 (순서번호를 사용하여 생성된 생성자)
    • 후보 식별자 중 주식별자로 선정할 것이 없거나,
    • 주식별자가 너무 많은 칼럼으로 구성되어 있을 때 사용

4. 속성 수에 따른 분류: 단일 / 복합 식별자

 

 

 

# 주식별자 도출 기준

  • 업무에서 자주 사용되는 속성
  • 명칭, 내역 같이 이름으로 기술되는 것은 지정하지 않는다
  • 복합 식별자 지양

 

 

# 비식별자?

비식별자는 약한 연결관계이고, 부모엔터티와 자식엔터티 간의 상호작용이 의무가 아닌 선택사항

더보기

Keyword = 약한 연결관계, 독립적인 PK구조, 복잡성이 증가되는 것을 방지

 

'공부 > SQLD' 카테고리의 다른 글

[SQLD] ★정규화★와 성능  (0) 2023.10.18
[SQLD] 성능 데이터 모델링  (0) 2023.10.18
[SQLD] 관계 (Relationship)  (0) 2023.10.17
[SQLD] 속성(Attributes)  (0) 2023.10.16
[SQLD] 엔터티 (Entity)  (0) 2023.10.16