-
*정규화란?
RDBMS 설계에서 중복을 최소화하게 데이터를 구조화하는 것
자료 중복으로 이상 현상을 방지하기 위해 사용한다.
*이상현상
삽입 이상 : 원치않는 데이터도 삽입
삭제 이상 : 원치않는 데이터도 삭제
갱신 이상 : 데이터 일부만 갱신
*정규화의 종류
정규화는 1NF, 2NF, 3NF, BCNF, 4NF, 5NF가 있다.
3NF까지 완료되었다면 정규화가 되었다고 본다.
각 단계는 이전 단계를 기본적으로 모두 만족해야 한다.
*1NF
모든 항목에 값이 있어야 하며(NOT NULL), 중복열이 없어야 한다.
*2NF
개체의 속성이 한 식별자에 종속되어야 한다. (부분 함수 종속 제거)
즉, 복합키를 없애야 한다는 뜻이다.
*3NF
X로 인해 Y가 결정되고 Y로 인해 Z가 결정되는 경우 (이행 함수 종속 제거)
*역정규화
정규화를 거칠수록 논리적으로는 맞지만 지나치게 정규화를 하게 되면 성능을 저하시킨다.
성능을 위해 쪼개진 테이블을 다시 합치는 과정을 역정규화라고 한다.
'SQL' 카테고리의 다른 글
SQL - DATE TIME (날짜 표현) (0) 2022.12.10 SQL - AGGREGATE (집계 함수) (0) 2022.12.10 SQL - limit, offset (페이징) (0) 2022.12.10 SQL - auto_increment (자동 증가) (0) 2022.12.10 SQL - VIEW (0) 2022.12.10