PostgreSQL の問い合わせ言語は SQL-92 のサブセット+拡張です。普通の
RDBMS でできるようなことは大抵 PostgreSQL でも可能ですが、以下のことは
できません。
拡張機能としては、継承、オブジェクト識別子、関数の多重定義などがありま す。ここから、PostgreSQL は、オブジェクト指向的な RDBMS と言う意味で、 Object-Relational Database Management System と呼ばれることがあります。 Object-Relational Database Management Systemの概念については、参考文献 [1]を参照して下さい。ちなみに、この中で取り上げられている Illustra とは、PostgreSQL の前身である postgresか ら派生した商用データベースです。いわば、PostgreSQL の兄弟とも言えます ので PostgreSQL について勉強する上でも参考になる部分が結構あります。
PostgreSQL へのプログラム・インターフェイスとしては、
の3つがあります。
1 の libpq は最も基本的なインターフェイスで、後の2つは内部的に libpq
を呼び出しているだけです。libpq はデータベースエンジン・プロセスと通信
し、実際の処理はすべてデータベース・サーバ側で行われます。したがって、
PostgreSQL を CGI から呼び出す場合にも、データベース本体を WWW サーバ
の動いているホストに置く必要はありません(もちろん置いても構いませんが)
2 の psql は手軽に使える SQL インタプリタです。そのほか、データベー スの管理作業用に、後述の createuser などの UNIX コマンドが用意されてい ます。
3 は スタンドアロンの GUI アプリケーションを開発するときに利用します。 今回は詳しく説明しませんが、Tcl/Tk がインタプリタ言語であることもあっ て、なかなか重宝なものです。ちなみに筆者のところでは、PostgreSQL の Tcl/Tk インターフェイスを利用して図 2 のような簡単な図書データベースを作って利用しています。
4 はいわずとしれたスクリプト言語 perl のインターフェイスです。 特に CGI の実装用に人気があります。
そのほか、正式サポートではありませんが、Java インターフェイスもありま
す。筆者が使ったことのあるのは
http://www.tara-lu.com/ jimb/jsql/
からベータ版が入手できる Java-Postgres95-0.2 です。
native method を使っていないので プラットフォームを選びません。