
|
PostgreSQLとlibpgtcl PostgreSQLは、 主にPC-UNIXで使われている、フリーで高機能なRDBMS (リレーショナルデータベース管理システム)です。基本仕様のほとんどは SQL92に準拠(*1)しているため、標準的な仕様をもつRDBMSとして使うことができ、 オラクルの Oracle やサイベースの Adaptive Server Enterprise などの商用RDBMSともさほど違和感なく管理・開発することができます。 無補償というリスクを除けば高価な商用RDBMSと遜色ない完成度を持っており、 昨今のPC-UNIXの浸透もあって今後ますます認知が進んでいくことでしょう。 で、アプリケーションとしてRDBMSに接続してデータ操作をするプログラムは、 やはりGUI画面を配した使いやすいものにしたいものです。 そこで出て来るのが Tcl/Tk というわけで、Tcl/TkはC言語と並んで、PostgreSQL のデータベース操作をする言語インターフェースとしては最も歴史のある言語であり、 GUI画面の作りやすさがその後登場したPerlインターフェース、 Pythonインターフェースにもない利点として今日まで広く認知されています。 (*1)比較的最近まで残っていた大穴として FOREIGN KEY が使えないという制限がありましたが、 2000年5月10日公開のバージョン7でこれがサポートされたことにより、 SQL92標準仕様のほとんどが実装されたといえるでしょう。 PostgreSQLにおいてTcl/TkのGUIが見事に活用された例として、 PostgreSQLについてくる「pgaccess」という、 マイクロソフトのAccessみたいなシート状の操作画面があります。 これはTcl/Tkで書かれており、GUI操作でデータの編集ができるツールです。 かなりスゴイできなので、ぜひチェックしてみてください (日本語の表示にはwish8.0jpが必要です)。
![]() PgAccessのメイン画面。データベースをオープンすると表の一覧が現れます
![]() 表の編集画面。動作は最近のJava化した商用RDBMSのツールに比べ、大変に軽快です PostgreSQLのTcl/Tkインターフェースはlibpgtclと呼ばれ、 PostgreSQLのソースアーカイブの中に入っています。 libpgtclは共有ライブラリで、Tcl/Tk処理系からloadまたはpackage require コマンドでロードして使います。 実験室では Linux 2.2.14 on x86 (RedHat Linux 6.2J) 上で、 PostgreSQL 7.0.2とPostgreSQL 7.1.3 に同梱のlibpgtcl 2.1をTcl/Tk 8.4a1 でビルドし、動作を確認することができたので、この環境での動作を紹介しています。 |