程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 主流開源數據庫的技術特點點評

主流開源數據庫的技術特點點評

編輯:Oracle數據庫基礎

【導讀】隨著開放源代碼軟件的使用越來越廣泛,開放源代碼數據庫的出現也有其必然性。以MySQL、PostgreSQL為代表的開放源代碼的數據庫系統,推動了開源軟件事業的發展。

隨著開放源代碼軟件的使用越來越廣泛,像Linux操作系統一樣,開放源代碼數據庫的出現也有其必然性。在當Oracle、IBM、Microsoft、Sybase 等幾大數據庫廠商在數據庫領域處於壟斷地位的時候,出現了以MySQL、PostgreSQL為代表的開放源代碼的數據庫系統,推動了開源軟件事業的發展。開源數據庫系統並不是一個新事物,如Postgres(PostgreSQL的前身)已經有20年的發展歷史了,而著名的MySQL今年4月剛剛度過了其10周年紀念活動。

1、MySQL

MySQL是瑞典的T.c.X公司負責開發和維護的,它是一個真正的多用戶、多線程SQL數據庫服務器。MysQL是以一個客戶機/服務器結構實現其功能的,它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。SQL是一種標准化的語言,它使得存儲、更新和存取信息更容易。MySQL主要特點是快速、健壯和易用。MySQL的官方發音是“My Ess Que Ell”(不是MY-SEQUEL)。目前MySQL的最新版本是5.0,MySQL的網址是:http://www.mysql.com,MySQL的標志是一個小海豚。見圖-1。

  

圖-1 MySQL 標志

MySQL的技術特點:

1. 它使用的核心線程是完全多線程,支持多處理器。

2. 有多種列類型:1、2、3、4、和8字節長度自有符號/無符號整數、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類型。

3. 它通過一個高度優化的類庫實現SQL函數庫並像他們能達到的一樣快速,通常在查詢初始化後不該有任何內存分配。沒有內存漏洞。

4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來自不同數據庫的表。

5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。

6. 所有列都有缺省值。你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設置為他們的決省值。

7. MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCL API。

MaxDB是2003年SAP公司和MySQL AB公司合作之後SAP DB新的名稱。MaxDB是一款重量級的、獲得SAP R/3認證,適宜於聯機事務處理和聯機分析處理等多種業務類型的高可用性、高可靠性和極具伸縮性的數據庫,支持大容量的用戶和並發業務操作,采用多線程多進程的服務器設計,支持多處理器的應用,並通過集群和熱部署提供高可靠性,支持TB級的海量數據,支持企業級的數據同步和復制等復雜應用。

2. PostgreSQL

PostgreSQL是一種運行在Unix和Linux操作系統(在NT平台借助Cygnus也可以運行)平台上的免費的開放源碼的關系數據庫。最早是由美國加州大學伯克利分校開發的,開始只是作為一個演示系統發表,但是隨著時間的推移,逐步分發,得到很多實際的應用,才逐步流行起來。PostgreSQ的網址是http://www.postgresql.org/,最新版本是2005年10月4日發布的8.0.4。PostgreSQL的官方發音是:Post-gres-Q-L。 PostgreSQ的標志是一個大象,見圖-2。

 

 圖2 PostgreSQL 標志

PostgreSQL的技術特點:

1. 支持SQL。作為關系數據庫,它支持SQL89標准也支持部分SQL92大部分功能。

2. 有豐富的數據類型。許多數據類型是一些商業數據庫都沒有提供的。

3. 面向對象。它包含了一些面向對象的技術,如繼承和類。

4. 支持大數據庫,它不同於一般的桌面數據庫,能夠支持幾乎不受限制大小的數據庫,而且性能穩定。

5. 方便集成web,提供一些接口方便 PHP,Perl等語言操作數據庫。

6. 事務處理。相對一些其他免費數據庫如MySQL,他提供了事務處理,可以滿足一些商業領域的數據需要。

7. PostgreSQL運行速度明顯低於MySQL。因為MySQL使用了線程,而PostgreSQL使用的是進程。在不同線程之間的環境轉換和訪問公用的存儲區域顯然要比在不同的進程之間要快得多。

3. Firebird

