少し前まで、日経ソフトウエアで「データベース」と言えば、米OracleのOralce DatabaseやMySQL、米MicrosoftのSQL Server、米IBMのDB2などのことでした。これらはみな、「リレーショナルモデル」という理論をベースにしたリレーショナルデータベース管理システム(Relational Database Management System、RDBMS)で、なおかつ、クライアント/サーバー型のものでした。

図1●クライアント/サーバー型リレーショナルデータベース管理システムの使われ方
図1●クライアント/サーバー型リレーショナルデータベース管理システムの使われ方
[画像のクリックで拡大表示]

 1990年代半ばから広く使われているクライアント/サーバー・システムの典型的な形は図1(a)のようなものです。クライアントのアプリケーションは、共有しないデータはファイルシステムの中にあるファイルに保存し、共有するデータはデータベースサーバーソフトに保存を依頼します。1990年代後半には図1(b)のようなWebシステムが一般化しました。ここでも、データベースサーバーソフトの位置付けは変わらなかったと言えます。

 こうしたシステムは今でも業務アプリケーションから個人で作成する簡単なアプリケーションに至るまで広く使われており、クライアント/サーバー型のRDBMSの知識は、ソフトウエア開発者にとって必須のものと言えるでしょう。

二つの「次」が見えてきた

 そして、データベース利用の「次」が見えてきているのが今です。その一つはスマートフォン開発における組み込み型データベース管理システムの存在です。

 AndroidやiOSには「SQLite」というデータベース管理システムが入っています。これは、トランザクション処理にも対応したRDBMSですが、クライアント/サーバー型ではなく「サーバーレス」です。多くのユーザーでデータを共有するために開発されたものではなく、こうしたデータベースは「組み込み型データベース」とも呼ばれます。

 Windowsアプリケーションの開発では、データはファイルに保存するのが基本でした。でも、スマートフォンのアプリケーション開発では、SQLiteのような組み込み型データベースにデータを保存することが多くなっています。ファイルシステムよりも高機能で開発が簡単ですし、複数のプロセスが同じデータを利用しても安全だからです。これからスマートフォンのアプリケーション開発をするなら、組み込み型データベースの知識は欠かせないものと言えます。その知識は他のハードウエア向けの開発でも生かせるでしょう。