Objectives

1NF(first normal form)을 넘어서 정규화를 하는 것의 목적

  1. 부적절한 데이터 삽입으로부터 관계의 집합들을 자유롭게 해주기 위해서(update and deletion)
  2. 새로운 데이터가 들어왔을때 restructing을 최소화하여 app의 life span을 늘려주기 위해
  3. 유저에게 더 정보가 될 수 있는 관계모델을 만들기 위해
  4. 쿼리 통계에 중립적인 관계의 집합을 만들기 위해.

정규화가 잘되면 잘못 변경하려고 할때나 다른 경우에 예외처리를 잘 해준다.

Update를 시도한다고 할 때

해결방안

ex)전공에 따른 학생수를 조사할때

WITH majors AS(
 SELECT major_1 as
major
FROM college
UNION ALL //이거 뭐야..
SELECT major_2 as major
FROM college
WHERE major_2 IS NOT
NULL
)
SELECT major, count(*)
FROM majors
GROUP BY major
ORDER BY count DESC;

Null값을 무시하고, major_1과 major_2를 같이 봄.