1. 함수 종속성이란?
: 테이블 안 attribute들 사이에서 생기는 관계입니다
이런 user 테이블이 있다고 합시다
| name | age | gender | |
| chaewon.kim@... | 김채원 | 19 | f |
| soojee.lee@... | 이수지 | 15 | f |
| yoo.hm93@... | 유하민 | 25 | m |
| chae.bg00@... | 채봉구 | 28 | m |
유저의 이메일을 알고 있으면 name,age,gender 값이 결정 된다고 볼 수 있습니다
이런 관계가 성립될 때 user 테이블에서 name, age, gender는 email에 함수 종속성이 있다고 할 수 있죠
반면 name, age, gender의 값을 안다 하더라도 나머지 값이 결정되지 않습니다
아래 테이블은 review에 대한 테이블입니다
여기서는 size와price가 product에 대한 함수 종속성이 있습니다.
| user | product | size | price | score |
| 김채원 | 장갑 | 90 | 27000 | 5 |
| 이수지 | 나시세트 | 95 | 23000 | 4 |
| 유하민 | 목걸이 | 110 | 35000 | 5 |
| 채봉구 | abc후드티 | 100 | 40000 | 2 |
또한 함수 종속성은 반드시 하나의 컬럼에만 있어야하는 것은 아닙니다
한 유저가 한 상품에 대한 평가 점수를 알기 위해서는 user와 product를 알아야 score를 알 수 있습니다
따라서 score는 user와 product의 쌍에 대한 함수 종속성이 있다고 할 수 있는거죠!
2. 이행성
: 함수 종속성의 속성
| user | product | score | brand | brand_country |
| 김채원 | 장갑 | 5 | SQLL | 미국 |
| 이수지 | 나시세트 | 4 | 구지 | 일본 |
| 유하민 | 목걸이 | 5 | BOB | 프랑스 |
| 채봉구 | abc후드티 | 3 | PATH | 한국 |
여기서 brand와 brand_country는 product에 의해서 결정되기 때문에
product에 대한 함수 종속성이 있습니다
하지만 attribute마다 보면 brand는 product에 의해서 결정되고 brand_country는 brand에 의해서 결정됩니다
이렇게 하나 이상의 attribute를 건너서 함수 종속성이 있는 경우에 함수 종속성이 넘어갔다
즉, 이행됐다고 해서 brand_country는 product에 대한 이행적 함수 종속성이 있다고 할 수 있습니다
'데이터 분석 > 06. 데이터 모델링' 카테고리의 다른 글
| [데이터베이스 모델링] 정규화(2NF,3NF) (0) | 2025.11.14 |
|---|---|
| [데이터베이스 모델링] Candidate Key (0) | 2025.11.14 |
| [데이터베이스 모델링] 정규화 (0) | 2025.11.14 |
| 카디널리티를 적용한 ERM 초안 수정 (0) | 2025.09.29 |
| 카디널리티 관계 유형 (0) | 2025.09.29 |