함수적 종속성 : 하나의 테이블에서 한 컬럼의 값(X)가 다른 컬럼 의 값(Y)을 결정하는 관계
<정규화 전>
1차 정규화 (1NF)
: 하나의 셀에 값이 1개만 있어야한다 ( 하나의 칸에는 하나의 값만 있어야한다.) → 여러개를 썼다 한들 하나씩만
: 도메인은 원자값이어야한다
2차 정규화 (2NF)
: 1차를 만족하고 모든 컬럼이 서로 관계가 있고 부분함수종속이 되어야한다.
: 활동 상태를 파악하지 못하는 단점이 있어 나눈 두 테이블관계를 정의하는 테이블이 필요
:1NF를 만족하고 부분함수 종속을 제거해야한다
3차 정규화 (3NF)
: 2차 정규화의 조건을 만족하면서 이행적 함수 종속 제거를 제거해야 한다.
: 하나의 컬럼이 다른 컬럼을 대표할 수 없다.
: 1,2NF를 만족하고 이행 함수 종속을 제거해야한다.
※ 정규화를 너무 많이 하면 테이블이 많이 쪼개져서 쿼리문을 작성하는데 더 힘들어지고 오히려 조회 시간이 더 길어질 수 있다.
WHERE은 개별 행에 조건이 적용
HAVING은 GROUP BY가 완료된 다음에 적용
<구문 실행 순서>
FROM → WHERE → GROUP BY → HAVING → ORDER BY