関係データベース管理システムの比較

関係データベース管理システムの比較（かんけいデータベースかんりシステムのひかく）では、関係データベース管理システムの比較について説明する。特記されていない限り、アドオンや外部プログラムを含まない、最新の安定バージョンに基づいて比較を行っている。

 一般的な情報 
 開発元 初回リリース 最新リリース 最新バージョン ライセンス 4th Dimension 4D s.a.s 1984   11.7 プロプライエタリ ADABAS Software AG 1970 8.1 プロプライエタリ Adaptive Server Enterprise Sybase 1987  15.5 プロプライエタリ ALTIBASE ALTIBASE Corp. 2000-07 5.1.1 プロプライエタリ Apache Derby Apacheソフトウェア財団 2004  10.6.2.1 Apache License DB2 IBM 1982 2009-05 9.7 プロプライエタリ FileMakerクラリス 1984  13.0v3プロプライエタリ Firebird Firebird project 2000-07  2.5 IPL, IDPL HSQLDB HSQL Development Group 2001  2.0 BSD H2 Database H2 Software 2005  1.2.145 EPL, 修正MPL HiRDB 日立製作所 1994  9.1 プロプライエタリ Informix Dynamic Server IBM 1985  11.70 プロプライエタリ Ingres Ingres Corp. 1974  9.3 GPL, プロプライエタリ InterBase エンバカデロ・テクノロジーズ 1985 2010-09 10.0 プロプライエタリ MariaDB Monty Program Ab 2010-02  10.1.11 GPL Microsoft Access マイクロソフト 1992  14 プロプライエタリ Microsoft Visual FoxPro マイクロソフト 1984 2005 9 プロプライエタリ Microsoft SQL Server マイクロソフト 1989 2016 v13.0 プロプライエタリ MySQL オラクル 1995-11  5.7.11 GPL, プロプライエタリ Oracle Database オラクル 1979-11 2013-06 12c Release 1 プロプライエタリ PostgreSQL PostgreSQL Global Development Group 1989-06  9.5.1 TPL SQLite D. Richard Hipp 2000-08  3.11.0 パブリックドメイン Symfoware Server 富士通 1995-10 2010-01 10.0 プロプライエタリ

 対応オペレーティングシステム 
サポートするオペレーティングシステムの比較を以下に示す。

 Windows macOS Linux BSD UNIX 4th Dimension      ADABAS      Adaptive Server Enterprise      ALTIBASE      Apache Derby 1      DB2      Firebird      HSQLDB 1      H2 Database 1      FileMaker      Informix Dynamic Server      Ingres      InterBase      Microsoft Access      Microsoft Visual FoxPro      Microsoft SQL Server      MySQL      MariaDB      Oracle Database      PostgreSQL      SQLite     

注記 (1): 利用可能か否かはオペレーティングシステムではなくJava仮想マシンに依存する。</cite>

 基本機能 
基本的な機能の比較を以下に示す。

 ACID 参照整合性 トランザクション MVCC 2相コミット Unicode 4th Dimension       Adaptive Server Enterprise       ALTIBASE       Apache Derby       DB2     4   Firebird       HSQLDB       H2 Database       Informix Dynamic Server       Ingres     5   InterBase       Microsoft Access       Microsoft Visual FoxPro       Microsoft SQL Server     3   MySQL  1  1  1  1  1  2 Oracle Database       PostgreSQL       SQLite       

注記 (1): InnoDB でのみ利用できる。MyISAM では利用できない。

注記 (2): Unicodeの補助文字 (supplementary character)への対応はMySQL 5.5以降。

注記 (3): SQL Server 2005以降のREAD_COMMITTED_SNAPSHOT。

注記 (4): DB2 9.7以降のCS with CC。

注記 (5): Ingres 10以降のMVCC利用可能にしたDBに対して、システム単位(SYSTEM_LOCK_LEVEL=MVCC)で指定、もしくはセッション(SET LOCKMODE SESSION WHERE LEVEL = MVCC)、テーブル単位(SET LOCKMODE ON テーブル WHERE LEVEL = MVCC)で指定する。

 数量制限 
数量制限の比較を以下に示す。

 全体サイズ 表サイズ 行サイズ 列数 データサイズ 文字列型 数値型 識別子サイズ 4th Dimension 無制限 ? ? 65135 200GB 200GB 64bits ? ALTIBASE 無制限 ? ? 1024 2GB 2GB 64bits 32 DB2 512TB 512TB 32,677B 1012 2GB 32KB 64bits 128 Firebird 無制限 32TB 64KB 列構成に依存 2GB 32,767B 64bits 31文字 H2 Database 256GB  7 無制限 8 無制限 8 無制限 8 256GB 無制限 8 64bits 無制限 8 Ingres 無制限 無制限 256KB 1024 2GB 32,000B 64bits ? InterBase 無制限 32TB 64KB 列構成に依存 2GB 32,767B 64bits 67バイト Microsoft Access 2GB 2GB 16 MB 255 64KB 255B 32bits ? Microsoft Visual FoxPro 無制限 2GB 65,500B 255 2GB 16 MB 32bits ? Microsoft SQL Server 512PB 512PB 無制限 30000 2GB 2GB 6 1038 128 MySQL 無制限 16TB 8000B or 64KB 3 1000 or 4096 4 4GB 64KB 64bits 64 Oracle Database 無制限 128TB 無制限 1000 無制限 4000B 126bits 30 PostgreSQL 無制限 32TB 約8000B or 1.6TB 5 列構成に依存 (250-1600) 1GB 1GB 101000 63 SQLite 32TB ? ? 32767 1GB 1GB 64bits ?

