속성 A의 value → 속성 B의 value를 결정하는 것
→ Key 개념의 일반화


이 2장의 사진을 봤을때 dept_name이 building과 budget을 결정하고 있다.
instructor와 department를 합친 첫번째 사진의 테이블은 dept_name만으로는 모든 속성의 값을 구별할 수 없다 = is not a candidate key
첫번째 사진처럼 부서마다 건물과 예산이 고정되어 있기 때문에, instructor의 record마다 부서에 의존하는 건물과 예산은 inst_dept테이블(첫번째 사진)에 반복적으로 저장될 수 밖에 없다.
→ 이는 테이블을 decompose(분해)할 필요가 있다. = Normalization 정규화
original 테이블을 여러개의 테이블로 나누는 것

하지만 테이블을 여러개로 나누고 다시 natural join하는 과정에서 원래 테이블의 size보다 늘어날 수 있다.
→ 중복, 불필요한 데이터가 발생할 수 있다. (원래 테이블을 정확하게 복원할 수 없다 = 손실,loss)
⇒ lossy decomposition
오리지널 테이블r을 R1, R2로 분해하고 natural join하면서 손실이 발생하는 것

오리지널 테이블r을 R1, R2로 분해하고 R1, R2에 대해 projection을 씌워준 후에 natural join했을 때
→ r과 같다면 lossless decomposition 무손실 분해