SHOEISHA iD

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

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

SQL Anywhereの魅力を探る

省リソースで軽快に動作する組込向けデータベース「Ultra Light」

SQL Anywhereの魅力を探る 6


SQL Anywhereは、組込み・中小規模ビジネス・モバイル分野などで特に普及している、省リソースで高速な処理を実現するリレーショナルデータベースです。この連載では、その魅力を紹介していきます。第6回は、SQL Anywhereのパッケージに含まれる組込向けデータベース「Ultra Light」を、最新バージョンのSQL Anywhere 10向けに加筆して紹介します。

3.1. Ultra Lightとは

 Ultra Lightは、Windows CEやSymbian OS・Palm OSに対応するモバイルデバイス向けデータベースだ(注1)。極めて省リソースで動作し、RDBMSとしての特徴も備える。トランザクションや参照整合性・インデックス・暗号化などの機能を持つ。対応するSQL構文も多彩で、JOIN文を含めたさまざまなSQL文を実行できる。さらに、Mobile Link同期クライアントとしての機能も備え、SQL Anywhereや他社製データベースとのデータ同期も容易だ。このように、Ultra Lightを使えば、スマートフォンやPDA・業務用端末・デジタル機器などのモバイルデバイス向けのアプリケーションを開発する際に、データベースを基盤としたデータ保存や検索機能をえられ、統合データベースとの同期も可能となる。

 SQL AnywhereのパッケージにはSQL AnywhereとUltra Lightという2つのデータベースがあることになり、Ultra LightはSQL Anywhereのサブセットと位置付けられる。SQL Anywhereと比べてUltra Lightの機能は制限されるが、モバイルデバイスという利用環境では十分な機能を持つ。SQL Anywhereと比較しながら、Ultra Lightの特徴を示す。制限の詳細については後述する。

注1
 Windows XP/XP Embedded/Tablet PCにも対応する。また、NECエレクトロニクス社のplatformOViA(組み込みLinux)や、BlackberryといったJava(J2ME/SE)への対応も進んでいる。
Ultra LightとSQL Anywhereとの比較

 Ultra LightとSQL Anywherでは、アーキテクチャが大きく異なる(下図)。

図3.1. Ultra Light とSQL Anywhere とのアーキテクチャの比較
図3.1. Ultra Light とSQL Anywhere とのアーキテクチャの比較

 Ultra Lightを利用するアプリケーション開発はUltra Light SDK(Software Development Kit)を利用し、SDKが提供するAPIを介してデータベースを操作する。アプリケーションとなる実行バイナリは、Ultra Lightのライブラリと動的または静的にリンクされる。そのため、アプリケーションのプロセス内でUltra Lightが機能する。これはin-process databaseとも呼ばれる形態だ。一方、SQL Anywhereでは、アプリケーションとは別プロセスのデータベースサーバを起動させて、TCP/IP接続といったプロセス間通信でアプリケーションはデータベースを利用する(注2)。 そのため、単純なクエリであれば、プロセス間通信のオーバーヘッドのないUltra Lightの方が高速だ。

 また、このような性質上、複数のアプリケーション(プロセス)が一つのUltra Lightデータベースを共有することはできない。Ultra Lightでは、一つのプロセスが一つのデータベースを利用することが想定されている。複数の処理を同時に実行したいのあれば、SQL Anywhereが適する。

 ひとことで言えば、単純な処理であればUtra Light、複雑な処理であればSQL Anywhwereとなる。とはいえ、Ultra Lightはモバイルデバイスの用途として十分な機能を備える。

注2
 Ultra Light EngineというUltra Lightデータベースのための「データベースサーバ」があるので本文の説明は適切ではないが、アプリケーションに組み込んでUltra Lightを利用するのが一般なので本書ではUltra Light Engineについては言及しない。
  • プラットフォーム
  • Ultra Lightのみがサポートするプラットフォームは、Symbian OSとPalm OSである。これらが対象であれば、Ultra Light以外の選択肢はない。WindowsやWindows CEでは、Ultra LightもSQL Anywhereも動作する。
  • 省リソース性
  • Ultra Lightを使う場合、アプリケーションのフットプリントが500KB~1MB程度増加する。一方、SQL Anywhereでは6MBだ。Ultra Lightの方がリソースの限られたシステムに適する。
  • 配布の容易さ
  • 配布に必要なファイル数やファイルサイズもUltra Lightの方がずっと小さい。Ultra Lightは数個のライブラリを配備すればよい(それとて、動的リンクではなく静的リンクを利用すれば、アプリケーションだけとなる)。一方、SQL Anywhereでは、DLLやEXEなど数多くのファイルが一式必要となる。
  • SQL Anywhereとの互換性
  • WindowsやLinuxなどのほかのプラットフォーム上のSQL Anywhereとの互換性を重視するなら、SQL Anywhere (for CE)が良いだろう。SQL Anywhereのデータベースファイルはバイナリレベルで互換性があるので(エンディアンが異なる環境であっても互換だ)、CE上のデータベースファイルをコピーするだけで、ほかのプラットフォーム上でもそのデータベースを利用できる。
     
    一方、Ultra Lightのデータベースファイルは、プラットフォームの互換性はあるが、SQL Anywhereとの互換性はない。Ultra LightのデータをSQL Anywhereへ移すには、いったんXMLに変換する処理や同期設定などが必要になる。
     
    なお、ADO.NETのAPIはSQL AnywhereでもUltra Lightでも利用できるので、ADO.NETでアプリケーションを組めば、アプリケーションのポータビリティは高まる。
  • 開発容易性
  • 上述したように、Ultra LightはADO.NETをサポートするので、.NET言語であれば、デファクトスタンダードで開発できる。しかし、他の開発環境では、決して難しいものではないが、Ultra Light独自のAPIを使うことになり、他社の開発環境やデファクトスタンダードとの互換性は低い。一方、SQL Anywhereの場合は、 ADO.NETやODBC・JDBCといった汎用性の高いAPIが利用でき、他社製データベースであってもコードの再利用がしやすい。
     
