본문 바로가기
데이터베이스

DB 정규화란?

by 정구지개발자 2024. 1. 11.
728x90

정규화란?

이상 현상을 제거하기 위해서 데이터베이스를 올바르게 설계해 나가는 과정

 

정규화 종류

제1정규형

테이블의 컬럼이 원자값을 갖도록 분해하는 것

 

제2정규형

제1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것

완전 함수 종속->기본키의 부분집합이 결정자가 되어서는 안된다는 것

 

제3정규형

제2정규화를 진행한 테이블에 대해 이행적 함수 종속을 없애도록 테이블을 분해하는 것

이행적 함수 종속-> A->B,B->C가 성립할 때 A->C가 성립되는 것을 의미한다.

 

BCNF정규형

제3정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것

 

정규화의 장단점

장점

DB 변경 시 이상현상문제 해결.

불필요한 쿼리 제거로 성능 향상

단점

릴레이션의 분해로 인해 릴레이션 간의 연산(JOIN)연산이 많아진다. ->응답시간이 느려진다.

.

역정규화

데이터 조회 성능 향상을 위해 데이터 중복을 허용하며 릴레이션을 합치는 과정

읽기 작업이 많이 필요한 DB의 전반적인 성능을 향상시키기 위해 사용한다.

 

이상현상

테이블을 설계할 떄 데이터를 삽입,삭제,수정할 시 생기는 논리적 오류

이상현상 종류

삽입이상 

->자료를 삽입할 떄 특정 속성에 해당하는 값이 없어 NULL을 입력해야되는 현상

갱신이상

->중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상

삭제이상

->어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되어버리는 현상

 

참고 블로그) https://mangkyu.tistory.com/110

728x90

'데이터베이스' 카테고리의 다른 글

w3school sql연습사이트  (0) 2024.02.09
키의 종류와 기능  (0) 2024.01.18
데이터베이스의 무결성이란?  (0) 2024.01.17
DML, DDL, DCL이란?  (2) 2024.01.11
index란 무엇인가?  (0) 2023.12.27

댓글