LinuxTutorial2000年12月16日 00:00
文字サイズ文字サイズ小文字サイズ中文字サイズ大

比較しがたいもの、Linux DBMS パート3--1

この記事のURLhttp://japan.internet.com/linuxtutorial/20001216/1.html
著者:Matthias Warkus
海外internet.com発の記事
tutorial logo

総合評価

このパートでは少し方針を変えて、 パフォーマンスに関係ない話題を取り上げることにしよう。 次回ではベンチマークに焦点をあて、全体のまとめでシリーズを終えることにする。

全般的な相違点
PostgreSQL とは違い、 MySQL と mSQL は本当の意味でのリレーショナル データベース管理システムではない。ニュースグループで MySQL の ことを「高速なストレージ ツールにすぎない」と言っている人もいるし、mSQL にいたっては、お世辞ではなく「おも ちゃ」とさえ呼ばれていたこともある。 少なくとも mSQL は、完全な SQL DBMS が提供する機能の一部を実装しているのだが。

真の RDBMS が必要なら PostgreSQL を選択するしかない。 実際のパフォーマンスが重要なら、小規模なシステムほど良い結果を得られるだろう。特にデータベースへのアクセス が単純でほとんど自動的である場合はそうだ。mSQL と MySQL は、このような理由で Web データベース システムとし て宣伝されている。

ライセンス
PostgreSQL は BSD スタイルのライセンスで配布されており、 どのような観点からもフリーだ(熱狂的信者に言わせれば、もったいないことだろうが)。著作権の告知が維持されて いる限り、基本的にソフトウェアをどのようにしてもよい。

MySQL はフリーであり、特定の条件のもとではソースコードの修正も許されている。しかし、商用目的での再配布 は許可されていない。

mSQL は非営利組織に限りフリーで使用できる。それ以外では 14 日の試用期間後にライセンス料を支払う必要があ る。

このような違いがあるため、これらのデータベース システムを企業で使用する場合には、ライセンス 条件を注意深く検討する必要がある。

ANSI 規格の実装
これら 3 つのシステムはすべて、ANSI SQL 規格の完全な実装からはほど遠い。公平に見て、ANSI SQL 規格はいささ か馬鹿げているように思える。 MySQL では開発者がはっきりした方針をもつサブセットを実装しているのに対し、mSQL では特に ANSI 準拠にしよう とはしていない。PostgreSQL は最終的に完全な ANSI 準拠となることを目標としているが、それはまだ先のことだ。

PostgreSQL では参照整合性のサポートが完全ではないが、3 つのシステムのうちテスト済みのトランザクション機 能を持つ唯一の DBMSだ。SQLSTATE 変数のような他の新しい SQL の機能はまだ実装されていない。

MySQL にはトランザクション機能も参照整合性を保つ機能もない。テーブルは処理アクセスのたびにロック/ロック 解除される。

mSQL には ANSI SQLとしての機能がほとんどない。トランザクション機能も参照整合性もサポートしない最小限の API を実装しているだけだ。

API
テストした 3 つのシステムの 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 つのシステムすべてに対して、多くのサードパーティによるエクステンションが入手できるが、 ここでその概要をすべて説明する余裕はない。

次は ドキュメントその他 >>


Copyright 2008 Jupitermedia Corporation All Rights Reserved.http://www.internet.com/