日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

點(diǎn)評(píng)主流開(kāi)源數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn) --SQLite 中文社區(qū)-- http://www.sqlite.com.cn/

 ekylin 2006-06-23
點(diǎn)評(píng)主流開(kāi)源數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)
作者:曹江華  來(lái)源:Internet  時(shí)間:2006-5-11  【 字體: 】 〖 雙擊滾屏 〗

隨著開(kāi)放源代碼軟件的使用越來(lái)越廣泛,像Linux操作系統(tǒng)一樣,開(kāi)放源代碼數(shù)據(jù)庫(kù)的出現(xiàn)也有其必然性。在當(dāng)Oracle、IBM、Microsoft、Sybase

等幾大數(shù)據(jù)庫(kù)廠商在數(shù)據(jù)庫(kù)領(lǐng)域處于壟斷地位的時(shí)候,出現(xiàn)了以MySQL、PostgreSQL為代表的開(kāi)放源代碼的數(shù)據(jù)庫(kù)系統(tǒng),推動(dòng)了開(kāi)源軟件事業(yè)的發(fā)展。開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)并不是一個(gè)新事物,如Postgres(PostgreSQL的前身)已經(jīng)有20年的發(fā)展歷史了,而著名的MySQL今年4月剛剛度過(guò)了其10周年紀(jì)念活動(dòng)。

1、MYSQL

    MysQL是瑞典的T.c.X公司負(fù)責(zé)開(kāi)發(fā)和維護(hù)的,它是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。MysQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)實(shí)現(xiàn)其功能的,它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。MySQL主要特點(diǎn)是快速、健壯和易用。MySQL的官方發(fā)音是“My Ess Que Ell”(不是MY-SEQUEL)。目前MySQL的最新版本是5.0,MySQL的網(wǎng)址是:http://www.,MySQL的標(biāo)志是一個(gè)小海豚。見(jiàn)圖-1。


               圖-1 Mysql 標(biāo)志

MySQL的技術(shù)特點(diǎn):

1. 它使用的核心線程是完全多線程,支持多處理器。
2. 有多種列類(lèi)型:1、2、3、4、和8字節(jié)長(zhǎng)度自有符號(hào)/無(wú)符號(hào)整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類(lèi)型。
3. 它通過(guò)一個(gè)高度優(yōu)化的類(lèi)庫(kù)實(shí)現(xiàn)SQL函數(shù)庫(kù)并像他們能達(dá)到的一樣快速,通常在查詢初始化后不該有任何內(nèi)存分配。沒(méi)有內(nèi)存漏洞。
4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來(lái)自不同數(shù)據(jù)庫(kù)的表。
5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。
6. 所有列都有缺省值。你可以用INSERT插入一個(gè)表列的子集,那些沒(méi)用明確給定值的列設(shè)置為他們的決省值。
7. MySQL可以工作在不同的平臺(tái)上。支持C、C++、Java、Perl、PHP、Python和TCL API。

    MaxDB是2003年SAP公司和MySQL AB公司合作之后SAP DB新的名稱(chēng)。MaxDB是一款重量級(jí)的、獲得SAP R/3認(rèn)證,適宜于聯(lián)機(jī)事務(wù)處理和聯(lián)機(jī)分析處理等多種業(yè)務(wù)類(lèi)型的高可用性、高可靠性和極具伸縮性的數(shù)據(jù)庫(kù),支持大容量的用戶和并發(fā)業(yè)務(wù)操作,采用多線程多進(jìn)程的服務(wù)器設(shè)計(jì),支持多處理器的應(yīng)用,并通過(guò)集群和熱部署提供高可靠性,支持TB級(jí)的海量數(shù)據(jù),支持企業(yè)級(jí)的數(shù)據(jù)同步和復(fù)制等復(fù)雜應(yīng)用。


2. PostgreSQL

PostgreSQL是一種運(yùn)行在Unix和Linux操作系統(tǒng)(在NT平臺(tái)借助Cygnus也可以運(yùn)行)平臺(tái)上的免費(fèi)的開(kāi)放源碼的關(guān)系數(shù)據(jù)庫(kù)。最早是由美國(guó)加州大學(xué)伯克利分校開(kāi)發(fā)的,開(kāi)始只是作為一個(gè)演示系統(tǒng)發(fā)表,但是隨著時(shí)間的推移,逐步分發(fā),得到很多實(shí)際的應(yīng)用,才逐步流行起來(lái)。PostgreSQ的網(wǎng)址是http://www./,最新版本是2005年10月4日發(fā)布的8.0.4。PostgreSQL的官方發(fā)音是:Post-gres-Q-L。 PostgreSQ的標(biāo)志是一個(gè)大象,見(jiàn)圖-2。

                
                         圖4 PostgreSQL 標(biāo)志