表3.1. Ultra LightとSQL Anywhere for CEとの比較
  省リソース 性能 SQL Anywhereとの互換性 開発容易性 配布
Ultra Light ×
SQL Anywhere for CE

 まとめると、アプリケーションが必要とする処理が簡単なものであれば、Ultra Lightを選んだほうがメリットが大きい。処理が複雑であれば、Ultra Lightでは実現不可能ということはないだろうが、SQL Anywhereの機能が便利と思う機会が多いだろう。ここで注意しなければならないのは、Ultra Lightでは無理だからSQL Anywhereと考えたのあれば、今一度、そのような機能が、そもそもモバイルデバイス上で達成可能か考えてみてほしい。モバイルデバイスはデスクトップPCよりもずっとスペックが劣るため、デスクトップPCでは造作もない処理が、モバイルデバイスでは負荷が重すぎてユーザーの使用に耐えないということがある。リソースの限られた機器で快適なアプリケーションを実現するに十分な機能がUltra Lightには備わっているはずだ。

3.1.1. Ultra Lightの特徴と制限

 Ultra LightはRDBMSの基本機能をサポートする。主な特徴と制限とを以下に示す。

主な特徴
  • インデックス
  • 複数カラムのインデックスを作成できる。
     
  • キー
  • 主キーや外部キーに対応して参照整合性を設定することができる。
     
  • トランザクションとリカバリ
  • トランザクションに対応し、コミットやロールバックができる(注3)。 また、自動リカバリも可能で、トランザクションの途中でアプリケーションやデバイスに障害が起きても、データベースは自動的に修復される。
     
  • セキュリティ
  • データベース接続時に認証可能。データベースファイルの暗号化やMobile Link同期通信の暗号化にも対応する。
     
  • 高パフォーマンス
  • リソースの限られたデバイス上で省リソース・高パフォーマンスに動作するよう、データ構造やキャッシュアルゴリズムが最適化されている。
     
  • Mobile Link 同期クライアント
  • パブリケーションを設定して、Mobile Link 同期ができる。
     
  • GUI管理ツール
  • データベースの作成やテーブル定義など、Sybase Central上からGUIで実行できる。また、Interactive SQLを使って、SQLを実行することも可能だ。SQL Anywhereと同様の使用感が実現されている。
注3
 アプリケーションは複数のトランザクションを同時に保持できるが、Ultra Light内部では複数のトランザクションは逐次実行される。そのため、トランザクションAが排他ロックしている行をトランザクションBが書き込もうとすると、ブロックされずにSQLCODE SQLE_LOCKEDエラーとなる。
表3.2. 主な制限
項目 制限
データベースファイルのサイズ 2GB(またはOSによるファイルサイズ制限)
データベース内のテーブル数 データベースファイルのサイズから制限される
テーブル内のカラム数 およそ4,000カラム
テーブル内の行数 およそ1600万行
データベース内の行数 データベースファイルのサイズから制限される
データベースへの接続数 14接続まで
行サイズ およそ16KB(圧縮後)。なお、LONG VARCHAR型とLONG BINARY型の値は別に保存されるので、これには含まれない

次のページ
3.1.2. Ultra Lightのアーキテクチャ

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

SQL Anywhereの魅力を探る連載記事一覧

もっと読む

この記事の著者

森脇 大悟(モリワキ ダイゴ)

1974年生まれ。神奈川県川崎市出身。京都大学理学部物理学科卒業。同大学院 修士課程中退後、有限会社グルージェント(現・株式会社グルージェント)入社。SIとして金融や物流システムを手がける。2003年アイエニウェア・ソリューションズ株式会社入社。エンジニアとして製品の導入支援やコンサルティング業務に...

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1638 2008/09/04 12:51

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング