정규화 데이터베이스(normalized database)는
중복을 최소화하도록 설계된 데이터베이스를 말한다.
비정규화 데이터베이스(denormalized database)는
읽는 시간을 최적화하도록 설계된 데이터베이스를 말한다.
관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화하는 작업이다. 좀 더 구체적으로는 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정이라 할 수 있다.
데이터베이스 변경 시 이상 현상(Anomaly) 제거
저장 공간의 최소화 가능
효과적인 검색 알고리즘 생성 가능
데이터 삽입 시 릴레이션 재구성의 필요성 감소
데이터 구조의 안정성 및 무결성 유지
하나 이상의 테이블에 데이터를 중복해 배치하는 최적화 기법이다.
빠른 데이터 조회
→ 조인 비용이 줄어들기 때문
살펴볼 테이블이 줄어들기 때문에 데이터 조회 쿼리가 간단해짐
→ 따라서 버그 발생 가능성도 줄어든다
데이터 갱신이나 삽입 비용이 높음
데이터 갱신 또는 삽입 코드를 작성하기 어려워짐
데이터 간의 일관성이 깨어질 수 있다. 어느 쪽이 올바른 값인가?
데이터를 중복하여 저장하므로 더 많은 저장 공간이 필요