PostgreSQL的技術(shù)特點(diǎn):

1. 支持SQL。作為關(guān)系數(shù)據(jù)庫(kù),它支持SQL89標(biāo)準(zhǔn)也支持部分SQL92大部分功能。

2. 有豐富的數(shù)據(jù)類(lèi)型。許多數(shù)據(jù)類(lèi)型是一些商業(yè)數(shù)據(jù)庫(kù)都沒(méi)有提供的。

3. 面向?qū)ο?。它包含了一些面向?qū)ο蟮募夹g(shù),如繼承和類(lèi)。

4. 支持大數(shù)據(jù)庫(kù),它不同于一般的桌面數(shù)據(jù)庫(kù),能夠支持幾乎不受限制大小的數(shù)據(jù)庫(kù),而且性能穩(wěn)定。

5. 方便集成web,提供一些接口方便 PHP,Perl等語(yǔ)言操作數(shù)據(jù)庫(kù)。

6. 事務(wù)處理。相對(duì)一些其他免費(fèi)數(shù)據(jù)庫(kù)如MySQL,他提供了事務(wù)處理,可以滿足一些商業(yè)領(lǐng)域的數(shù)據(jù)需要。

7. PostgreSQL運(yùn)行速度明顯低于MySQL。因?yàn)镸ySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問(wèn)公用的存儲(chǔ)區(qū)域顯然要比在不同的進(jìn)程之間要快得多。

3. Firebird

2000年7月,Borland(即現(xiàn)在的Inprise)公司公布了其數(shù)據(jù)庫(kù)產(chǎn)品Interbase的源代碼。Firebird數(shù)據(jù)庫(kù)就是從該數(shù)據(jù)庫(kù)中派生出來(lái)的。當(dāng)時(shí),Interbase是與客戶/服務(wù)器版本的Delphi產(chǎn)品捆綁在一些銷(xiāo)售的?,F(xiàn)在,Interbase已經(jīng)變成了一只開(kāi)放源碼中的“火鳥(niǎo)”。 Firebird 網(wǎng)址是http://firebird./ ,最新版本是2005年8月5日發(fā)布的1.5.3。的標(biāo)志是一只“火鳥(niǎo)”,見(jiàn)圖-3。

                    
                         圖-3 Firebird 標(biāo)志

Firebird的技術(shù)特點(diǎn)

Firebird相對(duì)MySQL和PostgreSQL來(lái)說(shuō)比較小,其RPM版本只有3.0MB。這也使其可以稱(chēng)得上是理想的“嵌入式數(shù)據(jù)庫(kù)”,可用于與其它應(yīng)用程序服務(wù)器和應(yīng)用程序捆綁。Firebird具有大部分成熟數(shù)據(jù)庫(kù)所具有的功能,比如支持存儲(chǔ)過(guò)程、SQL兼容等。如果用戶有使用DB2或PostgreSQL的經(jīng)驗(yàn),就會(huì)發(fā)現(xiàn)Firebird與它們的語(yǔ)法非常相似,數(shù)據(jù)類(lèi)型和數(shù)據(jù)處理方式也很類(lèi)似。 Firebird的設(shè)計(jì)思想是小型、快速和最小化的管理。這對(duì)于需要一個(gè)數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù),但又不想花太多時(shí)間來(lái)調(diào)整數(shù)據(jù)性能的開(kāi)發(fā)人員很適用。實(shí)際上在很多情況下,我們并不需要存儲(chǔ)程序或復(fù)雜的表之間的關(guān)聯(lián)。這時(shí)會(huì)發(fā)現(xiàn)Firebird在大小和功能之間找到了一個(gè)理想的平衡點(diǎn)。

現(xiàn)在有兩個(gè)版本的Firebird服務(wù)器軟件可供下載,分別是Firebird Super Server和Firebird Classic Server。簡(jiǎn)單來(lái)說(shuō),二者的區(qū)別在于設(shè)計(jì)的方法不同。Super Server使用線程同時(shí)為多個(gè)客戶連接提供服務(wù),而Classic Server使用的則是Interbase的方法,采用為每個(gè)連接提供一個(gè)獨(dú)立服務(wù)器進(jìn)程的方式。如果想對(duì)二者的區(qū)別有更多的了解,可查看http://www./main.nfs?a=ibphoenix&page=ibp_ss_vs_classic。對(duì)于“嵌入式數(shù)據(jù)庫(kù)”的用戶,這兩個(gè)版本之間沒(méi)有太大的區(qū)別。從理論上講,如果應(yīng)用程序的用戶很多,那么Super Server將是一個(gè)較好的選擇。