注記 (3): InnoDB では 8000 バイトまで。(VARBINARY, VARCHAR, BLOB, TEXT 列を除く) 

注記 (4): InnoDB では 1000 列まで。

注記 (5): PostgreSQL のサイズは text, bytea, xml 等を除外して約8000バイトが最大。

注記 (6): SQL Server 2005 以降の VARCHAR(MAX) を用いた場合。

注記 (7): H2 Database のサイズは BLOB と CLOB を除外して計算する。

注記 (8): Java の配列型の制限 (231) が識別子サイズ、行数、列数、文字数などに影響する。

 インデックス 
B-/B+木 インデックス以外のインデックスの比較を以下に示す。

 R木/GiST ハッシュ 式 部分 逆順 ビットマップ 転置 4th Dimension        Adaptive Server Enterprise        ALTIBASE        Apache Derby        DB2        Firebird      1   HSQLDB        H2 Database        Informix Dynamic Server  (GiST)       Ingres        InterBase        Microsoft Access        Microsoft Visual FoxPro        Microsoft SQL Server  2   3  3    MySQL        Oracle Database        PostgreSQL  (GiST)       SQLite       

注記 (1): freeAdhocUDF ライブラリの関数が必要がある。

注記 (2): SQL Server 2008以降空間インデックスがサポートされたがBツリーを使用して構築される。

注記 (3): 計算列でのインデックス作成 または ビューでのインデックス作成 で代用する。

 問い合わせ機能 
問い合わせ機能の比較を以下に示す。全てのデータベースでサポートされている以下の機能は省略する。

 内部結合
 Union
 BLOB および CLOB

 MERGE Intersect Except 外部結合 サブクエリ マージ結合 ハッシュ結合 再帰クエリ ウィンドウ関数 4th Dimension          Adaptive Server Enterprise          ALTIBASE          Apache Derby          DB2          Firebird          HSQLDB          H2 Database          Informix Dynamic Server          Ingres          InterBase          Microsoft Access          Microsoft Visual FoxPro          Microsoft SQL Server          MySQL          Oracle Database          PostgreSQL          SQLite         Window Functions

 その他の機能 
その他の機能の比較を以下に示す。

 ドメイン カーソル トリガ ストアドプロシージャ マテリアライズドビュー 4th Dimension      Adaptive Server Enterprise      ALTIBASE      Apache Derby      DB2      Firebird      HSQLDB      H2 Database      Informix Dynamic Server      Ingres      InterBase      Microsoft Access      Microsoft Visual FoxPro      Microsoft SQL Server      1 MySQL      Oracle Database      PostgreSQL      SQLite     

注記 (1): クエリ最適化のサポートは Developer と Enterprise 版のみ。その他の版ではマテリアライズドビューへの直接参照とクエリヒントが必要になる。.

 パーティショニング 
パーティショニングの比較を以下に示す。

 範囲 ハッシュ 複合 リスト Adaptive Server Enterprise     ALTIBASE     Apache Derby     IBM DB2     Firebird     HSQLDB     H2 Database     Informix Dynamic Server     Ingres     InterBase     Microsoft Access     Microsoft Visual FoxPro     Microsoft SQL Server     MySQL     Oracle Database     PostgreSQL     SQLite    

 セキュリティ 
情報セキュリティとアクセス制御の比較を以下に示す。

 通信暗号化 総当たり攻撃耐性 ディレクトリ・サービス連携 パスワードの複雑さの強制 2 セキュリティ情報の公開 3 非特権ユーザでの実行 監査 資源制限 権限分離 5 セキュリティ認証 Adaptive Server Enterprise            DB2            6 Firebird            7  H2 Database           Ingres            MySQL            Microsoft SQL Server            6 Oracle Database            PostgreSQL              SQLite           

注記 (2): パスワードの長さの下限や使用する文字の複雑さを強制できるか否か。

注記 (3): セキュリティ情報が公開されており、セキュリティ・アップデートを手に入れられるか否か。リリースノートには記載されていても専用のページを持たない場合は「部分的」とする。

注記 (5): バックアップ、監査、ユーザやデータベースの管理を行う権限を分離できるか否か。

注記 (6): Common Criteria certified product list</cite>

注記 (7): Firebird には SYSDBA ユーザと DB 所有者の概念はあるが、バックアップやセキュリティ管理の権限を分離することはできない。</cite>

 脚注 

 関連項目 
 関係データベース管理システム
 データベース接続クライアント
 :en:Comparison of database tools

 外部リンク 
 Comparison of different SQL implementations against SQL standards. Includes Oracle, DB2, Microsoft SQL Server, MySQL and PostgreSQL. (2007-06-08)
 The SQL92 standard

*
Category:ソフトウェアの比較