本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
概要
SQL Anywhere 11には驚くほど多くの新機能があります。わずか2年前にSQL Anywhere 10で膨大な数の機能が導入されたことを考えると、SQL Anywhere 11の新機能の多さは驚きというほかありません。この記事では、開発者にとって最も興味深いと思われるSQL Anywhere 11の新機能トップ10を紹介します。トップ10には入らなかった機能の中からも、いくつか興味深いものを取り上げて紹介します(例えば、経管理的な視点から見れば重要かもしれないが開発者の視点では必ずしもクールではない機能など)。また、素晴らしいというより奇妙な機能についてもいくつか簡単に紹介します。
あらためまして、いよいよ皆さん注目のSQL Anywhereアカデミー賞の発表です。自分のお気に入りの機能のうち、どれが選ばれ、どれが落選するか、どんな変わりダネが紹介されるのか...。SQL Anywhere 11「クールな新機能」部門トップ10を紹介しましょう!
11でも問題は10
2年前にSQL Anywhere 10がリリースされたとき、筆者は「10」という数字自体が大きな問題だと書きました。多くのクールな新機能のうち、どの10個を取り上げるかを決めることが難しかったからです。
SQL Anywhere 11でも、「10」という数字は相変わらず悩みの種です。ただ今回の場合は、「まだバージョン10の機能を学習している最中なのに11がリリースされてしまうなんて」という意味ですが。バージョン11のベータフォーラムに、新しい機能の使い方を覚えるために「私の1日の時間を長くしてほしい」という要望が書き込まれていましたが、筆者も同意見です。
SQL Anywhereの変化のスピードがいかに速いか、例を挙げて説明しましょう。筆者が巨大なXMLファイルを解析してSQL Anywhereテーブルに直接ロードするという処理をするために初めてOpen XMLを使ったのはわりと最近のことですが、この機能は9.0.1の頃から導入されています。筆者が4月に「Open XMLの使い方」という記事を投稿すると、それがたちまち筆者のSQL Anywhereブログで一番人気のページになり、それ以来、その人気は衰えを見せていません。
もう1つ例を挙げましょう。HTTPセッションを使ってSQL Anywhereの組み込みWebサーバとの間で状態を維持する機能はバージョン10で導入されましたが、筆者がこの機能を使ってみたのはつい先日のことです。実は、この機能は筆者の選んだバージョン10のトップ10リストに入っていなかったのですが、それは大きな間違いでした。これは本当にクールな機能です。
以上を踏まえて言えば、バージョン11ではバージョン10ほど画期的な更新がなかったため、トップ10を選ぶ作業はそれほど難しくありませんでした。まずは、残念ながらトップ10に入らなかった機能から紹介していきましょう。皆さんのお気に入りの機能がここで紹介されてしまうかもしれませんが、そこはどうか広い心で最後まで読んでもらいたいと思います。
残念ながら選外の機能
ここでは、トップ10リストにランクインされなかったSQL Anywhere 11の新機能を紹介します。
.NET Entity FrameworkとLINQに対するサポートが重要な新機能であることは間違いありませんが、少なくとも筆者にとって、これはクールな機能ではありません。リレーショナルデータベースを使用するのであれば、リレーショナルデータベースの言語を学習し、使用する必要があります。明確に言えば、その言語とはSQLであり、LINQのような分かりにくいラッパーではありません。筆者の考えでは、単純なWHERE句を表現するためにCustomer customer = this._db.Customers.Where( "it.ID = @ID", new ObjectParameter( "ID", id ) ).First();
と書かなければならないような言語は合理的とは言えません。
全文検索と正規表現は、LIKE述語の代わりに使用できる2つの新機能です。前者の全文検索は非常にクールであり、トップ10リストに入っていますが、正規表現はランクインしていません。筆者の頭では、「ゼロ幅アサーションの正のルックビハインド」の意味を学んだり、読みやすいSELECT文で書けるような内容を'(?<=new\\s)york'
などとコーディングする方法を学習したりするのに長い時間がかかりそうです。正規表現に精通している人はこの機能を歓迎するのでしょうが、保守のしやすさを重視する人は歓迎しないでしょう。
これを選外にしたのは我ながら失敗だったと後悔することになればいいと思っているのが、DCXという機能です。これは"DocCommentXchange"の略で、大げさな名前が付いていますが、簡単に言えばヘルプからWebサイトへのハイパーテキストリンクであり、各トピックについての他人のコメントを読んだり、自分のコメントを入力したりできるようにするものです。DCXのインターフェースの外観はヘルプと非常によく似ているため、リンクをクリックしたときに、ヘルプと同じものを見ているような気がするでしょう(図1を参照)。同じトピックが同じレイアウトで表示され、[Contents]タブ、[Index]タブ、[Search]タブも同じです。新しいのは、各トピックのコメントエリアです。ここには他の人の意見が表示され、自分もそこにログインしてコメントを追加できます。左側の[Recent Comments]タブも新しい機能です。現在、dcx.sybase.comのWebサイトは、SQL Anywhere 10データベース上で動作しています。このWebサイトも近いうちにSQL Anywhere 11上で動作し、Apacheの代わりに組み込みHTTPサーバを使用し、PHPクライアントサーバアプリケーションの代わりにPHPで保存されたプロシージャを使用する構成にする予定です。さらに、LIKEの代わりに全文検索を使用するかもしれません。筆者はこれらすべてが実現することを望んでいます。実現したあかつきには、DCXをトップ10に含めるべきだったと後悔するようになるでしょう(DCXはversion12より日本語化予定です)。