4. mSQL

   mSQL(mini SQL)是一個(gè)單用戶數(shù)據(jù)庫(kù)管理系統(tǒng),個(gè)人使用免費(fèi),商業(yè)使用收費(fèi)。由于它的短小精悍,使其開(kāi)發(fā)的應(yīng)用系統(tǒng)特別受到互聯(lián)網(wǎng)用戶青睞。mSQL(mini SQL)是一種小型的關(guān)系數(shù)據(jù)庫(kù),性能不是太好,對(duì)SQL語(yǔ)言的支持也不夠完全,但在一些網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用中是足夠了。由于mSQL較簡(jiǎn)單,在運(yùn)行簡(jiǎn)單的SQL語(yǔ)句時(shí)速度比MySQL略快,而MySQL在線程和索引上下了功夫,運(yùn)行復(fù)雜的SQL語(yǔ)句時(shí)比mSQL,PostgreSQL等都要快一些。MSQL的網(wǎng)址是:http://www.  ,最新版本是2005年5月8日發(fā)布的3.7。MSQL的標(biāo)志是一個(gè)鹿。見(jiàn)圖-2。


圖4 mSQL 標(biāo)志


mSQL的技術(shù)特點(diǎn):
    安全性方面,mSQL通過(guò)ACL文件設(shè)定各主機(jī)上各用戶的訪問(wèn)權(quán)限,缺省是 全部可讀/寫(xiě)。mSQL缺乏 ANSI SQL 的大多數(shù)特征,它僅僅實(shí)現(xiàn)了一個(gè)最最少的API,沒(méi)有事務(wù)和參考完整性。mSQL與Lite(一種類(lèi)似C的腳本語(yǔ)言,與分發(fā)一起發(fā)行)緊密結(jié)合,可以得到一個(gè)稱(chēng)為 W3-mSQL的一個(gè)網(wǎng)站集成包,它是JDBC、ODBC、Perl和PHP API。

        嵌入式數(shù)據(jù)庫(kù)

嵌入式數(shù)據(jù)庫(kù)的名稱(chēng)來(lái)自其獨(dú)特的運(yùn)行模式。這種數(shù)據(jù)庫(kù)嵌入到了應(yīng)用程序進(jìn)程中,消除了與客戶機(jī)服務(wù)器配置相關(guān)的開(kāi)銷(xiāo)。嵌入式數(shù)據(jù)庫(kù)實(shí)際上是輕量級(jí)的,在運(yùn)行時(shí),它們需要較少的內(nèi)存。它們是使用精簡(jiǎn)代碼編寫(xiě)的,對(duì)于嵌入式設(shè)備,其速度更快,效果更理想。嵌入式運(yùn)行模式允許嵌入式數(shù)據(jù)庫(kù)通過(guò) SQL 來(lái)輕松管理應(yīng)用程序數(shù)據(jù),而不依靠原始的文本文件。嵌入式數(shù)據(jù)庫(kù)還提供零配置運(yùn)行模式,這樣可以啟用其中一個(gè)并運(yùn)行一個(gè)快照。

5. Berkeley DB

像MySQL這類(lèi)基于C/S結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)雖然代表著目前數(shù)據(jù)庫(kù)應(yīng)用的主流,但卻并不能滿足所有應(yīng)用場(chǎng)合的需要。有時(shí)我們需要的可能只是一個(gè)簡(jiǎn)單的基于磁盤(pán)文件的數(shù)據(jù)庫(kù)系統(tǒng)。這樣不僅可以避免安裝龐大的數(shù)據(jù)庫(kù)服務(wù)器,而且還可以簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)。Berkeley DB正是基于這樣的思想提出來(lái)的。官方網(wǎng)址是:http://www.sleepycat.com/ ,最新版本是2005年8月5日發(fā)布的4.3。的標(biāo)志是一只“貓”,見(jiàn)圖-4。

        圖5 Berkeley DB 標(biāo)志

