Skip to main content
QUICK REVIEW

[논문 리뷰] The SQL++ Query Language: Configurable, Unifying and Semi-structured

Kian Win Ong, Yannis Papakonstantinou|arXiv (Cornell University)|2014. 05. 14.
Advanced Database Systems and Queries인용 수 25
한 줄 요약

이 논문은 SQL을 확장하여 JSON과 같은 반구조적 데이터를 네이티브로 지원하면서도 완전한 역방향 호환성을 유지하는 통합적이고 구성 가능한 쿼리 언어인 SQL++를 소개한다. SQL의 핵심 의미론적 제약을 제거하고 변수 바인딩을 속성-값 쌍과 배열 인덱스에 적용하는 등 최소한의 타겟팅된 확장을 도입함으로써, SQL++는 OQL 및 XQuery 수준의 완전한 조합 가능성과 표현력을 달성한다. 구성 옵션을 통해 기존의 NoSQL 쿼리 언어와의 형식적 매핑도 가능하다.

ABSTRACT

NoSQL databases support semi-structured data, typically modeled as JSON. They also provide limited (but expanding) query languages. Their idiomatic, non-SQL language constructs, the many variations, and the lack of formal semantics inhibit deep understanding of the query languages, and also impede progress towards clean, powerful, declarative query languages. This paper specifies the syntax and semantics of SQL++, which is applicable to both JSON native stores and SQL databases. The SQL++ semi-structured data model is a superset of both JSON and the SQL data model. SQL++ offers powerful computational capabilities for processing semi-structured data akin to prior non-relational query languages, notably OQL and XQuery. Yet, SQL++ is SQL backwards compatible and is generalized towards JSON by introducing only a small number of query language extensions to SQL. Recognizing that a query language standard is probably premature for the fast evolving area of NoSQL databases, SQL++ includes configuration options that formally itemize the semantics variations that language designers may choose from. The options often pertain to the treatment of semi-structuredness (missing attributes, heterogeneous types, etc), where more than one sensible approaches are possible. SQL++ is unifying: By appropriate choices of configuration options, the SQL++ semantics can morph into the semantics of existing semi-structured database query languages. The extensive experimental validation shows how SQL and four semi-structured database query languages (MongoDB, Cassandra CQL, Couchbase N1QL and AsterixDB AQL) are formally described by appropriate settings of the configuration options. Early adoption signs of SQL++ are positive: Version 4 of Couchbase's N1QL is explained as syntactic sugar over SQL++. AsterixDB will soon support the full SQL++ and Apache Drill is in the process of aligning with SQL++.

연구 동기 및 목표

  • 현대의 NoSQL 쿼리 언어에 공식적이고 통합된 의미론이 부족하여 깊은 이해와 상호운용성이 저해되는 문제를 해결하기 위해.
  • 스키마 제약 조건 없이 반구조적 데이터(예: JSON)를 지원하면서도 SQL 호환성을 유지하는 쿼리 언어를 설계하기 위해.
  • 다양한 쿼리 언어(예: MongoDB, N1QL, AQL)의 의미론을 구성 옵션을 통해 기술할 수 있는 공식적이고 확장 가능한 프레임워크를 제공하기 위해.
  • SQL의 의미론을 노드, 이질적, 백 기반 데이터 구조를 지원하도록 일반화함으로써 SQL과 NoSQL 기능을 원활하게 통합하기 위해.
  • 다양한 데이터베이스 시스템과 미들웨어에서 사용할 수 있는 통합 타겟 언어로 기능하여 개발자가 여러 쿼리 언어 버전을 배워야 할 필요성을 줄이기 위해.

