![]() ![]() ![]() ![]() 比較しがたいもの、Linux DBMS パート3--1この記事のURLhttp://japan.internet.com/linuxtutorial/20001216/1.html
著者:Matthias Warkus
海外internet.com発の記事
総合評価 このパートでは少し方針を変えて、 パフォーマンスに関係ない話題を取り上げることにしよう。 次回ではベンチマークに焦点をあて、全体のまとめでシリーズを終えることにする。 全般的な相違点 真の RDBMS が必要なら PostgreSQL を選択するしかない。 実際のパフォーマンスが重要なら、小規模なシステムほど良い結果を得られるだろう。特にデータベースへのアクセス が単純でほとんど自動的である場合はそうだ。mSQL と MySQL は、このような理由で Web データベース システムとし て宣伝されている。 ライセンス MySQL はフリーであり、特定の条件のもとではソースコードの修正も許されている。しかし、商用目的での再配布 は許可されていない。 mSQL は非営利組織に限りフリーで使用できる。それ以外では 14 日の試用期間後にライセンス料を支払う必要があ る。 このような違いがあるため、これらのデータベース システムを企業で使用する場合には、ライセンス 条件を注意深く検討する必要がある。 ANSI 規格の実装 PostgreSQL では参照整合性のサポートが完全ではないが、3 つのシステムのうちテスト済みのトランザクション機 能を持つ唯一の DBMSだ。SQLSTATE 変数のような他の新しい SQL の機能はまだ実装されていない。 MySQL にはトランザクション機能も参照整合性を保つ機能もない。テーブルは処理アクセスのたびにロック/ロック 解除される。 mSQL には ANSI SQLとしての機能がほとんどない。トランザクション機能も参照整合性もサポートしない最小限の API を実装しているだけだ。 API mSQL と MySQL には埋め込み SQL (ESQL) プリプロセッサの機能がない。私は ESQL を気に入っているが、mSQL と MySQL が提供するネイティブの C 言語 API を使用するのはそんなに難しいことではない。カーソルのメタファー は同じであり、それが違った方法で実装されているにすぎない。文字列を C 言語の関数へ受け渡すのは、コード中で埋 め込み SQL 文を使うよりもわずかに難しいだけだ。 すでに述べた ESQL API に加え、PostgreSQL にはネイティブの C API、C++ バインド、JDBC、ODBC、Perl バイ ンド、Python バインド、そして Tcl バインドがある。 MySQL には Win32 プラットフォーム用 ODBC サポートもある。プログラム言語のバインドは、少なくとも C++、 Eiffel、Java、Perl、Python、PHP、そして Tcl で利用できる。 mSQL はディストリビューションに付属している Lite という C 言語ライクなスクリプト言語と密接に統合されて いる。W3-mSQL という Web 統合パッケージが利用でき、JDBC、ODBC、Perl、および PHP API が使える。 私はこれらの追加のバインドと機能をどれもテストしてはいないし、これらの品質やドキュメントの状態は必ずしも 良いとは言えない。3 つのシステムすべてに対して、多くのサードパーティによるエクステンションが入手できるが、 ここでその概要をすべて説明する余裕はない。 次は ドキュメントその他 >> |