2000年7月,Borland(即現在的Inprise)公司公布了其數據庫產品Interbase的源代碼。Firebird數據庫就是從該數據庫中派生出來的。當時,Interbase是與客戶/服務器版本的Delphi產品捆綁在一些銷售的。現在,Interbase已經變成了一只開放源碼中的“火鳥”。 Firebird 網址是http://firebird.sourceforge.Net/ ,最新版本是2005年8月5日發布的1.5.3。的標志是一只“火鳥”,見圖-3。

 

 圖-3 Firebird 標志

Firebird的技術特點

Firebird相對MySQL和PostgreSQL來說比較小,其RPM版本只有3.0MB。這也使其可以稱得上是理想的“嵌入式數據庫”,可用於與其它應用程序服務器和應用程序捆綁。Firebird具有大部分成熟數據庫所具有的功能,比如支持存儲過程、SQL兼容等。如果用戶有使用DB2或PostgreSQL的經驗,就會發現Firebird與它們的語法非常相似,數據類型和數據處理方式也很類似。 Firebird的設計思想是小型、快速和最小化的管理。這對於需要一個數據庫用於存儲數據,但又不想花太多時間來調整數據性能的開發人員很適用。實際上在很多情況下,我們並不需要存儲程序或復雜的表之間的關聯。這時會發現Firebird在大小和功能之間找到了一個理想的平衡點。

現在有兩個版本的Firebird服務器軟件可供下載,分別是Firebird Super Server和Firebird Classic Server。簡單來說,二者的區別在於設計的方法不同。Super Server使用線程同時為多個客戶連接提供服務,而Classic Server使用的則是Interbase的方法,采用為每個連接提供一個獨立服務器進程的方式。如果想對二者的區別有更多的了解,可查看http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_ss_vs_classic。對於“嵌入式數據庫”的用戶,這兩個版本之間沒有太大的區別。從理論上講,如果應用程序的用戶很多,那麼Super Server將是一個較好的選擇。

4. mSQL

mSQL(mini SQL)是一個單用戶數據庫管理系統,個人使用免費,商業使用收費。由於它的短小精悍,使其開發的應用系統特別受到互聯網用戶青睐。mSQL(mini SQL)是一種小型的關系數據庫,性能不是太好,對SQL語言的支持也不夠完全,但在一些網絡數據庫應用中是足夠了。由於mSQL較簡單,在運行簡單的SQL語句時速度比MySQL略快,而MySQL在線程和索引上下了功夫,運行復雜的SQL語句時比mSQL,PostgreSQL等都要快一些。MSQL的網址是:http://www.hughes.com.au ,最新版本是2005年5月8日發布的3.7。MSQL的標志是一個鹿。見圖-2。

 

圖4 mSQL 標志

mSQL的技術特點:

安全性方面,mSQL通過ACL文件設定各主機上各用戶的訪問權限,缺省是 全部可讀/寫。mSQL缺乏 ANSI SQL 的大多數特征,它僅僅實現了一個最最少的API,沒有事務和參考完整性。mSQL與Lite(一種類似C的腳本語言,與分發一起發行)緊密結合,可以得到一個稱為 W3-mSQL的一個網站集成包,它是JDBC、ODBC、Perl和PHP API。

嵌入式數據庫

嵌入式數據庫的名稱來自其獨特的運行模式。這種數據庫嵌入到了應用程序進程中,消除了與客戶機服務器配置相關的開銷。嵌入式數據庫實際上是輕量級的,在運行時,它們需要較少的內存。它們是使用精簡代碼編寫的,對於嵌入式設備,其速度更快,效果更理想。嵌入式運行模式允許嵌入式數據庫通過 SQL 來輕松管理應用程序數據,而不依靠原始的文本文件。嵌入式數據庫還提供零配置運行模式,這樣可以啟用其中一個並運行一個快照。

5. Berkeley DB

像MySQL這類基於C/S結構的關系型數據庫系統雖然代表著目前數據庫應用的主流,但卻並不能滿足所有應用場合的需要。有時我們需要的可能只是一個簡單的基於磁盤文件的數據庫系統。這樣不僅可以避免安裝龐大的數據庫服務器,而且還可以簡化數據庫應用程序的設計。Berkeley DB正是基於這樣的思想提出來的。官方網址是:http://www.sleepycat.com/ ,最新版本是2005年8月5日發布的4.3。的標志是一只“貓”,見圖-4。

 

圖5 Berkeley DB 標志

Berkeley DB的技術特點:

