NoSQL 문서 데이터베이스의 많은 이점을 활용하고자 하는 조직은 종종 두 가지 문제에 직면하게 됩니다:
- 스키마 없는 문서 모델을 활용하기 위해 RDBMS 스키마를 변환하는 방법.
- 데이터에 액세스하는 새로운 API/쿼리에 대해 알아보세요.
일부는 NoSQL이라는 이름과 혼동하기도 합니다. 이 약어는 'Not only SQL'의 약자이지만 'No to SQL'로 오해할 수 있으므로, SQL을 사용하지 않으려면 NoSQL 데이터베이스조직은 관계형 데이터 모델을 문서 모델로 변환해야 할 뿐만 아니라 어떤 NoSQL 데이터베이스용 API를 선택할 것인지에 대한 교육도 받아야 합니다.
실제로 NoSQL 데이터베이스 업계는 데이터베이스에 가장 널리 사용되는 데이터 액세스를 포기한 적이 없습니다. 많은 NoSQL 공급업체가 여전히 다양한 SQL을 사용하고 있습니다. 코스모스 DB, Cassandra CQL, Elasticsearch SQL, 바퀴벌레 실험실. 심지어 몽고DB 쿼리 언어를 살펴보면 SQL에서 사용되는 관계형 대수의 기초가 되는 select-join-project 구문을 기반으로 한다는 것을 알 수 있습니다.
이 쿼리 언어 문제를 완전히 해결한 NoSQL 분야의 데이터베이스 회사 중 하나는 카우치베이스. Couchbase는 데이터를 기본 JSON 형식으로 저장하지만, 지원하는 데이터 모델은 관계형 또는 계층 구조일 수 있으며, 스키마 유연성과 확장성 때문에 문서 기반 모델에서 자주 사용됩니다. 이것이 가능한 이유는 Couchbase가 SQL-쿼리 언어와 유사한 N1QL은 사용자가 문서 모델의 계층적 특성을 조작할 수 있도록 SQL 언어를 확장한 것입니다. 이 모든 것은 키-값 API를 갖춘 Couchbase 고성능 데이터 서비스를 기반으로 구축됩니다.
데이터베이스 투자를 통해 현재 제공되는 혜택을 활용하고자 하는 조직은 다음과 같은 이점을 활용할 수 있습니다. NoSQL 기술 주의해야 할 사항입니다:
- 정형 및 비정형 데이터 지원
- 수평적 확장성
- 손쉬운 스키마 진화 관리
- 무엇보다도 가장 중요한 것은 지난 30년 동안 데이터베이스 시장을 지배해 온 기존 RDBMS 공급업체를 뛰어넘는 공급업체 선택의 폭입니다.
고객의 결정을 돕기 위해 기업이 레거시 IT 시스템에서 미래로 전환할 수 있도록 지원하는 데 주력하는 Altoros는 다음과 같은 보고서를 발표했습니다. 보고 를 사용하여 오늘날 가장 많이 사용되는 데이터베이스의 쿼리 언어를 비교합니다. 다음 사항에 중점을 두도록 선택했습니다. MySQL/SQL, 카우치베이스 N1QL및 몽고DB 쿼리 언어입니다. 각 쿼리 언어의 구현이 다음 지표를 사용하여 다양한 쿼리 시나리오를 충족하는지 평가했습니다.
- 단순성
- 가독성
- 표현력
- 유연성
- 기술 가용성
- 코드 줄
- 애플리케이션에서 서버로 이동하는 횟수
이 보고서에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 알토로스 웹사이트에서 확인할 수 있으며, 다음 링크에서도 확인할 수 있습니다. '새로 만들기' 열에 있는 내용입니다.
이 보고서의 모든 시나리오를 배포하고 실행하는 데 도움이 될 수 있는 쿼리 및 데이터베이스 덤프의 모든 NoSQL 언어 예제는 이 GitHub 리포지토리에서 찾을 수 있습니다.
알토로스 보고서 방법론
이 보고서의 목표는 기존 RDBMS 애플리케이션의 관점에서 쿼리 언어를 비교하는 것입니다. 이를 위해 다음과 같은 언어를 선택했습니다:
활동 관리 애플리케이션 모드로, 영업, 서비스 및 마케팅 활동을 관리하는 많은 CRM 시스템에서 흔히 볼 수 있습니다. 보고서 설정에는 Couchbase 및 MongoDB에서 사용하는 관계형 모델과 문서 모델이 모두 포함됩니다.

