본문 바로가기
DB/RDB

이상현상 , 정규화와 역정규화

by doriver 2022. 10. 26.

정보의 이상현상 (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