Berkeley DB是一個開放源代碼的內嵌式數據庫管理系統,能夠為應用程序提供高性能的數據管理服務。應用它程序員只需要調用一些簡單的API就可以完成對數據的訪問和管理。與常用的數據庫管理系統(如MySQL和Oracle等)有所不同,在Berkeley DB中並沒有數據庫服務器的概念。應用程序不需要事先同數據庫服務建立起網絡連接,而是通過內嵌在程序中的Berkeley DB函數庫來完成對數據的保存、查詢、修改和刪除等操作。

Berkeley DB為許多編程語言提供了實用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數據庫相關的操作都由Berkeley DB函數庫負責統一完成。這樣無論是系統中的多個進程,或者是相同進程中的多個線程,都可以在同一時間調用訪問數據庫的函數。而底層的數據加鎖、事務日志和存儲管理等都在Berkeley DB函數庫中實現。它們對應用程序來講是完全透明的。俗話說:“麻雀雖小五髒俱全。”Berkeley DB函數庫本身雖然只有300KB左右,但卻能夠用來管理多達256TB的數據,並且在許多方面的性能還能夠同商業級的數據庫系統相抗衡。就拿對數據的並發操作來說,Berkeley DB能夠很輕松地應付幾千個用戶同時訪問同一個數據庫的情況。此外,如果想在資源受限的嵌入式系統上進行數據庫管理,Berkeley DB可能就是惟一正確的選擇了。

Berkeley DB作為一種嵌入式數據庫系統在許多方面有著獨特的優勢。首先,由於其應用程序和數據庫管理系統運行在相同的進程空間當中,進行數據操作時可以避免繁瑣的進程間通信,因此耗費在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數調用接口來完成所有的數據庫操作,而不是在數據庫系統中經常用到的SQL語言。這樣就避免了對結構化查詢語言進行解析和處理所需的開銷。

6. SQLite

SQLite 是 D. Richard Hipp 用 C 語言編寫的開源嵌入式數據庫引擎。它是完全獨立的,不具有外部依賴性。它是作為 PHP V4.3 中的一個選項引入的,構建在 PHP V5 中。SQLite 支持多數 SQL92 標准,可以在所有主要的操作系統上運行,並且支持大多數計算機語言。SQLite 還非常健壯。其創建者保守地估計 SQLite 可以處理每天負擔多達 100,00 次點擊率的 Web 站點,並且 SQLite 有時候可以處理 10 倍於上述數字的負載。SQLite 的網址是,最新版本是2005年9月24日發布的3.2.7 。SQLite的標志是一只羽毛,見圖-5。

 

圖6 SQLite標志

SQLite的技術特點:

SQLite 對 SQL92 標准的支持包括索引、限制、觸發和查看。SQLite 不支持外鍵限制,但支持原子的、一致的、獨立和持久 (ACID) 的事務(後面會提供有關 ACID 的更多信息)。這意味著事務是原子的,因為它們要麼完全執行,要麼根本不執行。事務也是一致的,因為在不一致的狀態中,該數據庫從未被保留。事務還是獨立的,所以,如果在同一時間在同一數據庫上有兩個執行操作的事務,那麼這兩個事務是互不干擾的。而且事務是持久性的,所以,該數據庫能夠在崩潰和斷電時幸免於難,不會丟失數據或損壞。SQLite 通過數據庫級上的獨占性和共享鎖定來實現獨立事務處理。這意味著當多個進程和線程可以在同一時間從同一數據庫讀取數據,但只有一個可以寫入數據。在某個進程或線程向數據庫執行寫入操作之前,必須獲得獨占鎖定。在發出獨占鎖定後,其他的讀或寫操作將不會再發生。

總結:目前的開源數據庫還不能在功能和處理能力方面追上商業級產品,但價格的侵蝕力無法回避,開源數據庫迅速增長的市場份額甚至讓數據庫領域的三巨頭,Oracle、IBM、微軟都感到忐忑不安。開源數據庫的用戶在增長,並正在被越來越多的用戶所采用。在嵌入式數據庫領域,開源數據庫優勢更加明顯。分析師稱開放源碼正在迅速被數據庫技術所采用。開放源碼“從2000年被懷疑到2005年已經發展成為全球的主流技術”。低成本甚至免費的開源數據庫時代即將來臨。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved