この文書では、主要な関係
データベース管理システム(RDBMS)の比較を行います。特に断りがない限り、アドオンや外部プログラムを含まず、各RDBMSの最新の安定バージョンに基づいて比較しています。
一般的な情報
各RDBMSがサポートする
オペレーティングシステムを比較します。
注記(1):
Java仮想マシンに依存するため、OSの種類ではなく
Javaの実行環境が利用可能かどうかが重要です。
基本機能
各RDBMSが提供する基本的な機能の比較を行います。
注記(1):
InnoDBストレージエンジンでのみ利用可能です。
MyISAMでは利用できません。
注記(2):
MySQL 5.5以降で
Unicodeの補助文字に対応しました。
注記(3):
SQL Server 2005以降でREAD_COMMITTED_SNAPSHOTが利用可能です。
注記(4): DB2 9.7以降でCS with CCが利用可能です。
注記(5):
Ingres 10以降ではMVCCをシステム、セッション、テーブル単位で設定可能です。
数量制限
各RDBMSにおけるデータサイズやカラム数などの数量制限を比較します。
注記(3):
InnoDBでは、VARBINARY、VARCHAR、BLOB、TEXT列を除き、最大8000バイトです。
注記(4):
InnoDBでは、最大1000列までです。
注記(5):
PostgreSQLでは、text, bytea, xmlなどを除き、約8000バイトが最大です。
注記(6):
SQL Server 2005以降のVARCHAR(MAX)を使用した場合です。
注記(7): H2 Databaseでは、BLOBとCLOBを除いて計算します。
注記(8):
Javaの配列型制限が識別子サイズ、行数、列数、文字数などに影響します。
インデックス
B-/B+木インデックス以外のインデックス機能を比較します。
注記(1): freeAdhocUDFライブラリの関数が必要です。
注記(2):
SQL Server 2008以降、空間インデックスをサポートしていますが、Bツリーで構築されます。
注記(3): 計算列でのインデックス作成、またはビューでのインデックス作成で代替可能です。
問い合わせ機能
各RDBMSが提供するクエリ機能の比較を行います。内部結合、Union、BLOB/CLOBなど、すべての
データベースでサポートされている一般的な機能は省略します。
その他の機能
各RDBMSが持つその他の機能について比較します。
注記(1):
クエリ最適化のサポートはDeveloper版とEnterprise版のみです。他のエディションでは、マテリアライズドビューへの直接参照やクエリヒントが必要です。
パーティショニング
各RDBMSがサポートするパーティショニング機能を比較します。
セキュリティ
情報セキュリティと
アクセス制御に関する機能を比較します。
注記(2): パスワードの長さや複雑さを強制できるかどうかの比較です。
注記(3): セキュリティ情報が公開され、セキュリティアップデートが入手可能かどうかの比較です。リリースノートのみの場合は「部分的」とします。
注記(5): バックアップ、
監査、ユーザーや
データベース管理の権限を分離できるかどうかを比較します。
注記(6): Common Criteria認証を取得しているかどうかを比較します。
注記(7): FirebirdではSYSDBAユーザーとDB所有者の概念はありますが、バックアップやセキュリティ管理の権限を分離できません。
脚注
各項目の注記を参照してください。
関連項目
関係
データベース管理システム
データベース接続クライアント
en:Comparison of database tools
外部リンク
Comparison of different SQL implementations against
SQL standards (2007-06-08) - Oracle, DB2,
Microsoft SQL Server,
MySQL,
PostgreSQLの
SQL標準との比較。
The SQL92 standard