정보의 이상현상 (Anomaly)
테이블을 설계할 때 잘못 설계하여 데이터를 삽입,삭제,수정할 때 생기는 오류를 말한다.
이러한 이상 현상을 예방하고 효과적인 연산을 하기 위해 데이터 정규화를 합니다.
| 학번 | 이름 | 나이 | 성별 | 강의코드 | 강의명 | 전화번호 |
| 1011 | 이태호 | 23 | 남 | AC1 | 데이터베이스 개론 | 010-2627-8123 |
| 1012 | 강민정 | 20 | 여 | AC2 | 운영체제 | 010-4665-1941 |
| 1013 | 김현수 | 21 | 남 | AC3 | 자료구조 | 010-5223-4464 |
| 1013 | 김현수 | 21 | 남 | AC4 | 웹 프로그래밍 | 010-5223-4464 |
| 1014 | 이병철 | 26 | 남 | AC5 | 알고리즘 | 010-6305-2912 |
* 삽입 이상 (Insertion Anomaly)
강의를 아직 수강하지 않은 새로운 학생을 삽입할 경우 강의 코드와 강의명 속성에는 null값이 들어가야 한다
자료를 삽입할 때 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상
* 갱신 이상 (Modification ANomaly)
강의 코드가 "AC3"인 김현수의 전화번호를 수정할 경우, 3번째 데이터만 수정될 수있다. 그러면 3, 4번째는 같은 사용자임에도 불구하고 전화번호가 달라짐.
중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상
* 삭제 이상 (Deletion Anomaly)
강의코드가 "AC1"인 데이터베이스 개론 강의를 삭제하게 되면, 이태호 학생의 데이터까지 삭제될수 있다.
어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되어버리는 현상
정규화 (Normalization)
테이블 필드들의 인과관계를 파악하여, 논리적이고 효율적으로 테이블을 분해하는것
역정규화 하는 이유
정규화를 거치면 릴레이션 간의 연산(JOIN 연산)이 많아지는데, 이로인해 성능이 저하될 우려가 있다.
제1 정규화
테이블의 칼럼이 원자 값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것
추신수와 박세리가 여러개의 취미를 갖는것을 분해

제2 정규화
제1 정규형을 만족하고, 기본키의 부분집합이 다른 값을 결정하지 않도록 분해합니다.

제3 정규화
제2 정규형을 만족하고, 이행적 함수 종속을 없애도록 분해합니다.

'DB > RDB' 카테고리의 다른 글
| 키, 인덱스, 실행계획, 테이블의 관계 (0) | 2022.11.03 |
|---|---|
| DB 구성 과정 (1) | 2022.11.03 |
| Query 01 (0) | 2022.08.24 |
| MySQL Table (0) | 2022.08.19 |
| DELETE , TRUNCATE (0) | 2022.05.18 |