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

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

一般的な情報

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

対応オペレーティングシステム

[編集]

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

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

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

基本機能

[編集]

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

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

注記 (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 列を除く) [2]

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

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

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

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

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

インデックス

[編集]

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

R木/GiST ハッシュ 部分 逆順 ビットマップ 転置
4th Dimension ? Cluster ? ? ? ? ?
Adaptive Server Enterprise No No No No Yes No No
ALTIBASE Yes No No No No No No
Apache Derby No No No No No No No
DB2 No No Yes No Yes Yes No
Firebird No No Yes No Yes 1 No No
HSQLDB No No No No No No No
H2 Database No Yes No No No No No
Informix Dynamic Server Yes (GiST) Yes Yes Yes Yes Yes Yes
Ingres Yes Yes Yes No No Yes No
InterBase No No No No No No No
Microsoft Access No No No No No No No
Microsoft Visual FoxPro No No Yes Yes 式で代用 Yes No
Microsoft SQL Server No 2 Non/Cluster & fill factor Yes 3 Yes 3 No No No
MySQL MyISAM のみ MEMORY, NDB, InnoDB のみ No No No No MyISAM, Mroonga, InnoDB のみ
Oracle Database EE のみ Cluster Tables Yes 式で代用 Yes Yes No
PostgreSQL Yes (GiST) Yes Yes Yes 式で代用 No Yes
SQLite Yes No No No Yes No No

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

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

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

問い合わせ機能

[編集]

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

MERGE Intersect Except 外部結合 サブクエリ マージ結合 ハッシュ結合 再帰クエリ ウィンドウ関数
4th Dimension ? ? ? Yes No No ? ? ?
Adaptive Server Enterprise ? ? ? Yes Yes Yes ? ? ?
ALTIBASE No Yes Yes Yes Yes Yes Yes Yes No
Apache Derby ? Yes Yes Yes ? ? ? No No
DB2 Yes Yes Yes Yes Yes Yes Yes Yes Yes
Firebird Yes No No Yes Yes Yes No Yes No
HSQLDB ? Yes Yes Yes ? ? ? ? ?
H2 Database ? Yes Yes Yes Yes No ? No Yes
Informix Dynamic Server ? ? MINUS Yes Yes Yes ? ? ?
Ingres ? ? ? Yes Yes Yes ? ? ?
InterBase No No No Yes WHERE句のみ Yes No No No
Microsoft Access ? ? ? Yes Yes ? ? ? ?
Microsoft Visual FoxPro ? ? ? Yes Yes ? ? ? ?
Microsoft SQL Server Yes Yes Yes Yes Yes Yes Yes Yes Yes
MySQL REPLACE No No Yes Yes No No No No
Oracle Database Yes Yes MINUS Yes Yes Yes Yes CONNECT BY Yes
PostgreSQL No Yes Yes Yes Yes Yes Yes Yes Yes
SQLite REPLACE Yes Yes LEFTのみ Yes ? ? No 3.25+[4]

その他の機能

[編集]

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

ドメイン カーソル トリガ ストアドプロシージャ マテリアライズドビュー
4th Dimension Yes No Yes Yes No
Adaptive Server Enterprise Yes Yes Yes Yes No
ALTIBASE Yes Yes Yes Yes No
Apache Derby No Yes Yes Yes No
DB2 CHECKのみ Yes Yes SQL/PSM, PL/SQL Yes
Firebird Yes Yes Yes PSQL No
HSQLDB ? No Yes Yes No
H2 Database Yes No Yes Yes No
Informix Dynamic Server ? Yes Yes Yes Yes
Ingres Yes Yes Yes Yes No
InterBase Yes Yes Yes Yes No
Microsoft Access Yes No No No No
Microsoft Visual FoxPro No Yes Yes Yes Yes
Microsoft SQL Server Yes Yes Yes Transact-SQL, CLR Yes 1
MySQL No Yes Yes SQL/PSM No
Oracle Database Yes Yes Yes PL/SQL, Java Yes
PostgreSQL Yes Yes Yes PL/pgSQL No
SQLite No No Yes No No

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

パーティショニング

[編集]

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

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

セキュリティ

[編集]

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

通信暗号 総当たり攻撃耐性 ディレクトリ・サービス連携 パスワードの複雑さの強制 2 セキュリティ情報の公開 3 非特権ユーザでの実行 監査 資源制限 権限分離 5 セキュリティ認証
Adaptive Server Enterprise Yes ? Yes Yes Yes [5] Yes Yes Yes Yes EAL4+
DB2 Yes ? Yes Yes Yes [6] Yes Yes Yes Yes EAL4+ 6
Firebird No Yes [7] No Yes 部分的 [8] No No No No 7 No
H2 Database Yes Yes ? No ? Yes ? Yes Yes No
Ingres No Yes Yes Yes 部分的 [9] Yes Yes Yes Yes No
MySQL Yes No No No 部分的 [10] Yes No No ? No
Microsoft SQL Server Yes ? Yes Yes Yes [11] Yes Yes Yes Yes EAL1+ 6
Oracle Database Yes Yes Yes Yes Yes [12] ? Yes Yes ? EAL4+
PostgreSQL Yes No Yes [13] Yes [14] Yes [15] Yes No Yes No EAL1
SQLite No No No No 部分的 [16] Yes No No No No

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

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

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

注記 (6): Common Criteria certified product list

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

脚注

[編集]
  1. ^ BEGIN TRANSACTION”. SQL As Understood By SQLite. 2009年9月1日閲覧。
  2. ^ SAVEPOINT”. SQL As Understood By SQLite. 2009年9月1日閲覧。
  3. ^ Petkovic, Dusan (2005). Microsoft SQL Server 2005: A Beginner's Guide. McGraw-Hill Professional. pp. 300. ISBN 9780072260939 
  4. ^ Window Functions

関連項目

[編集]

外部リンク

[編集]