4. 정규화와 반정규화

2021. 2. 25. 23:03Topcit 정리/기술 영역 - 데이터베이스 구축과 운영

반응형

 

정규화와 이상현상

 

삽입 이상 : 어떤 정보를 삽입할 때 원하지 않는 정보까지 삽입해야만 하는 현상

삭제 이상 : 정보를 삭제할때 필요한 정보까지 삭제되어야 하는 현상

수정 이상 : 동일한 내용을 여러 건의 데이터에서 반복 수정해야하는 현상

 

 

정규화를 적용한 데이터베이스 설계

 

1차 정규화 : 원자값을 가지도록 도메인을 분해하여 로우와 컬럼을 하나씩 가지도록 만든다.

2차 정규화 : 기본키중에 특정 컬럼에만 종속된 컬럼(부분적 종속)을 없앤다.

3차 정규화 : 기본키 이외의 다른 컬럼이 그외 다른 컬럼을 결정할 수 없도록 이행적 함수 종속을 없앤다.

BCNF 정규화 : 3차 정규화 이후 일반 컬럼이 후보키를 결정하는 경우를 없앤다.

 

4차 정규화 : 한 릴레이션에 둘 이상의 다중 값 종속을 제거하는 정규화이다.

5차 정규화 : 릴레이션에 존재하는 모든 조인 종속이 후보키를 통해서만 만족되게 만드는것.

 

반정규화

정규화된 엔터티, 속성, 관계에 대해 시스템 성능 향상 및 단순화를 위해 모델을 통합하는 프로세스

반정규화 대상 조사 -> 다른 방법 유도 검토 -> 반정규화 적용

 

반정규화 기법

테이블 반정규화 : 테이블 병합, 테이블 분할, 테이블 추가

칼럼 반정규화 : 중복칼럼 추가, 파생칼럼 추가, 이력 테이블 칼럼 추가, PK에 의한 칼럼 추가

관계 반정규화 : 중복관계 추가

 

 

성능 개선을 위한 고려사항

 

1. 처리능력 : 단위 시간당 처리되는 작업량

2. 처리시간 : 단위 작업을 수행하는데 걸리는 시간

3. 응답시간 : 키를 누른 순간부터 시스템이 응답할 때까지 소요되는 시간

4. 로드시간 : 데이터베이스에 데이터를 적재하는 데에 소요되는 시간

 

 

성능 개선

 

엔티티 통합의 장점 : 정보 조회 용이, ERD 간결화

엔터티 통합의 단점 : 확장성 저하, 흐름 이해가 어려움

 

 

기본키 조정

비즈니스키가 복잡한 경우 시스템 키로 대체

비즈니스키 : 주빈번호, 학번등 비즈니스적 의미를 갖는 키

시스템키 : 인스턴스가 발생한 순서대로 시스템이 부여한 키

 

데이터 모델 구조 변경

정규화, 반정규화를 통한 성능 개선

데이터 모델의 단순화

 

인덱스와 관련된 성능 개선

기본키 구성 속성의 효율적 순서 지정

외래키 컬럼에 대한 인덱스 생성

함수 기반 인덱스 사용

채번 방법의 적절한 선정 : 채번 테이블 이용, 테이블 최대값 사용, 시퀀스 객체 사용

 

 

반응형