在以下的表格中,将對一些關系型資料庫管理系統的基本資訊和技術資訊進行對比。請參考以下産品各自的條目以獲得更詳細的介紹。該表格不可能包羅萬象,也許有些資訊已過時。除非注明,以下産品為各自的穩定版本,且沒有安裝任何形式的擴充程式。
目錄
|
[編輯] 基本資訊
維護者 | 首次發行日期 | 最新穩定版 | 軟體授權協定 | |
---|---|---|---|---|
4th Dimension | 4D s.a.s | 1984年 | 2004.5 | 專有 |
Adaptive Server Enterprise | Sybase | 1987年 | 15.0 | 專有 |
Apache Derby | Apache軟體基金會 | 2004年 | 10.4.1.3 | Apache許可證 |
DB2 | IBM | 1982年 | 9 | 專有 |
DBISAM | Elevate Software | ? | 4.25 | 專有 |
ElevateDB | Elevate Software | ? | 1.01 | 專有 |
Firebird | Firebird Foundation | 2000年7月25日 | 2.0.1 | Initial Developer's Public License |
Informix | IBM | 1985年 | 10.0 | 專有 |
HSQLDB | HSQL Development Group | 2001年 | 1.8.0 | BSD |
H2 | H2 Software | 2005年 | 1.0 | Freeware |
Ingres | Ingres Corp. | 1974年 | Ingres 2006 II 9.0.4 | GPL 與 專有 |
InterBase | CodeGear | 1985年 | 2007 | 專有 |
Sybase IQ | Sybase | 1996年 | 15.2 | 專有 |
MaxDB | MySQL AB, SAP AG | ? | 7.6 | GPL 或 專有 |
Microsoft SQL Server | Microsoft | 1989年 | 9.00.3042 (2005 SP2) | 專有 |
MonetDB | The MonetDB Developer Team | 2004年 | 4.16 (Feb. 2007) | MonetDB Public License v1.1 |
MySQL | MySQL AB | 2009年6月 | 5.1.36 | GPL 或 專有 |
HP 否nStop SQL | Hewlett-Packard | 1987年 | SQL MX 2.0 | 專有 |
Oracle | Oracle Corporation | 1979年11月 | 10g Release 2 | 專有 |
Oracle Rdb | Oracle Corporation | 1984年 | 7.2 | 專有 |
OpenEdge | Progress Software Corporation | 1984年 | 10.1B | 專有 |
OpenLink Virtuoso | OpenLink Software | 1998年 | 4.5.3 (April 2006) | GPL 或 專有 |
Pervasive PSQL | Pervasive Software | ? | 9 | 專有 |
PostgreSQL | PostgreSQL Global Development Group | 1989年6月 | 9.0.0 | BSD |
Pyrrho DBMS | University of Paisley | 2005年11月 | 0.5 | 專有 |
SmallSQL | SmallSQL | 2005年4月16日 | 0.12 | LGPL |
SQL Anywhere | Sybase | 1992年 | 10.0 | 專有 |
SQLite | D. Richard Hipp | 2000年8月17日 | 3.3.7 | Public domain |
Teradata | Teradata | 1984 | V2R6.2 | 專有 |
Valentina | Paradigma Software | 1998年2月 | 3.0.1 | 專有 |
Vertica | Vertica | 2005 | 4.0 | 專有 |
維護者 | 首次發行日期 | 最新穩定版 | 軟體授權協定 |
[編輯] 作業系統支援
這些資料庫所能支援的作業系統。
Windows | Mac OS X | Linux | BSD | UNIX | z/OS 1 | |
---|---|---|---|---|---|---|
4th Dimension | 是 | 是 | 否 | 否 | 否 | 否 |
Adaptive Server Enterprise | 是 | 是 | 是 | 是 | 是 | 否 |
Apache Derby 2 | 是 | 是 | 是 | 是 | 是 | 是 |
DB2 | 是 | 否 | 是 | 否 | 是 | 是 |
Firebird | 是 | 是 | 是 | 是 | 是 | 可能 |
HSQLDB 2 | 是 | 是 | 是 | 是 | 是 | 是 |
H2 2 | 是 | 是 | 是 | 是 | 是 | 可能 |
Informix | 是 | 是 | 是 | 是 | 是 | 否 |
Ingres | 是 | 否 | 是 | 是 | 是 | 可能 |
InterBase | 是 | 否 | 是 | 否 | 是 (Solaris) | 否 |
Adabas | 是 | 否 | 是 | 否 | 是 | 是 |
MaxDB | 是 | 否 | 是 | 否 | 是 | 可能 |
Microsoft SQL Server | 是 | 否 | 否 | 否 | 否 | 否 |
MonetDB | 是 | 是 | 是 | 否 | 是 | 否 |
MySQL | 是 | 是 | 是 | 是 | 是 | 可能 |
Oracle | 是 | 是 | 是 | 否 | 是 | 是 |
OpenEdge | 是 | 否 | 是 | 否 | 是 | 否 |
OpenLink Virtuoso | 是 | 是 | 是 | 是 | 是 | 是 |
PostgreSQL | 是 | 是 | 是 | 是 | 是 | 否 |
Pyrrho DBMS | 是 (.NET) | 否 | 是 (Mono) | 否 | 否 | 否 |
SmallSQL | 是 | 是 | 是 | 是 | 是 | 是 |
SQL Anywhere | 是 | 是 | 是 | 否 | 是 | 否 |
SQLite | 是 | 是 | 是 | 是 | 是 | 可能 |
Teradata | 是 | 否 | 是 | 否 | 是 | 否 |
Valentina | 是 | 是 | 是 | 否 | 否 | 否 |
Windows | Mac OS X | Linux | BSD | UNIX | z/OS 1 |
注記 (1): 清單中标明了UNIX相容的開源資料庫可以在z/OS的内建子系統UNIX系統服務(USS)下編譯和運作。大部分Linux相容的資料庫可以與z/OS在同一台伺服器上通過Linux on zSeries運作。
注記 (2): 該項受該平台上Java虛拟機的可用性制約。
[編輯] 基本功能
資料庫系統所能實作的基本功能對比。
ACID | 關聯完整性 | 資料庫事務 | Unicode萬國碼 | |
---|---|---|---|---|
Adaptive Server Enterprise | 是 | 是 | 是 | 是 |
Apache Derby | 是 | 是 | 是 | 是 |
DB2 | 是 | 是 | 是 | 是 |
Firebird | 是 | 是 | 是 | 是 |
HSQLDB | 是 | 是 | 是 | 是 |
H2 | 是 | 是 | 是 | 是 |
Informix | 是 | 是 | 是 | 是 |
Ingres | 是 | 是 | 是 | 是 |
InterBase | 是 | 是 | 是 | 是 |
MaxDB | 是 | 是 | 是 | 是 |
Microsoft SQL Server | 是 | 是 | 是 | 是 |
MonetDB | 是 | 是 | 是 | 是 |
MySQL | 是 3 | 是 3 | 是 3 | 是 |
Oracle | 是 | 是 | 是 | 是 |
OpenEdge | 是 | 否 | 是 | 是 |
OpenLink Virtuoso | 是 | 是 | 是 | 是 |
PostgreSQL | 是 | 是 | 是 | 是 |
Pyrrho DBMS | 是 | 是 | 是 | 是 |
SQL Anywhere | 是 | 是 | 是 | 是 |
SQLite | 是 | 否 4 | Basic 4 | 是 |
Teradata | 是 | 是 | 是 | 是 |
Valentina | 否 | 是 | 否 | 是 |
ACID | 關聯完整性 | 資料庫事務 | Unicode萬國碼 |
注記 (3): 需要使用InnoDB格式資料表才能實作關聯完整性限制與事務。 然而,InnoDB格式資料表仍舊允許存儲的資料超出資料範圍;一些觀點認為它由此違反了ACID的完整性限制。
注記 (4): 外聯鍵限制在文法上有效,但實際上并不能得到強制執行,可使用觸發器替代。不支援嵌套事務。[1]
[編輯] 表與視圖
臨時表 | 物化視圖(Materialized view) | |
---|---|---|
Adaptive Server Enterprise | 是 5 | 否 |
Apache Derby | 是 | 否 |
DB2 | 是 | 是 |
Firebird | Will be in 2.1 | 否 (only common views) |
HSQLDB | 是 | 否 |
H2 | 是 | 否 |
Informix | 是 | 是 |
Ingres | 是 | Ingres r4 |
InterBase | 是 | 否 |
MaxDB | 是 | 否 |
Microsoft SQL Server | 是 | 是 |
MonetDB | 是 | 否 |
MySQL | 是 | 否 6 |
Oracle | 是 | 是 |
OpenEdge | 是 | 否 |
OpenLink Virtuoso | 是 | 是 |
PostgreSQL | 是 | 否 7 |
Pyrrho DBMS | 否 | 否 |
SQL Anywhere | 是 | 是 |
SQLite | 是 | 否 |
Teradata | 是 | 是 |
Valentina | 是 | 否 |
臨時表 | 物化視圖(Materialized view) |
注記 (5): 伺服器提供臨時資料庫,可供會話存放公共/私有的臨時表。[2]
注記 (6): 物化視圖可用存儲過程和觸發器模拟[3]。
注記 (7): 物化視圖可用PL/pgSQL,PL/Perl,PL/Python或其他過程語言的存儲過程和觸發器模拟。 [4].
[編輯] 索引
資料庫所支援的索引類型(除基本的B樹外)
R-/R+ tree | 哈希 | Expression | 部分索引(Partial index) | 反向索引(Reverse index) | 位圖索引(Bitmap) | GiST | GIN | |
---|---|---|---|---|---|---|---|---|
Adaptive Server Enterprise | 否 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
Apache Derby | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
DB2 | 否 | ? | 否 | 否 | 是 | 是 | 否 | 否 |
Firebird | 否 | 否 | 是 | 否 | 是 16 | 否 | 否 | 否 |
HSQLDB | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
H2 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
Informix | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 |
Ingres | 是 | 是 | Ingres r4 | 否 | 否 | Ingres r4 | 否 | 否 |
InterBase | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
MaxDB | ? | ? | 否 | 否 | 否 | 否 | 否 | 否 |
Microsoft SQL Server | ? | 否n/Cluster & fill factor | 是 8 | 是 9 | 是 8 | 否 | 否 | 否 |
MonetDB | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
MySQL | 僅限MyISAM | MEMORY, Cluster (NDB), 僅限InnoDB,17 | 否 | 否 | 否 | 否 | 否 | 否 |
Oracle | EE edition only | Cluster Tables | 是 | 是 15 | 是 | 是 | 否 | 否 |
OpenLink Virtuoso | 是 | Cluster | 是 | 否 | 否 | 是 | 否 | 否 |
PostgreSQL | 是 | 是 | 是 | 是 | 是 10 | 否 11 | 是 | 是 |
Pyrrho DBMS | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
SQL Anywhere | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
SQLite | 否 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
Teradata | 否 | 是 | 是 | 是 | 否 | 是 | 否 | 否 |
Valentina | 否 | 否 | 是 8 | 是 17 | 是 | 是 | 否 | 否 |
R-/R+ tree | 哈希 | Expression | 部分索引(Partial index) | 反向索引(Reverse index) | 位圖索引(Bitmap) | GiST | GIN |
注記 (8): 可通過索引一個經過計算的列,或使用一個已索引的視圖實作 [5]
注記 (9): 可使用索引視圖實作。 [6]
注記 (17): InnoDB自動按需生成 adaptive hash index。
注記 (10): 一個有效的PostgreSQL索引可以用來進行倒排序。
注記 (11): PostgreSQL将在8.3中支援儲存于磁盤的位圖索引。8.2提供了一種稱為"記憶體位圖掃描(in-memory bitmap scans)"的相關技術。
注記 (15): 在Oracle 8i及以後的版本可使用基于函數的索引(Function-based Indexes)實作。
注記 (16): The users need to use a function from freeAdhocUDF library or similar. [7]
注記 (17): 在Valentina中可使用基于函數的索引(Function-based Indexes)實作。
[編輯] 其他對象
有關其他類型對象的支援情況。
資料域 | 遊标 | 觸發器 | 函數 12 | 存儲過程 12 | 外部調用 12 | |
---|---|---|---|---|---|---|
Adaptive Server Enterprise | 是 | 是 | 是 | 是 | 是 | 是 |
Apache Derby | 否 | 是 | 是 | 是 13 | 是 13 | 是 13 |
DB2 | 否 | 是 | 是 | 是 | 是 | 是 |
Firebird | 是 | 是 | 是 | 是 | 是 | 是 |
HSQLDB | ? | 否 | 是 | 是 | 是 | 是 |
H2 | 是 | 否 | 是 | 是 | 是 | 是 |
Informix | ? | 是 | 是 | 是 | 是 | 是 |
Ingres | 是 | 是 | 是 | 是 | 是 | 是 |
InterBase | 是 | 是 | 是 | 是 | 是 | 是 |
MaxDB | 是 | 是 | 是 | 是 | 是 | ? |
Microsoft SQL Server | 是 (2000 and beyond) | 是 | 是 | 是 | 是 | 是 |
MonetDB | 否 | 否 | 是 | 是 | 是 | 是 |
MySQL | 否 | 是 | 是 | 是 | 是 | 是 |
Oracle | 是 | 是 | 是 | 是 | 是 | 是 |
OpenLink Virtuoso | 是 | 是 | 是 | 是 | 是 | 是 |
PostgreSQL | 是 | 是 | 是 | 是 | 是 | 是 |
Pyrrho DBMS | 是 | 是 | 是 | 是 | 是 | 是 |
SQL Anywhere | 是 | 是 | 是 | 是 | 是 | 是 |
SQLite | 否 | 否 | 是 | 否 | 否 | 是 |
Teradata | 否 | 是 | 是 | 是 | 是 | 是 |
Valentina | 否 | 是 | 是 | 否 | 是 | 否 |
資料域 | 遊标 | 觸發器 | 函數 12 | 存儲過程 12 | 外部調用 |
注記 (12): 以上函數和存儲過程都是指使用SQL或者過程語言(如PL/SQL、PL/pgSQL等)編寫的内部程式調用。外部調用是指使用其他外部語言,如C、Java等語言編寫的調用。存儲過程是這類調用的籠統稱呼,在不同的供應商系統中,它們往往有着不同的定義。
注記 (13): In Derby, users code functions and procedures in Java.
[編輯] 資料表分區
範圍(Range) | 哈希(Hash) | 混合(範圍+哈希) | 清單(List) | |
---|---|---|---|---|
Adaptive Server Enterprise | 是 | 是 | 否 | 是 |
Apache Derby | 否 | 否 | 否 | 否 |
IBM DB2 | 是 | 是 | 是 | 是 |
Firebird | 否 | 否 | 否 | 否 |
Informix | 是 | 是 | ? | ? |
Ingres | 是 | 是 | 是 | 是 |
InterBase | 否 | 否 | 否 | 否 |
MaxDB | 否 | 否 | 否 | 否 |
Microsoft SQL Server | 是 | 否 | 否 | 否 |
MonetDB | 是 (M5) | 是 (M5) | 是 (M5) | 否 |
MySQL | 是 (5.1 beta) | 是 (5.1 beta) | 是 (5.1 beta) | 是 (5.1 beta) |
Oracle | 是 | 是 | 是 | 是 |
OpenLink Virtuoso | 是 | 否 | 否 | 否 |
PostgreSQL | 是 14 | 是 14 | 是 14 | 是 14 |
Pyrrho DBMS | 否 | 否 | 否 | 否 |
SQL Anywhere | 否 | 否 | 否 | 否 |
SQLite | 否 | 否 | 否 | 否 |
Teradata | 是 | 是 | 是 | 是 |
Valentina | 否 | 否 | 否 | 否 |
範圍(Range) | 哈希(Hash) | 混合(範圍+哈希) | 清單(List) |
注記 (14): PostgreSQL 8.1 提供了使用check限制實作的資料表分區。範圍、清單以及哈希分區可通過PL/pgSQL或者其他過程語言模拟。[8]
[編輯] 資料庫與模式(Schemas)
SQL标準明确了SQL模式(SQL schema)的定義,然而,許多資料庫對它的實作并不正确。SQL模式是指一個資料庫内部的名字空間,此空間内部的對象可以通過成員操作符
.
通路。
一個完整名字的查詢類似這種形式:
select * from database.schema.table
。
[編輯] 參看
- 關系型資料庫管理系統清單
[編輯] 外部連接配接
- [9] 各種SQL标準實作的對比,包括Oracle, DB2, Microsoft SQL Server, MySQL 與 PostgreSQL. (08/Jun/2007)
- Comparison of Oracle 8/9i, MySQL 4.x and PostgreSQL 7.x DBMS against SQL standards. (14/Mar/2005)
- Comparison of Oracle and SQL Server. (2004)
- Comparison of geometrical data handling in PostgreSQL, MySQL and DB2 (29/Sep/2003)
- Open Source Database Software Comparison (Mar/2005)
- PostgreSQL vs. MySQL vs. Commercial Databases: It's All About What You Need (12/Apr/2004)
- The SQL92 standard
資料庫管理系統(DBMS) ( 檢視 • 讨論 • 編輯 • 曆史 ) | |
概念 資料庫 · 資料庫模型 · 資料庫存儲結構(英語:Database storage structures) · 關系 (資料庫) · 關系模型 · 分布式資料庫 · ACID · Null值 關系資料庫 · 關系代數 · 關系演算 · 元組關系演算 · 域關系演算 · 資料庫規範化 · 參照完整性 · 關系資料庫管理系統 主鍵 · 外鍵 · 代理鍵 · 超鍵 · 候選鍵 | |
資料庫元件 觸發器 · 視圖 · 資料庫表 · 名額 (資料庫) · 事務日志(英語:Transaction log) · 資料庫事務 · 資料庫索引 存儲程式 · 資料庫分割 | SQL 分類: 資料查詢語言DQL · 資料定義語言DDL · 資料操縱語言DML · 資料控制語言DCL 指令:SELECT · INSERT · UPDATE · MERGE · DELETE · JOIN · UNION · CREATE · DROP · Begin work · COMMIT · ROLLBACK · TRUNCATE · ALTER 安全: SQL資料隐碼攻擊 · 參數化查詢 |
資料庫管理系統的實施 | |
實施類型 關系資料庫 · 檔案型資料庫 · Deductive · 次元化資料庫 · 階層式 · 圖形資料庫 · 對象資料庫 · 物件關聯式資料庫 · Temporal · XML資料庫 | |
資料庫産品 對象型 (對比) · 關系型 (對比) | 資料庫成分 查詢語言 · 查詢最佳化器 · 查詢計劃 · 嵌入式SQL · ODBC · JDBC · OLE DB |
來自“ http://zh.wikipedia.org/w/index.php?title=%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E6%AF%94%E8%BE%83&oldid=17972922” 2個分類:
- 軟體比較
- 資料庫管理系統