1. Candidate Key (후보키)
: 하나의 로우를 특정 지을 수 있는 attribute들의 최소 집합
아래에는 review 테이블이 있습니다
| id | user_id | product_id | score | description |
| 1 | aa1 | 43 | 4 | 동생 선물로 줬는데.. |
| 2 | ab2 | 25 | 5 | 홈페이지 사진과 차이가.. |
| 3 | aa5 | 33 | 3 | 좋습니다! 다음에도.. |
| 4 | ac2 | 15 | 5 | 지금 입기에 딱 입니다.. |
user_id와 product_id를 알고 있으면 하나의 review 행을 특정 지을 수 있습니다
이때 user_id와 product_id 이 두개의 집합이 이 테이블의 candidate key가 되는 것이죠
그럼 id도 review 행을 특정 지을 수 있기 때문에 이 또한 candidate key라고 할 수 있죠
이렇게 한 테이블에는 여러개의 candidate key가 있을 수 있습니다!
2. prime attribute (주속성) vs non-prime attribute (비주속성)
하나 이상의 candidate key에 포함이 되는 컬럼을 Prime Attribute라고 합니다
위 테이블에서는 id, user_id, product_id가 되겠죠
그리고 그 외 candidate key에 포함되지 않는 컬럼은 Non-Prime Attribute라고 합니다
위 테이블에서는 score와 description이 이에 해당합니다
3. Primary Key (기본키)
: primary key는 여러 후보키 중에서 실제로 테이블의 대표 식별자로 선택된 key
단 하나만 존재할 수 있으며 다른 테이블에서 외래키(FK)로 가장 많이 참조 됩니다.
'데이터 분석 > 06. 데이터 모델링' 카테고리의 다른 글
| [데이터베이스 모델링] 정규화(2NF,3NF) (0) | 2025.11.14 |
|---|---|
| [데이터베이스 모델링] 함수 종속성과 이행성 (0) | 2025.11.14 |
| [데이터베이스 모델링] 정규화 (0) | 2025.11.14 |
| 카디널리티를 적용한 ERM 초안 수정 (0) | 2025.09.29 |
| 카디널리티 관계 유형 (0) | 2025.09.29 |
