SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Glenn Paulley氏 データベース関連ブログ 翻訳記事(AD)

ユビキタスなDBMSとしてのSQL Anywhere

原文: SQL Anywhere as a ubiquitous DBMS

  • このエントリーをはてなブックマークに追加

 2009年12月のACM SIGMOD Recordで、Kyu-Young Whang他がユビキタスなデータベースという概念に合致する研究用プロトタイプや市販用のDBMS製品を調査しています。本記事ではUDBMSの必要条件を分析し、それに対するSQL AnywhereサーバーおよびUltraLite DBMSのサポート状況について説明します。 (原文:SQL Anywhere as a ubiquitous DBMS、2010/07/10投稿)

  • このエントリーをはてなブックマークに追加

 本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。

 今週の水曜日に私の手元に届いたACM SIGMOD Recordの最新号(2009年12月)の中で、Kyu-Young Whang他がユビキタスなデータベースという概念に合致する研究用プロトタイプや市販用のDBMS製品を調査(後述の参考資料1)しています。この論文の要旨は次のとおりです。

 モバイルコンピューティング技術の進歩により、センサー、携帯電話機、携帯端末、カーナビ、そしてウルトラモバイルPC(UMPC)といった小型デバイスで利用できるデータベースシステムのニーズが高まった。我々は小型コンピューティングデバイス用にカスタマイズすることができるデータベースシステムを指して、ユビキタスデータベースマネジメントシステム(UDBMS)と呼ぶことにする。本論文ではまずUDBMSにおける必要条件を検討する。必要条件として認められた機能は、軽量型DBMS、選択的コンバージェンス、フラッシュに最適化されたストレージシステム、データ同期、非構造化データおよび半構造化データのサポート、複雑なデータベース操作、自己管理機能、そしてセキュリティであった。次に、現行のシステムと研究用プロトタイプを検討する。吟味されたUDBMSの機能は、フットプリント、標準的SQLのサポート、トランザクションマネジメント、コンカレンシーコントロール、リカバリ、インデクシング、そしてアクセスコントロールである。続いて、調査対象であるUDBMSがこれらの必須機能をどの程度サポートしているかを検討する。そして最後にUDBMSを研究開発していくうえでの問題点を挙げる。

 これに先立つNori(参考資料2)とBernard(参考資料3)他の調査を基に、Whang他は以下の機能をUDBMSの必要条件として挙げています。それは軽量型のオペレーション、選択的コンバージェンス、最新のストレージモデル(特にフラッシュストレージ)のサポート、複雑なデータベース操作のサポート、非構造化データまたは半構造化データのサポート、同期機能、自己管理機能、そしてセキュリティです。そしてこれらの必要条件に関して、TinyDB、PicoDBMS、Oracle Berkeley DB、Oracle 10g Lite、IBM DB2 Everyplace、MS SQL Server for CE、そしてKAISTのOdysseus DBMSプロトタイプの能力を査定しています。

 本記事では、これらの必要条件を分析し、それに対するSQL Anywhereサーバーおよび弊社のUltra Light DBMSにおけるサポート状況についておおまかに述べたいと思います。というのも、Gartner社も認めるとおり、前述の製品はどちらも調査の対象から外されていたからです。いささか驚いたことに、なんとSQLiteも調査対象の製品リストから外されていました。SQLiteはMozilla FirefoxやSkypeといったデスクトップツールに加え、iPhone、Android、Symbianの各種プラットフォーム(近日中にBlackberryも対応予定)と、いたるところで採用されているにもかかわらずです。

軽量型のオペレーション

 UDBMSは低クロック周波数のCPU、小型メモリ、そして小型ストレージを利用するため、アプリケーションで必要とされる各種機能を、許容可能なパフォーマンスの範囲でサポートする必要がある。さらに、ユビキタスなデバイスはバッテリなどの限られた電源供給源しか持たないため、UDBMSは電力消費の少ない機能をサポートしていなければならない。したがって、これらのデバイスのパフォーマンスを考慮し、UDBMSのデザインと実装を可能な限りシンプルなものにすることが重要である。

 実際のところ、この調査の対象となったDBMSはいずれも、エンタープライズクラスのDBMSソフトウェアの縮小版というよりむしろ、フットプリントの小さいデバイスで機能するように土台から新しく作り上げられたシステムです。SQL Anywhereが特徴的なのは、Windows Mobile上で稼動するSQL Anywhereサーバーと、サーバークラスのハードウェア上で稼動する64ビットのバージョンがほぼ同一のものであるという点です。Windows Mobileでは、SQL Anywhereサーバーのフットプリントは7.8MBで、MS SQL Server Compact Editionの公表サイズである2.5MBを大幅に上回ります。ただし、SQL Server CEの方は最小ダウンロードサイズが4.3MBのVisual C++ ランタイムライブラリも必要とします。調査の対象となった製品とは違い、SQL AnywhereはWindows Mobile上でもフル機能を提供し、ストアドプロシージャ、トリガ、OLAP機能、テーブル関数、自己修復型の統計情報マネージャ、全文検索、マテリアライズドビュー、XMLと空間データといった機能をサポートします。

 それに対し、大幅な軽量化を実現したUltra Lightでは、機能性と引き替えにフットプリントが縮小されています。アプリケーションはUltra Lightに静的にリンクするか、DLLとして呼び出す、もしくはUltra Lightサーバーに接続できます。Ultra Lightバージョン12の静的ライブラリのサイズは4.2MBですが、リンクに必要なシンボル情報が含まれるため、サイズが(見かけ上)大きくなっています。Ultra Lightを使った簡素な(しかし完全な)アプリケーションは、670Kのサイズで作成できます。アプリケーションが要求する機能だけをリンクインするからです。一方、Ultra LightのDLLおよびサーバーはそれぞれ約800Kです。サーバーを使う場合は、クライアントアプリケーションが追加の140Kを必要とします。

 市販のUDBMSは、サーバー型のDBMSの機能を簡略化することでフットプリントを縮小しているが、商業ベンダーはどのような技術を採用したか報告するに至っていない。

 文末に記載した参考資料4~6では、SQL Anywhereにおいてランタイムメモリのフットプリントを減らすための技術の概要がとりまとめられています。最適化をleft-deep木で行うことにより、SQL Anywhereの分枝限定的な結合列挙アルゴリズム(これは参考資料5の中で言及されているものが再開発され拡張されたもの)において、最適化処理に必要な一時データ構造として多くの場合にスタックが利用可能となり、その結果、最適化に必要なメモリが大幅に削減されます。たとえば、Windows Mobile 5を搭載し、わずか3MBのバッファプールと、最適化に必要なメモリがたった1MBしかないDell Aximのハンドヘルドデバイスにおいても、SQL Anywhereは小規模なTPC-Hデータベースに対する100通りの結合クエリを最適化し実行できます(参考資料6)。

次のページ
選択的コンバージェンス

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Glenn Paulley氏 データベース関連ブログ 翻訳記事連載記事一覧

もっと読む

この記事の著者

Glenn Paulley(Glenn Paulley)

カナダ オンタリオ州 ウォータールー R&DセンターにてSQL Anywhere 開発における Director of Engineering としてクエリ・オプティマイザなどの開発をリードしている。・IvanAnywhere

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5627 2011/06/09 13:02

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング