[Oracle] 정규화
정규화
데이터베이스의 데이터들을 최대한 중복을 제거하여 이상 현상 ( Anomaly ) 을 방지하기 위한 기술입니다.
대부분 3차 정규화까지만 진행합니다.
이상현상은 세 가지가 있습니다.
갱신 이상 ( Modification Anomaly )
중복된 데이터 중 일부를 갱신할 때 의도치 않은 데이터가 갱신됨으로써 생기는 데이터의 불일치
삽입 이상 ( Insertion Anomaly )
새 데이터를 삽입할 때 의도치 않은 데이터가 삽입됨으로써 생기는 데이터의 불일치
삭제 이상 ( Deletion Anomaly )
데이터를 삭제할 때 의도치 않은 데이터까지 삭제됨으로써 생기는 데이터의 불일치
이러한 이상 현상이 발생하는 이유는 테이블이 정규화가 되어 있지 않기 때문입니다.
정규화를 진행하기 위해서는 각 컬럼간의 관련성을 파악해야 하고,
이 관련성을 "함수적 종속성"(Functional Dependency)이라고 합니다.
따라서 하나의 테이블에서는 하나의 함수적 종속성만 존재하도록 정규화를 합니다.
함수
X -> Y
*X가 Y에 의존합니다.
X : 결정자 -> X가 Y를 결정
Y : 종속자 -> Y가 X에 종속
1차 정규화(1NF)
하나의 컬럼에 값이 1개씩만 있어야 합니다.
하나의 컬럼에 값이 여러개가 있으면 검색이 힘듭니다.
데이터를 쪼개어 하나의 컬럼에는 하나의 값만 나오도록 합니다.
2차 정규화(2NF)
테이블의 모든 컬럼이 서로 관계가 있어야 합니다.
기본키 중에 특정 컬럼에만 종속된 컬럼이 존재할 경우 2차 정규형에 위배됩니다.
3차 정규화(3NF)
제 2정규형을 만족하는 상태에서 이행 함수 종속을 제거하는 정규화 과정을 말합니다.
이행 함수 종속이란 하나의 컬럼이 다른 컬럼을 결정하는것을 말합니다. ( A->B , B->C 일때 A->C)
*우편번호로 시, 구, 동을 알 수 있습니다.
*중복된 데이터가 생길 가능성이 있습니다.
3차 정규화 진행
정규화는 데이터베이스를 사용하는데 있어 필수불가결한 요소입니다.
'KoreaIt Academy > Oracle DBMS' 카테고리의 다른 글
[Oracle] 옵티마이저(OPTIMIZER) , 힌트(hint) (0) | 2021.08.09 |
---|---|
[Oracle] SQL문의 활용, 함수(집계함수, 그룹함수 등..) (0) | 2021.08.09 |
[Oracle] DCL(Data Control Language) , TCL(Transaction Control Language) (0) | 2021.08.07 |
[Oracle] DML(Data Manipulation Language) - 데이터 조작어 (0) | 2021.08.05 |
[Oracle] DDL(Data Definition Language) - 데이터 정의어, 자료형 (0) | 2021.08.05 |
댓글