또한 이러한 시스템의 대부분의 사용자가 인식할 수 있는 일련의 쿼리 시나리오를 사용합니다.
| 시나리오 | 설명 |
| 1. 고객 미팅 보고서 | 다음 주에 참석할 고객 미팅에 대비하기 위해 미팅에 참석할 모든 고객의 목록과 연락처를 얻고 싶습니다. |
| 2. 지역별 영업 지역 보고서 | 저는 최고 경영진 판매자 지역의 지역 영업 관리자입니다. 이 지역에 배정된 모든 계정과 계정 팀원을 확보하고 싶습니다. |
| 3. 고객이 선정한 상위 10개 산업 | 2018년 영업 활동을 기반으로 고객의 상위 10개 산업을 파악합니다. |
| 4. 영업 조직 | 2019 회계연도 3분기 동안 제 지역에 할당된 계정과 얼마나 많은 시간을 대화했는지 알고 싶습니다. |
| 5. 영업 활동 보고서 | 2018년 한 해 동안 월별 영업 관련 업무의 수가 어떻게 변화했는지 살펴보세요. |
| 6. 영업 팀 기술 세트 | 현재 영업 조직의 영업팀 기술 세트/역할에 대한 분석 |
| 7. 고객 상호작용 보고서 | 19년 4분기에 고객과 진행한 모든 프레젠테이션을 검토하는 쿼리로, 각 고객별 소요 시간과 미팅의 효과에 대한 세부 지표를 확인할 수 있습니다. |
| 8. 호텔 리뷰의 감성 분석 | Google 자연어 API를 호출하여 감성 평가 점수를 기준으로 모든 리뷰 정렬하기 |
| 9. 고객 미팅을 식별하는 텍스트 검색 보고서 | 특정 주제가 논의된 고객 계정과 관련 연락처를 식별합니다. 검색 기준에는 회의 제목, 회의 날짜 범위, 고객 연락처 세부 정보, 영업팀원 세부 정보(참가자), 고객 이름 등의 정보가 부분적으로 또는 전체적으로 포함될 수 있습니다. |
각 시나리오에 대해 이 보고서는 SQL, N1QL 및 MongoDB 쿼리 언어로 작성된 해당 솔루션을 제공합니다.
- 이 보고서는 다음 기준에 따라 각 쿼리 언어에 대한 등급을 제공합니다.
- 단순성
- 가독성
- 표현력
- 유연성
- 기술 가용성
- 이 보고서에는 9가지 시나리오의 각 솔루션에서 각 쿼리 언어에 필요한 코드 줄 수와 클라이언트-서버 트립 수에 대한 두 가지 추가 메트릭도 표로 정리되어 있습니다.
평가 기준 결과
아래 표는 모든 쿼리 시나리오에 대한 모든 등급을 요약한 것입니다. 각 쿼리 시나리오에 대한 개별 평가는 보고서를 참조하세요.
이 보고서는 MySQL-SQL을 기준점으로 삼아 여러 기준에 따라 Couchbase N1QL과 MongoDB 쿼리 언어를 평가합니다.

참고:
- MongoDB, Cassandra, RedisLab을 사용해 본 Altoros는 N1QL이 SQL과 매우 유사하다는 것을 발견했으며, 일관되게 MongoDB 쿼리 언어보다 더 유리한 평가를 내리고 있습니다.
- 시나리오 #3의 샘플 코드를 보면 세 가지 쿼리 언어가 단순 쿼리 시나리오에서 비교적 유사하며 평가 기준 등급이 비슷하다는 것을 알 수 있습니다.
코드 줄 수

이 차트는 각 쿼리의 코드 줄 수를 보여줍니다. 모든 쿼리 언어에는 고유한 권장 형식이 있으므로 이 메트릭은 잘못 표시될 수 있지만, 관련된 복잡성에 대한 간단한 가이드를 제공할 수 있습니다.
참고:
- N1QL NoSQL 쿼리 언어의 코드 줄 수는 SQL과 거의 비슷합니다.
- 몽고DB 쿼리 언어에는 지속적으로 더 많은 코드 줄이 있습니다.
- 시나리오 #7의 경우, 알토로스 팀은 N1QL의 쿼리 언어가 21줄인 데 비해 MongoDB 쿼리 언어의 경우 347줄을 작성해야 했습니다. 이 이상값은 복잡한 집계와 일반적인 테이블 표현식을 계산하기 위한 MongoDB 쿼리 언어의 한계를 반영합니다(CTE) SQL과 현재의 N1QL은 지난 수십 년 동안 관계형 데이터베이스 기술의 핵심 강점이었습니다.


클라이언트 서버 트립 횟수

차트에는 애플리케이션이 데이터베이스 서버에 제출해야 하는 트립 횟수가 표시됩니다.
참고:
- 대부분의 시나리오에서 SQL/N1QL은 서버에 쿼리를 한 번만 제출하면 되지만, MongoDB 쿼리는 여러 번 전송해야 합니다. 이는 애플리케이션 개발자가 원하는 출력을 선언하기만 하면 결과를 처리하고 반환하는 것은 서버의 몫인 SQL/N1QL의 표현력 때문입니다.
- 복잡한 집계를 지원하지 않기 때문에 몽고DB는 여러 단계에 걸쳐 계산을 수행해야 합니다. 이는 표준 SQL 하위 쿼리 접근 방식과 유사합니다. 여기서 차이점은 하위 쿼리 결과 집합을 클라이언트 애플리케이션에서 유지 관리한 다음 다른 쿼리로 전달해야 한다는 점입니다.

보고서 주요 결과
