문서 데이터베이스 모델러는 무엇을 해야 할까?
문서 데이터베이스 모델러는 데이터 모델링을 할 때 대부분의 관계형 데이터베이스 모델러와 다른 접근 방식을 사용한다. 문서 데이터베이스 모델러와 애플리케이션 개발자는 확장성과 유연성, 혹은 이 둘 모두를 위해 문서 데이터베이스를 사용할 것이다. 이들에게도 데이터 이상현상을 피하는 것이 여전히 중요하지만 확장성과 유연성을 얻는 것에 더 많은 신경을 쓸 것이다.
예를 들어 데이터베이스에 여분의 고객 주소 복사본이 있다면 애플리케이션 개발자는 한 주소에 대한 모든 복사본을 갱신하는 고객 주소 갱신 함수를 만들 것이다. 이 개발자는 데이터 이상현상을 방지하려고 항상 이 함수를 사용해 주소를 갱신할 것이다. 곧 보게 될텐데, 개발자는 문서 데이터베이스에서 데이터 이상현상을 피하려고 더 많은 코드를 작성하겠지만 결국 데이터베이스 튜닝과 질의 최적화에는 그만큼 신경을 덜 쓰게 될 것이다.
그럼 어떻게 해야 문서 데이터베이스 모델러들과 애플리케이션 개발자들이 더 나은 성능을 얻을 수 있을까? 조인에 대한 요구를 최소화하면 된다. 이를 비정규화denormalization라고 한다. 비정규화된 데이터 모델의 기본적인 사상은 관계형 데이터베이스의 테이블이나 문서 데이터베이스의 문서 같은 단일 데이터 구조에 함께 사용되는 데이터를 저장해 놓는 것이다.