데이터베이스 기초
읽기가 대부분을 차지하는 집계용 데이터베이스에서 정규화한 표를 일부러 하나로 합쳐 같은 데이터를 중복해서 갖게 하는 설계(반정규화)를 하는 경우가 있다. 이 설계의 장점과 단점의 조합으로 올바른 것은?
- A중복이 없어져 저장 용량이 줄어드는 한편, 조인이 늘어 읽기가 느려진다
- B읽기도 갱신도 빨라지며, 데이터의 정합성도 자동으로 유지된다
- C조인이 줄어 읽기가 빨라지는 한편, 중복된 데이터의 정합성을 유지하기 위한 갱신의 수고가 늘어난다
정답과 해설 보기
정답: C. 조인이 줄어 읽기가 빨라지는 한편, 중복된 데이터의 정합성을 유지하기 위한 갱신의 수고가 늘어난다
정규화하면 데이터의 중복이 없어져 갱신 이상을 막을 수 있는 한편, 검색할 때마다 여러 표의 조인이 필요해집니다. 읽기 성능이 중요한 상황에서는 자주 함께 쓰는 열을 하나의 표로 합치거나 집계한 결과를 열로 갖게 하여 일부러 정규화를 깨는 경우가 있습니다. 이를 반정규화(비정규화, 디노멀라이제이션)라고 합니다. 조인이 줄어 읽기는 빨라지지만, 같은 데이터가 여러 곳에 기록되므로 변경할 때마다 모든 곳을 올바르게 갱신해야 하며, 갱신의 수고와 내용이 서로 어긋날 위험이 늘어납니다. 저장 용량도 일반적으로 늘어납니다. 그래서 갱신이 많은 업무 처리용 데이터베이스는 정규화를 기본으로 하고, 반정규화는 효과와 대가를 비교한 뒤 필요한 곳에 한정하여 수행합니다.