SHOEISHA iD

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

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

SQL Anywhereの魅力を探る

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

SQL Anywhereの魅力を探る 6


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

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

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

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のアーキテクチャ

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
SQL Anywhereの魅力を探る連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1638 2008/09/04 12:51

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング