HTSQL

HTSQL ( Hyper Text Structured Query Language ) は、スキーマ駆動型の URI から SQL へのクエリ言語であり、 HTTP経由でリクエストを受け取り、それをSQLクエリに変換し、データベースに対してクエリを実行し、ユーザーエージェントに最適な形式(CSV、HTML など)で結果を返します。 [ 1 ] HTSQL 言語は「HTSQL サーバー」上に実装されており、HTSQL を使用して Web リクエストを同等の SQL に変換し、サーバー側データベースでリクエストを実行し、XMLHTMLCSVJSON、またはYAML形式で結果を返します。2010 年 4 月現在の実装ではPythonが使用され、 PostgreSQLMySQLSQLiteOracle、およびMicrosoft SQL Serverデータベース で動作します。

HTSQLは、 2001年にYAMLを提案したClark Evans [ 2 ] )によってプロトタイプ化および開発され、 Prometheus ResearchのKirill Simonov [ 3 ]によって実装されました。

範囲

HTSQLは、SQLプログラマーではないビジネスユーザーを対象としています。集計や射影といった直感的でないリレーショナルクエリを簡素化することを目指しています。目標はSQLの完全再現ではなく、シンプルさと直感性です。HTSQLは、データには精通しているもののSQL構文には精通していないユーザーでも、アプリケーションを介さずにデータベースに直接アクセスできるようにします。[ 4 ]

構文

HTSQLはURIベースのクエリ構文を使用します。クエリは通常、単一のテーブルから始まり、オプションでスキーマをプレフィックスとして付加し、その後に返される行数を制限するフィルター式が続きます。[ 5 ]

テーブル名の前に列名を指定することにより、テーブル間の結合を行うことができます。次の例では、programテーブルから学位プログラムのタイトル、schoolテーブルから学校名を取得します。

/プログラム{学校名、タイトル} 

HTSQL コマンドライン システムからのこのクエリの結果は次のようになります。

プログラム~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 学校名 | タイトル --------------------------+----------------------------------- 芸術デザイン学部 | 美術史専攻 芸術デザイン学部 | 美術史学士 芸術デザイン学部 | スタジオアート学士 ビジネススクール | 会計学大学院証明書 ...

集計式は、データベース内に多対 1 の関係がある場合に使用できます。

/学校{名前、count(プログラム)、count(学科)} 

結果には、各学校のプログラムと学科の数が表示されます。

学校~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 名前 | カウント(プログラム) | カウント(部門) -------------------------+----------------+------------------ 芸術デザイン学部 | 3 | 2 ビジネススクール | 5 | 3 教育学部 | 7 | 2 工学部 | 8 | 4 

アプリケーション

HTSQLはアドホックなデータベースクエリに使用できます。開発者は、HTSQLはSQLよりも簡潔で直感的であるため、非技術系ユーザーにとってエラーが発生しにくいと考えています。[ 5 ]

HTSQLは、データアナリストやUI開発者といった「偶然のプログラマー」にも活用できます。より読みやすいHTTPベースのクエリに加え、HTSQLの開発者は、意図しない結合といったよくあるSQLミスを回避するのに役立つと主張しています。[ 6 ]

バージョンとライセンス

HTSQLはデュアルライセンスモデルを採用しています。このソフトウェアは、 MySQLPostgreSQLなどのオープンソースのリレーショナルデータベースで無料で使用できます。[ 7 ]ソースコードはBitbucketのサイトで入手できます。[ 8 ]

OracleMicrosoft SQL Serverなどの商用データベースと互換性のあるHTSQLの商用バージョンも利用可能です。[ 1 ]

同様の取り組み

参考文献