더북(TheBook)

문서 데이터베이스는 컬렉션 내부에 있는 문서들의 변화에 적응하도록 설계되었다. 새로 입력되는 문서가 이전에 입력된 다른 문서들과 다른 구조를 가질 수 있으므로 데이터 모델러가 데이터베이스를 구축하기에 앞서 가능한 모든 필드를 명시해 놓을 필요가 없다. 이렇게 미리 정의된 데이터베이스 구조라는 족쇄로부터의 자유를 의미하는 문서 데이터베이스에서 사용되는 용어를 스키마리스schemaless라고 한다.

문서를 추가하기 전에 스키마를 정의할 필요가 없음에도 불구하고, 데이터베이스에 추가할 여러 문서들에 대한 암묵적인 구성 정보는 존재한다. 이러한 구성 정보는 데이터베이스에 있는 문서들을 조작하는 코드에서 그 모습이 명백히 드러난다.

예를 들어 이전에 설명했던 제품 데이터베이스를 구축했다면 각각의 CD를 입력할 때 가수, 프로듀서, 수록곡 수, 전체 연주시간에 대한 값을 설정하는 코드를 작성했을 것이다. 마찬가지로 소가전제품 필드와 책 필드들에 대해서도 값을 설정하는 코드를 작성했을 것이다. 모르긴 몰라도 제품명과 SKU처럼 공통으로 사용되는 필드에 대해서는 같은 코드를 사용했을 것이다.

다형적polymorphic 스키마는 문서 데이터베이스를 설명하는 또 다른 용어다. 다형적이란 말은 라틴어에서 유래됐고 ‘많은 형태를 가진’이란 뜻이다. 이 용어는 단일 컬렉션에서 여러 유형의 문서를 지원하는 문서 데이터베이스를 명쾌히 설명하는 용어라 할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.