갱신이상(Update anomalies)로부터 자유로운 데이터베이스를 만드는 과정
-> 데이터베이스 속 갱신이상과 함수 종속성을 없애기 위해 정규화를 진행
RDB에서 데이터 중복으로 인해 발생하는 문제
함수종속성(Functionally dependent)란 하나의 컬럼이 다른 컬럼을 결정하는 것을 의미
ex)
-> 컬럼 B가 컬럼 A에 함수 종속적(Functionally dependent)이다.
== 컬럼 A가 컬럼 B를 함수적으로 결정(Functionally determines)한다.
Repeating group : 한개의 칸 안에 여러 엔트리가 있는 것을 제거
-> 한 셀 안에 데이터가 1개만 있는 것을 권고
tags와 같이 개수가 정해지지 않은 경우 ","를 구분점으로 여러 값을 저장한 뒤 코드에서 split으로 쪼개어 사용하는 경우도 있음
함수 종속성을 없애는 과정
e.g. 주문 번호 -> 주문일자를 결정 (주문일자는 주문번호에 종속적)
제품 번호 -> 제품 설명을 결정
=> 주문번호와 제품번호는 같은 테이블에 존재하면 안됨
이행 함수 종속 제거
이행 함수 종속
A 컬럼이 B 를 결정하고, B 컬럼이 C 컬럼을 결정하면
A 컬럼은 C 컬럼을 결정한다 (=이행 함수 종속)
e.g. 학번 -> 학부 결정, 학부 -> 등록금 결정
학번, 학부 테이블, 학부 등록금 테이블 2개로 나누는 과정