網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
目錄
1.什么是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)[1]
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是指利用網(wǎng)絡(luò)將兩個(gè)或多個(gè)相互獨(dú)立的局域數(shù)據(jù)庫(kù)連接在一起。
2.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)[2]
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是指把數(shù)據(jù)庫(kù)技術(shù)引入到計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,借助于網(wǎng)絡(luò)技術(shù)將存儲(chǔ)于數(shù)據(jù)庫(kù)中的大量信息及時(shí)發(fā)布出去;而計(jì)算機(jī)網(wǎng)絡(luò)借助于成熟的數(shù)據(jù)庫(kù)技術(shù)對(duì)網(wǎng)絡(luò)中的各種數(shù)據(jù)進(jìn)行有效管理,并實(shí)現(xiàn)用戶與網(wǎng)絡(luò)中的數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)交互。
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)目前在Intemet廠有大量的應(yīng)用,從最初的網(wǎng)站留言簿、自由論壇等到今天的遠(yuǎn)程教育和復(fù)雜的電子商務(wù)等,這些系統(tǒng)幾乎都是采用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)這種方式來(lái)實(shí)現(xiàn)的。網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)的組成元素為:客戶端、服務(wù)器端、連接客戶端及服務(wù)器端的網(wǎng)絡(luò)。這些元素是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)。網(wǎng)絡(luò)數(shù)據(jù)庫(kù)示意圖如圖1所示。
使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的最大優(yōu)勢(shì)是用戶無(wú)需在自己的客戶端安裝任何與所需存取或操作數(shù)據(jù)庫(kù)系統(tǒng)對(duì)應(yīng)的客戶端軟件,只需要通過(guò)Web瀏覽器便可完成對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的常用操作。;這種力·式的優(yōu)點(diǎn)是用戶不必再去學(xué)習(xí)復(fù)雜的數(shù)據(jù)庫(kù)知識(shí)和數(shù)據(jù)庫(kù)軟件的使用,只需要掌握基本的網(wǎng)絡(luò)操作,如填寫(xiě)、提交表單等就可以從任何一臺(tái)連接Internet的計(jì)算機(jī)上來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)作方式如圖2所示。
- 圖1網(wǎng)絡(luò)數(shù)據(jù)庫(kù)示意圖
- 圖2網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)作方式
3.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)特點(diǎn)[2]
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)與傳統(tǒng)的數(shù)據(jù)庫(kù)相比有以下的特點(diǎn):
(1)擴(kuò)大了數(shù)據(jù)資源共享范圍。由于計(jì)算機(jī)網(wǎng)絡(luò)的范圍可以從局部到全球,因此,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中的數(shù)據(jù)資源共享范圍也擴(kuò)大了。
(2)易于進(jìn)行分布式處理。在計(jì)算機(jī)網(wǎng)絡(luò)中,各用戶可根據(jù)情況合理地選擇網(wǎng)內(nèi)資源,以便就近快速地處理。對(duì)于大型作業(yè)及大批量的數(shù)據(jù)處理,可通過(guò)一定的算法將其分解給不同的汁算機(jī)處理,從而達(dá)到均衡使用網(wǎng)絡(luò)資源,實(shí)現(xiàn)分布式處理的目的,大大提高了數(shù)據(jù)資源的處理速度。
(3)數(shù)據(jù)資源使用形式靈活。基于網(wǎng)絡(luò)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā),既可以采用C/S(Client/Server,客戶機(jī)/服務(wù)器)方式,也可以采用B/S(Browser/Server,瀏覽器/匠務(wù)器)方式,廾發(fā)形式多樣,數(shù)據(jù)使用形式靈活。
(4)便于數(shù)據(jù)傳輸交流。通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)可以方便地將網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳送至網(wǎng)絡(luò)覆蓋的任何地區(qū)。
(5)降低了系統(tǒng)的使用費(fèi)用,提高了計(jì)算機(jī)可用性。由于網(wǎng)絡(luò)數(shù)據(jù)庫(kù)可供全網(wǎng)用戶共享,使用數(shù)據(jù)資源的用戶不一定擁有數(shù)據(jù)庫(kù),這樣大大降低丁對(duì)計(jì)算機(jī)系統(tǒng)的要求,同時(shí),也提高了每臺(tái)計(jì)算機(jī)的可用性。
(6)數(shù)據(jù)的保密性、安全性降低。由于數(shù)據(jù)庫(kù)的共享范圍擴(kuò)大,對(duì)數(shù)據(jù)庫(kù)用戶的管理難度加大,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)遭受破壞、竊密的概率加大,降低了數(shù)據(jù)的保密性和安全性。
4.網(wǎng)絡(luò)與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)[3]
網(wǎng)絡(luò)就是通過(guò)使用通訊設(shè)備和線路,將處在不同地理位置、操作上相對(duì)獨(dú)立的多個(gè)計(jì)算機(jī)連接起來(lái),再配置一定的系統(tǒng)軟件和應(yīng)用軟件,在這些計(jì)算機(jī)上實(shí)現(xiàn)軟硬件的資源共享和信息傳遞,由此而構(gòu)成計(jì)算機(jī)網(wǎng)絡(luò)。
互聯(lián)網(wǎng)是由全球眾多的計(jì)算機(jī)局域網(wǎng)互相連接組成的一個(gè)超大規(guī)模的網(wǎng)絡(luò)系統(tǒng),在這個(gè)系統(tǒng)中運(yùn)行著多種應(yīng)用系統(tǒng),如上網(wǎng)使用的網(wǎng)頁(yè)瀏覽系統(tǒng)——WWW(即萬(wàn)維網(wǎng)Intemet)、上傳與下載用的文件傳輸系統(tǒng)——FTP、收發(fā)電子郵件所使用的電子郵件系統(tǒng)——E—mail等?;ヂ?lián)網(wǎng)中運(yùn)行的每一種應(yīng)用系統(tǒng)都是由互聯(lián)網(wǎng)中相應(yīng)的服務(wù)器系統(tǒng)、客戶機(jī)系統(tǒng)構(gòu)成,也就是說(shuō)互聯(lián)網(wǎng)從物理連接來(lái)看是由眾多的計(jì)算機(jī)組成,而從邏輯上看是由多個(gè)功能子網(wǎng)組成。
如何實(shí)現(xiàn)讓使用者利用瀏覽器,通過(guò)Intemet或Intranet訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)?目前對(duì)此問(wèn)題的解決方案的趨勢(shì)為:不需要寫(xiě)傳統(tǒng)的CGI程序,只要在服務(wù)器端執(zhí)行簡(jiǎn)單的“Script語(yǔ)言碼”,SQL(StructureQueryLanguage結(jié)構(gòu)化查詢語(yǔ)言)指令與標(biāo)準(zhǔn)的HTML碼,通過(guò)ODBC(OpenDatabaseConnectivity)驅(qū)動(dòng)程序,連接到各種支持ODBC的數(shù)據(jù)庫(kù),執(zhí)行SQL指令來(lái)訪問(wèn)數(shù)據(jù)庫(kù)即可,如圖3所示。
- 圖3訪問(wèn)數(shù)據(jù)庫(kù)的解決方案
當(dāng)在用戶端的瀏覽器中填好表單(Form)的輸入數(shù)據(jù),按單擊Submit按鈕后,經(jīng)過(guò)Intemet或Intranet傳送HTTP信息到網(wǎng)絡(luò)服務(wù)器,請(qǐng)求在網(wǎng)絡(luò)服務(wù)器上執(zhí)行一個(gè)表單所指定的可執(zhí)行Script語(yǔ)言碼。當(dāng)網(wǎng)絡(luò)服務(wù)器遇到包括這些Script語(yǔ)言碼的特殊擴(kuò)展名(hts、cfm、tdc、asp、jrp)文件時(shí),就交給處理這些Script語(yǔ)言碼的軟件來(lái)處理,執(zhí)行后生成一般HTML碼及所需數(shù)據(jù)庫(kù)數(shù)據(jù),然后再交給服務(wù)器傳到使用者瀏覽器,如圖4所示。
- 圖4訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的過(guò)程
網(wǎng)絡(luò)還可以通過(guò)多種方式來(lái)訪問(wèn)數(shù)據(jù)庫(kù),如CGI、API和ODBC等。網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)連接的原理,如圖5所示。
- 圖5網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)連接的原理
一個(gè)典型的數(shù)據(jù)庫(kù)查詢過(guò)程包括以下步驟。
1.用戶通過(guò)瀏覽器向網(wǎng)絡(luò)服務(wù)器發(fā)送一個(gè)查詢請(qǐng)求;
2.服務(wù)器根據(jù)參數(shù)啟動(dòng)相應(yīng)的CGI(通用網(wǎng)關(guān)接口)或API(應(yīng)用程序接口)程序(即網(wǎng)關(guān));
3.CGI或API程序登錄到數(shù)據(jù)庫(kù)中,按條件進(jìn)行查詢;
4.?dāng)?shù)據(jù)庫(kù)返回查詢結(jié)果;
5.CGI或API程序把查詢結(jié)果翻譯成為標(biāo)準(zhǔn)的HTML格式,并傳給網(wǎng)絡(luò)服務(wù)器;
6.網(wǎng)絡(luò)服務(wù)器把包含結(jié)果的HTML網(wǎng)頁(yè)傳給瀏覽器。
5.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的應(yīng)用[3]
當(dāng)前比較流行的Web數(shù)據(jù)庫(kù)主要有:SQLServer、MySQL、Oracle、DB2和ACCESS。這5種數(shù)據(jù)庫(kù)適應(yīng)性強(qiáng),性能優(yōu)異,容易使用,在國(guó)內(nèi)得到了廣泛的應(yīng)用。接下來(lái)將對(duì)這幾種常用的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單介紹。
- 1.SQL Server
SQLServer是微軟公司從SyBase獲得基本部件的使用許可后開(kāi)發(fā)出的一種關(guān)系型數(shù)據(jù)庫(kù)。目前最新的版本是SQLServer2008,但SQL Server 2005仍在廣泛使用。
由于均出自微軟之手,使得SQLServer和Windows、IIS等產(chǎn)品有著天然的聯(lián)系。事實(shí)上以Windows為核心的幾乎所有微軟的軟件產(chǎn)品都采用了一致的開(kāi)發(fā)策略,包括界面技術(shù)、面向?qū)ο蠹夹g(shù)、組件技術(shù)等,這樣在微軟的軟件中很多都可以相互調(diào)用,而且配合得非常密切。因此如果用戶使用的是Windows操作系統(tǒng),那么IIS、SQLServer就應(yīng)該是最佳的選擇。
- 2.MySQL
MySQL是當(dāng)今UNIX或Linux類服務(wù)器上廣泛使用的Web數(shù)據(jù)庫(kù)系統(tǒng)。它于1996年誕生于瑞典的MySQLAB公司,支持大部分的操作系統(tǒng)平臺(tái)。MySQL的設(shè)計(jì)思想快捷、高效、實(shí)用。由于它不支持事務(wù)處理,MySQL的速度比一些商業(yè)數(shù)據(jù)庫(kù)快2~3倍,并且MySQL還針對(duì)很多操作平臺(tái)做了優(yōu)化,完全支持多CPU系統(tǒng)的多線程方式。
在編程方面,MySQL也提供了C、C++、Java、Perl、Python和TCL等API接口,而且有MyODBC接口,任何可以使用ODBC接口的語(yǔ)言都可以使用它。更重要的是,MySQL的源代碼是公開(kāi)的,可以免費(fèi)使用,這就使得MySQL成為許多中小型網(wǎng)站、個(gè)人網(wǎng)站追捧的明星產(chǎn)品。
- 3.Oracle
Oracle是美國(guó)Oracle公司研制的一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是一個(gè)協(xié)調(diào)服務(wù)器和用于支持任務(wù)決定型應(yīng)用程序的開(kāi)放型RDBMS(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))。它可以支持多種不同的硬件和操作系統(tǒng)平臺(tái),從臺(tái)式機(jī)到大型和超級(jí)計(jì)算機(jī),為各種硬件結(jié)構(gòu)提供高度的可伸縮性,支持對(duì)稱多處理器、群集多處理器、大規(guī)模處理器等,并提供廣泛的國(guó)際語(yǔ)言支持。
Oracle是一個(gè)多用戶系統(tǒng),能自動(dòng)從批處理或在線環(huán)境的系統(tǒng)故障中恢復(fù)運(yùn)行。系統(tǒng)提供了一個(gè)完整的軟件開(kāi)發(fā)工具Developer2000,包括交互式應(yīng)用程序生成器、報(bào)表打印軟件、字處理軟件以及集中式數(shù)據(jù)字典,用戶可以利用這些工具生成自己的應(yīng)用程序。Orcale以二維表的形式表示數(shù)據(jù),并提供了SQL(結(jié)構(gòu)式查詢語(yǔ)言),可完成數(shù)據(jù)查詢、操作、定義和控制等基本數(shù)據(jù)庫(kù)管理功能。Oracle具有很好的可移植性,通過(guò)它的通信功能,微型計(jì)算機(jī)上的程序可以同小型乃至大型計(jì)算機(jī)上的Oracle,并且能相互傳遞數(shù)據(jù)。
另外Oracle還具有與C語(yǔ)言的接電子表格、圖形處理等軟件。Oracle屬于大型數(shù)據(jù)庫(kù)系統(tǒng),主要適用于大、中小型應(yīng)用系統(tǒng),或作為客戶機(jī)朋艮務(wù)器系統(tǒng)中服務(wù)器端的數(shù)據(jù)庫(kù)系統(tǒng)。Oracle是一種面向網(wǎng)絡(luò)計(jì)算機(jī)并支持對(duì)象關(guān)系模型的數(shù)據(jù)庫(kù)產(chǎn)品,是目前最流行的客戶/N務(wù)器體系機(jī)構(gòu)的數(shù)據(jù)庫(kù)之一。目前廣泛使用的版本是Oracle1lg。
- 4.DB2
DB2是計(jì)算機(jī)巨人IBM公司的產(chǎn)品,起源于SystemR和SystemR木。它支持從PC到UNIX,從中小型機(jī)到大型機(jī);從IBM到非IBM(HP及SUNUNIX系統(tǒng)等)的各種操作平臺(tái)。它既可以在主機(jī)上以主/從方式獨(dú)立運(yùn)行,也可以在客戶/N務(wù)器環(huán)境中運(yùn)行。其中服務(wù)平臺(tái)可以是OS/400,AIX,OS/2,HP—UNIX,SUN—Solaris等操作系統(tǒng),客戶機(jī)平臺(tái)可以是OS/2或Windows,Dos,AIX,HP—UX,SUNSolaris等操作系統(tǒng)。
DB2數(shù)據(jù)庫(kù)核心又稱作DB2公共服務(wù)器,采用多進(jìn)程多線索體系結(jié)構(gòu),可以運(yùn)行于多種操作系統(tǒng)之上,并分別根據(jù)相應(yīng)平臺(tái)環(huán)境作了調(diào)整和優(yōu)化,以便能夠達(dá)到較好的性能。
- 5.Access
Access數(shù)據(jù)庫(kù)是一個(gè)文件型數(shù)據(jù)庫(kù)管理系統(tǒng),由單個(gè)或多個(gè)文件組成,是Office辦公套件中一個(gè)極為重要的組成部分。自從1992年開(kāi)始銷(xiāo)售以來(lái),Access已經(jīng)賣(mài)出了超過(guò)6000萬(wàn)份,現(xiàn)在已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫(kù)管理系統(tǒng)。后來(lái)微軟公司通過(guò)大量的改進(jìn),將Access的新版本功能變得更加強(qiáng)大。不管是處理公司的客戶訂單數(shù)據(jù),管理自己的個(gè)人通訊錄,還是大量科研數(shù)據(jù)的記錄和處理,人們都可以利用它來(lái)解決大量數(shù)據(jù)的管理工作。Access之所以被集成到Office中而不是.VisualStudio中,是因?yàn)樗c其他的數(shù)據(jù)庫(kù)管理系統(tǒng)(如VisualFoxPro)相比更加簡(jiǎn)單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶即可掌握并使用。而且最重要的一點(diǎn)是,Access的功能足夠強(qiáng)大,足以應(yīng)付一般的數(shù)據(jù)管理及處理需要,當(dāng)然,配上合適的數(shù)據(jù)訪問(wèn)手段,它也能多用戶、多線程的訪問(wèn)。Access對(duì)于訪問(wèn)量及數(shù)據(jù)量不是太大的系統(tǒng),尤其是桌面數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā)很具優(yōu)勢(shì),而且從它升級(jí)到SQLServer(微軟的另一專業(yè)數(shù)據(jù)庫(kù)產(chǎn)品)也比較容易。
6.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)實(shí)現(xiàn)技術(shù)與安全分析[3]
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是網(wǎng)絡(luò)環(huán)境下辦公自動(dòng)化(OA)系統(tǒng)的核心部分。設(shè)計(jì)一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)所采用的技術(shù)實(shí)現(xiàn)方法,其先進(jìn)性和科學(xué)性不僅對(duì)軟件的開(kāi)發(fā)效率和軟件質(zhì)量有著很大的影響,而且對(duì)整個(gè)軟件的使用和維護(hù)有著重大的影響。同時(shí),系統(tǒng)的安全性對(duì)于系統(tǒng)的實(shí)現(xiàn)同樣非常關(guān)鍵。系統(tǒng)不安全的因素包括非授權(quán)用戶訪問(wèn)計(jì)算機(jī)網(wǎng)絡(luò),授權(quán)用戶越權(quán)訪問(wèn)有關(guān)數(shù)據(jù)庫(kù),以及敏感信息在基于TCP/IP網(wǎng)絡(luò)上的傳輸。
- 1.?dāng)?shù)據(jù)庫(kù)訪問(wèn)技術(shù)
一般的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具如Delphi5都提供了一些數(shù)據(jù)庫(kù)對(duì)象組件,它們封裝了BDE的功能。這樣,開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序就不必知道BDE的功能。其次,還提供了數(shù)據(jù)感知組件可以與數(shù)據(jù)訪問(wèn)組件彼此通信,這樣,建立數(shù)據(jù)庫(kù)應(yīng)用程序的界面就變得簡(jiǎn)單。SQLLinks為連接Oracle、Sybase、Informix、MicrosoftSQLServer、DB2和InterBase提供了專門(mén)的驅(qū)動(dòng)程序,還可以通過(guò)ODBC連接其他數(shù)據(jù)庫(kù)。
- 2.SQL編程技術(shù)
SQL是一組符合工業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操作命令集,它可以在Delphi這樣的編程環(huán)境中使用。SQL不是一門(mén)語(yǔ)言,無(wú)法得到一個(gè)專門(mén)的SQL軟件,它只是服務(wù)器數(shù)據(jù)庫(kù)的一部分。
SQL作為一種查詢語(yǔ)言,是網(wǎng)絡(luò)環(huán)境下客戶/服務(wù)器數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)的標(biāo)準(zhǔn)。SQL具有一些查看數(shù)據(jù)的優(yōu)勢(shì),而且只能使用SQL命令來(lái)獲得。通過(guò)SQL,也可以靈活地查詢所需要的數(shù)據(jù),這種靈活性是面向記錄的數(shù)據(jù)庫(kù)操作所不具備的。
- 3.多層分布式應(yīng)用技術(shù)
MIDAS(Multitude Distributed Application Services Suite)即多層分布式應(yīng)用程序服務(wù)器,它提供了一整套中間層應(yīng)用服務(wù),擴(kuò)展了操作系統(tǒng)標(biāo)準(zhǔn),這些服務(wù)用于解決各種具體的分布式計(jì)算問(wèn)題,從用于網(wǎng)絡(luò)定位的目錄服務(wù)到數(shù)據(jù)庫(kù)集成和業(yè)務(wù)規(guī)則處理。在多層的數(shù)據(jù)庫(kù)應(yīng)用程序中,客戶程序、應(yīng)用程序服務(wù)器和遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器分布在不同的機(jī)器上。其中,客戶程序主要是提供用戶界面,它能夠向應(yīng)用程序服務(wù)器請(qǐng)求數(shù)據(jù)和申請(qǐng)更新數(shù)據(jù),再由應(yīng)用程序服務(wù)器向遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器請(qǐng)求數(shù)據(jù)和申請(qǐng)更新數(shù)據(jù)。
- 4.WEB訪問(wèn)技術(shù)
隨著WEB技術(shù)的發(fā)展,WEB與數(shù)據(jù)庫(kù)的互連技術(shù)也日益發(fā)展,主要有CGI,W曲API,ODBC,JAVA/JDB技術(shù),ASP技術(shù),PHP技術(shù)等。使用Delphi的WebBroker技術(shù)可以輕松地建立WEB服務(wù)器擴(kuò)展來(lái)提供自定義的、動(dòng)態(tài)的HTML(Hypertext Markup Language)網(wǎng)頁(yè),并能夠訪問(wèn)各種數(shù)據(jù)源。