Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 셀프넘버
- 싸피셜
- 싸피
- 알고리즘
- 싸피10기
- SSAFY
- PWA
- SSAFYcial
- vitepwa
- 플로이드워셜
- Django
- 14658
- pwa적용하기
- queryset
- 데코레이터
- sqld
- TypeScript
- react
- js
- QuerySetAPI
- VITE
- unionfind
- Javascript
- db
- SQL
- Python
- git
- 리액트
- 머신러닝종류
- 백준
Archives
- Today
- Total
Meme's IT
[SQLD] 식별자 본문
# 식별자
엔터티를 대표할 수 있는 속성을 의미한다
하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다.
# 식별자의 특징
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 |