-
정규화란
정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다.
중복된 정보로 인해 이상 현상이 발생하게 된다.
이러한 문제를 해결하기 위해 정규화 과정을 거치는 것이다.
중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다.
테이블을 분해하는 정규화 단계가 정의되어 있으며, 테이블이 어떻게 분해되는지에 따라 정규화 단계가 달라진다.
이상 현상(Anomaly)이란
이상 현상이란 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하며
이 중복으로 인해 테이블 조작 시 문제가 생기는 현상을 의미
학번 지도교수 학과 과목 번호 성적 123 P1 컴퓨터 C-60 A 123 P1 컴퓨터 C-92 A 210 P2 수학 C-60 B 300 P3 전기 C-73 C 400 P4 컴퓨터 C-79 A 1. 삽입 이상
원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점을 말한다.
• 강의를 수강하지 않은 학생을 추가할 때, 과목 번호와 성적에 null값이 들어가거나 불필요한 데이터를 추가해야 삽입할 수 있는 문제점이 발생한다. 아래와 같은 데이터를 삽입할 수 없다.
2. 삭제 이상
하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하지 않는 정보 손실이 발생하는 문제점을 말한다.
- 학번이 300인 학생이 과목 수강을 취소하면 C-73인 강의에 대한 정보도 모두 삭제된다
학번 지도교수 학과 과목 번호 성적 123 P1 컴퓨터 C-60 A 123 P1 컴퓨터 C-92 A 210 P2 수학 C-60 B 300 P3 전기 C-73 C 400 P4 컴퓨터 C-79 A 3. 갱신 이상
정확하지 않거나 일부의 튜플만 갱신되어 정보가 모호해지거나 일관성이 없어져 정확한 정보 파악이 되지 않는 문제점을 말한다.
제 1정규화(First Normal Form, 1NF)
테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미한다.
- 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다.
- 모든 attribute에 반복되는 그룹(repeating group)이 나타나지 않는다.
- 기본 키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다.
제 2정규화(Second Normal Form, 2NF)
제 2정규화를 수행 했을 경우 테이블의 모든 컬럼이 완전 함수적 종속을 만족한다. (부분 함수적 종속을 모두 제거되었다.) 이를 이해하기 위해서는 부분 함수적 종속과 완전 함수적 종속이라는 용어를 알아야 한다.
- 함수적 종속 : X의 값에 따라 Y값이 결정될 때 X -> Y로 표현하는데, 이를 Y는 X에 대해 함수적 종속 이라고 한다.X를 결정자이라고 하고, Y는 종속자라고 한다.
- 다른 말로 X가 바뀌었을 경우 Y가 바뀌어야만 한다는 것을 의미한다.
- 예를 들어 학번을 알면 이름을 알 수 있는데, 이 경우엔 학번이 X가 되고 이름이 Y가 된다.
- 함수적 종속에서 X의 값이 여러 요소일 경우,X1, X2 중 하나만 Y의 값을 결정할 때 이를 부분 함수적 종속 이라고 한다.
- 즉, {X1, X2} -> Y일 경우, X1와 X2가 Y의 값을 결정할 때 이를 완전 함수적 종속 이라고 한다.

'mysql' 카테고리의 다른 글
서브쿼리 (0) 2023.04.08 SELECT 구문과 조건절 (0) 2023.03.07 INSERT 구문과 제약 사항 (0) 2023.03.06 테이블 (0) 2023.03.06