NoSQL을 알아보자(9) - Document 데이터베이스 특징①

 

Document Database

Document 데이터베이스는 복수의 Key-Value 데이터를 저장할 수 있다. Document 데이터베이스의 데이터를 표현하는데는 주로 JSON, XML 등을 사용한다.

Key-Value 데이터베이스와의 차이

Key-Value 형식으로 데이터를 저장하지만 Key-Value 데이터베이스와 다른 점은 하나의 Document 안에 여러 개의 Key-Value 데이터들이 모여서 Document를 구성한다는 것이며, Key에 다양한 형태를 정의할 수 있던 Key-Value 데이터베이스와 달리 Document 데이터베이스는 Key로 문자만을 허용하고 있다.

Key-Value 데이터베이스에서 한 객체를 표현할 때 속성 하나하나 Key-Value 데이터 형태로 나눠 저장하던 것과 달리, Document 데이터베이스는 하나의 Document에 관련 Key-Value를 모아 하나의 단위로 관리할 수 있다는 점이 편리하다. 이는 관계형 데이터베이스의 테이블과 상당히 유사하다.

비교를 위해 예시를 하나 들자면, 헬스장에서 회원권 만료가 30일 이내인 회원에게 안내 문자를 보내기 위해 회원의 이름과 전화번호를 획득해야한다.

Document 데이터베이스에서는 멤버 Document에서 회원권 만료가 30일 미만인 멤버들을 질의하여 해당 조건의 유저 정보를 획득할 수 있다. Document 데이터베이스는 하나의 문서에 관련 Key-Value 데이터를 함께 저장하기 때문에 멤버 획득만으로 회원의 이름과 전화번호를 획득할 수 있다.

Key-Value 데이터베이스에서는 몇 가지 작업이 더 필요하다. 먼저 회원권 기간이 저장된 데이터 셋에서 만료 기간이 30일 이내인 회원 ID 값을 획득한다. 그 뒤 회원 ID를 가지고 이름을 조회하고, 전화번호를 조회하여 필요 정보를 모두 획득할 수 있다.

Document 데이터베이스는 하나의 데이터 셋에 관련 정보가 모두 저장돼 있어 한 번의 조회로 모든 정보를 획득할 수 있지만, Key-Value 데이터베이스는 주로 속성 별로 분리되어 저장하기 때문에 획득한 ID를 가지고 연관 정보를 추가 조회하는 과정이 필요하다.