的技術(shù)特點(diǎn):

  Berkeley DB是一個(gè)開(kāi)放源代碼的內(nèi)嵌式數(shù)據(jù)庫(kù)管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它程序員只需要調(diào)用一些簡(jiǎn)單的API就可以完成對(duì)數(shù)據(jù)的訪問(wèn)和管理。與常用的數(shù)據(jù)庫(kù)管理系統(tǒng)(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒(méi)有數(shù)據(jù)庫(kù)服務(wù)器的概念。應(yīng)用程序不需要事先同數(shù)據(jù)庫(kù)服務(wù)建立起網(wǎng)絡(luò)連接,而是通過(guò)內(nèi)嵌在程序中的Berkeley DB函數(shù)庫(kù)來(lái)完成對(duì)數(shù)據(jù)的保存、查詢、修改和刪除等操作。

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

  Berkeley DB作為一種嵌入式數(shù)據(jù)庫(kù)系統(tǒng)在許多方面有著獨(dú)特的優(yōu)勢(shì)。首先,由于其應(yīng)用程序和數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行在相同的進(jìn)程空間當(dāng)中,進(jìn)行數(shù)據(jù)操作時(shí)可以避免繁瑣的進(jìn)程間通信,因此耗費(fèi)在通信上的開(kāi)銷(xiāo)自然也就降低到了極低程度。其次,Berkeley DB使用簡(jiǎn)單的函數(shù)調(diào)用接口來(lái)完成所有的數(shù)據(jù)庫(kù)操作,而不是在數(shù)據(jù)庫(kù)系統(tǒng)中經(jīng)常用到的SQL語(yǔ)言。這樣就避免了對(duì)結(jié)構(gòu)化查詢語(yǔ)言進(jìn)行解析和處理所需的開(kāi)銷(xiāo)。

6. SQLite

SQLite 是 D. Richard Hipp 用 C 語(yǔ)言編寫(xiě)的開(kāi)源嵌入式數(shù)據(jù)庫(kù)引擎。它是完全獨(dú)立的,不具有外部依賴(lài)性。它是作為 PHP V4.3 中的一個(gè)選項(xiàng)引入的,構(gòu)建在 PHP V5 中。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語(yǔ)言。SQLite 還非常健壯。其創(chuàng)建者保守地估計(jì) SQLite 可以處理每天負(fù)擔(dān)多達(dá) 100,00 次點(diǎn)擊率的 Web 站點(diǎn),并且 SQLite 有時(shí)候可以處理 10 倍于上述數(shù)字的負(fù)載。SQLite 的網(wǎng)址是,最新版本是2005年9月24日發(fā)布的3.2.7 。SQLite的標(biāo)志是一只羽毛,見(jiàn)圖-5。


圖6 SQLite標(biāo)志

SQLite的技術(shù)特點(diǎn):

SQLite 對(duì) SQL92 標(biāo)準(zhǔn)的支持包括索引、限制、觸發(fā)和查看。SQLite 不支持外鍵限制,但支持原子的、一致的、獨(dú)立和持久 (ACID) 的事務(wù)(后面會(huì)提供有關(guān) ACID 的更多信息)。這意味著事務(wù)是原子的,因?yàn)樗鼈円赐耆珗?zhí)行,要么根本不執(zhí)行。事務(wù)也是一致的,因?yàn)樵诓灰恢碌臓顟B(tài)中,該數(shù)據(jù)庫(kù)從未被保留。事務(wù)還是獨(dú)立的,所以,如果在同一時(shí)間在同一數(shù)據(jù)庫(kù)上有兩個(gè)執(zhí)行操作的事務(wù),那么這兩個(gè)事務(wù)是互不干擾的。而且事務(wù)是持久性的,所以,該數(shù)據(jù)庫(kù)能夠在崩潰和斷電時(shí)幸免于難,不會(huì)丟失數(shù)據(jù)或損壞。SQLite 通過(guò)數(shù)據(jù)庫(kù)級(jí)上的獨(dú)占性和共享鎖定來(lái)實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著當(dāng)多個(gè)進(jìn)程和線程可以在同一時(shí)間從同一數(shù)據(jù)庫(kù)讀取數(shù)據(jù),但只有一個(gè)可以寫(xiě)入數(shù)據(jù)。在某個(gè)進(jìn)程或線程向數(shù)據(jù)庫(kù)執(zhí)行寫(xiě)入操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫?huì)再發(fā)生。

總結(jié):

目前的開(kāi)源數(shù)據(jù)庫(kù)還不能在功能和處理能力方面追上商業(yè)級(jí)產(chǎn)品,但價(jià)格的侵蝕力無(wú)法回避,開(kāi)源數(shù)據(jù)庫(kù)迅速增長(zhǎng)的市場(chǎng)份額甚至讓數(shù)據(jù)庫(kù)領(lǐng)域的三巨頭,Oracle、IBM、微軟都感到忐忑不安。開(kāi)源數(shù)據(jù)庫(kù)的用戶在增長(zhǎng),并正在被越來(lái)越多的用戶所采用。在嵌入式數(shù)據(jù)庫(kù)領(lǐng)域,開(kāi)源數(shù)據(jù)庫(kù)優(yōu)勢(shì)更加明顯。分析師稱(chēng)開(kāi)放源碼正在迅速被數(shù)據(jù)庫(kù)技術(shù)所采用。開(kāi)放源碼“從2000年被懷疑到2005年已經(jīng)發(fā)展成為全球的主流技術(shù)”。低成本甚至免費(fèi)的開(kāi)源數(shù)據(jù)庫(kù)時(shí)代即將來(lái)臨。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多