제안 방법

  • JSON과 SQL 관계형 모델의 슈퍼세트인 SQL++ 데이터 모델을 정의하여 배열, 백, 풍부한 원자값을 지원한다.
  • SQL을 확장하여 핵심 의미론적 제약을 제거한다: FROM 변수는 튜플 이외의 JSON 요소에도 바인딩 가능하며, 서브쿼리는 완전히 조합 가능하고, 그룹화 구조는 중첩 쿼리에서 직접 사용 가능하다.
  • 새로운 바인딩 구조를 도입하여 FROM 변수가 속성 이름/값과 배열 인덱스/요소를 범위로 삼을 수 있도록 하여 스키마에 종속되지 않는 데이터 검사 기능을 제공한다.
  • 단계적 접근을 사용하여 SQL++ 의미론을 형식화한다: 핵심 SQL++ 언어를 정의한 후, 행동의 다양성을 매개변수화하는 구성 옵션을 정의한다(예: null 대비 missing 처리 방식).
  • 구성 옵션을 사용하여 SQL++를 기존 쿼리 언어(예: MongoDB, N1QL, AQL, Cassandra CQL)와 형식적으로 매핑함으로써, SQL++가 파rameter 설정을 통해 그 의미론으로 변형될 수 있음을 보여준다.
  • 광범위한 실험적 분 析를 통해 접근 방식을 검증하였으며, SQL++가 네 가지 주요 NoSQL 쿼리 언어의 기능을 포괄하고, 일반 외부 조인 및 중첩 서브쿼리와 같은 고급 기능을 지원함을 입증하였다.

실험 결과

연구 질문

  • RQ1SQL과 현대의 NoSQL 쿼리 언어의 기능을 통합하면서도 역방향 호환성을 유지할 수 있는 쿼리 언어는 어떻게 설계할 수 있는가?
  • RQ2완전한 조합 가능성과 반구조적 데이터 처리를 지원하기 위해 SQL에 필요한 최소한의 의미론적 확장은 무엇인가?
  • RQ3구성 옵션을 통해 기존의 NoSQL 쿼리 언어 간의 의미론적 차이(예: 누락된 속성, null 처리, 그룹화 동작)를 어떻게 형식적으로 기술할 수 있는가?
  • RQ4SQL++는 OQL 및 XQuery와 같은 기존의 완전한 반구조적 쿼리 언어의 전반적인 표현력을 어느 정도 구현할 수 있는가?
  • RQ5SQL++는 다양한 데이터베이스 시스템의 공통 타겟 언어로 기능할 수 있는가? 이는 NoSQL 쿼리 언어 간의 문법적 및 의미론적 차이를 추상화할 수 있도록 하는가?

주요 결과

  • SQL++는 스키마 요구나 동일한 데이터 유형 요구를 제거함으로써 SQL을 일반화함으로써 완전한 SQL 호환성을 유지하면서도 성공적으로 확장되었다.
  • 언어는 완전한 조합 가능성을 지원한다: 서브쿼리는 어디에나 위치시킬 수 있으며, SELECT 절 내부에서도 가능하여 중첩되고 이질적인 결과 생성이 가능하다.
  • 구성 옵션을 통해 SQL++는 파arameter 설정을 통해 네 가지 주요 NoSQL 쿼리 언어(MongoDB, Cassandra CQL, Couchbase N1QL, AsterixDB AQL)의 의미론을 공식적으로 기술할 수 있다.
  • SQL++는 평균적인 NoSQL 시스템에 존재하지 않는 고급 기능을 지원한다: 예를 들어 LEFT CORRELATE, OUTER FLATTEN, 일반 외부 조인은 평가된 시스템 중 어느 것도 네이티브로 지원하지 않는다.
  • UDF나 사용자 정의 함수 없이도 변수 바인딩을 통해 속성-값 쌍과 배열 인덱스에 대한 바인딩을 통해 이질적이고 중첩된 데이터를 원활하게 처리할 수 있다.
  • 초기 도입 신호는 강력하다: Couchbase N1QL 버전 4는 SQL++ 기반의 문법적 당근으로 기술되었으며, Apache Drill도 SQL++에 맞추어지고 있어 실제 적용 가능성과 표준화 잠재력이 확인되었다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.