- 電子商務(wù)數(shù)據(jù)庫(kù)技術(shù)(第3版)
- 潘郁
- 2676字
- 2019-12-11 15:42:24
3.3.5 電子商務(wù)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的實(shí)現(xiàn)技術(shù)
隨著Web數(shù)據(jù)庫(kù)系統(tǒng)的不斷應(yīng)用和發(fā)展,數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)技術(shù)也日益重要。在電子商務(wù)數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)中采用了許多新的軟件技術(shù),包括數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)、客戶端應(yīng)用開發(fā)工具的工作模型和實(shí)現(xiàn)技術(shù)數(shù)據(jù)庫(kù)互聯(lián)技術(shù)、分布數(shù)據(jù)庫(kù)管理技術(shù)等。其中,數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)、開放的數(shù)據(jù)庫(kù)互聯(lián)接口和Web數(shù)據(jù)庫(kù)訪問技術(shù)是實(shí)際開發(fā)過程最常用的技術(shù),下面對(duì)它們做簡(jiǎn)單的介紹。
SQL(Structured Query Language)又稱結(jié)構(gòu)化查詢語(yǔ)言,是專門為數(shù)據(jù)庫(kù)而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫(kù)語(yǔ)言。在使用SQL時(shí),只需要發(fā)出“做什么”的命令,而“怎么做”則無(wú)須使用者考慮。SQL的功能強(qiáng)大,簡(jiǎn)單易學(xué)、使用方便,已經(jīng)成為數(shù)據(jù)庫(kù)操作的基礎(chǔ)。目前,國(guó)際上所有關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都采用SQL,包括DB2以及Oracle、SQL Server、Sybase、Informix等大型數(shù)據(jù)庫(kù)管理系統(tǒng)。
SQL不僅包括查詢功能,還涉及數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制等三個(gè)方面功能。其中,SQL的數(shù)據(jù)定義功能是指對(duì)基表以及視圖進(jìn)行定義;SQL的數(shù)據(jù)操作功能是指在基表上的查詢、刪除、插入、修改等功能;SQL的數(shù)據(jù)控制功能是指基于基表上的完整性、安全性及并發(fā)控制功能。
SQL有兩種使用方式:一種是聯(lián)機(jī)交互方式,在此方式下,SQL可以獨(dú)立使用(稱為自含式語(yǔ)言);另一種是嵌入式方式,在這種方式下,以某些高級(jí)程序設(shè)計(jì)語(yǔ)言(如COBOL、C等)為宿主語(yǔ)言,而將SQL嵌入其中依附于宿主語(yǔ)言(稱為嵌入式語(yǔ)言)。
不管采用哪種使用方式,SQL的基本語(yǔ)法結(jié)構(gòu)都不變,只是在嵌入式結(jié)構(gòu)中增加若干語(yǔ)句以建立宿主語(yǔ)言與SQL之間的聯(lián)系。關(guān)于SQL后面有專門的章節(jié)介紹。
在一個(gè)包括多個(gè)服務(wù)器和大量用戶的C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)中,來自不同廠商的客戶軟件以及用戶開發(fā)的客戶應(yīng)用要訪問不同廠商的服務(wù)器中的數(shù)據(jù),這些數(shù)據(jù)可能存在于不同廠商的關(guān)系數(shù)據(jù)庫(kù)、非關(guān)系數(shù)據(jù)庫(kù)中。要對(duì)這些數(shù)據(jù)進(jìn)行透明的訪問,就需要開放的訪問接口。開放的數(shù)據(jù)庫(kù)互聯(lián)接口中,ODBC、JDBC是兩種使用最廣泛的接口。
ODBC是一種用于訪問數(shù)據(jù)庫(kù)的統(tǒng)一界面標(biāo)準(zhǔn),由微軟公司于1991年年底頒布,在很短的時(shí)間內(nèi)被數(shù)據(jù)庫(kù)屆廣泛接受,成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。
ODBC實(shí)際上是一個(gè)數(shù)據(jù)庫(kù)訪問函數(shù)庫(kù),可以使應(yīng)用程序直接操作數(shù)據(jù)庫(kù)的數(shù)據(jù)。OD-BC是基于SQL的,是一種在SQL和應(yīng)用界面之間的標(biāo)準(zhǔn)接口,它解決了嵌入式SQL接口非規(guī)范核心問題,免除了應(yīng)用軟件隨數(shù)據(jù)庫(kù)的改變而改變的麻煩。
JDBC是Sun Microsystems公司的JavaSoft頒布提出的Java應(yīng)用對(duì)數(shù)據(jù)庫(kù)訪問的API標(biāo)準(zhǔn)。JDBC基于X/OpenSQL調(diào)用級(jí)接口(CLI),這是ODBC的基礎(chǔ)。JDBC保證JDBCAPI可以在其他通用SQL級(jí)的API(包括ODBC)之上實(shí)現(xiàn),這表明所有支持ODBC的數(shù)據(jù)庫(kù)不加任何修改就能夠與JDBC協(xié)同工作。
在C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)中,ODBC和JDBC標(biāo)準(zhǔn)使得不同的數(shù)據(jù)源可以提供統(tǒng)一的數(shù)據(jù)庫(kù)訪問界面。客戶端應(yīng)用通過ODBC接口可以實(shí)現(xiàn)對(duì)不同數(shù)據(jù)源的訪問。
在Internet中,Web用戶和發(fā)布Web的服務(wù)器通過HTTP協(xié)議建立聯(lián)系。Web用戶向服務(wù)器發(fā)送一個(gè)包含URL題頭的字段和其他用戶數(shù)據(jù)的HTTP請(qǐng)求,而服務(wù)器則返回包含請(qǐng)求內(nèi)容的HTTP響應(yīng)。
Web服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器之間的通信通常有兩種解決方案:一種是Web服務(wù)器端提供中間件,用以連接Web服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器;另一種是把應(yīng)用程序下載到客戶端直接訪問數(shù)據(jù)庫(kù)。后一種方法在程序的編寫、調(diào)試上較為煩瑣,網(wǎng)絡(luò)安全也難以保證。相比較而言,中間件技術(shù)更具有優(yōu)勢(shì),而且代表著一種發(fā)展方向。
中間件負(fù)責(zé)管理Web服務(wù)器和數(shù)據(jù)庫(kù)之間的通信并提供相應(yīng)服務(wù),它可以依據(jù)Web服務(wù)器提出的請(qǐng)求對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,把結(jié)果以超文本的形式輸出,然后由Web服務(wù)器將此頁(yè)面返回到Web瀏覽器,從而把數(shù)據(jù)庫(kù)信息提供給用戶。這里簡(jiǎn)單介紹其中部分訪問技術(shù)。
(1)CGI.
CGI即公共網(wǎng)關(guān)接口,是最早實(shí)現(xiàn)與數(shù)據(jù)庫(kù)接口的方法之一,它規(guī)定了瀏覽器、Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器和外部應(yīng)用程序之間數(shù)據(jù)交換的標(biāo)準(zhǔn)接口。
CGI程序設(shè)計(jì)可以使用諸如C++、Visual Basic等流行編程語(yǔ)言,除程序設(shè)計(jì)的輸入/輸出部分外,CGI程序的設(shè)計(jì)與一般的程序設(shè)計(jì)一樣,因此采用CGI是實(shí)現(xiàn)互聯(lián)網(wǎng)用戶與Web服務(wù)器信息交互的一種快速簡(jiǎn)潔的方案。
基于CGI的接口應(yīng)用較簡(jiǎn)單、靈活,開發(fā)工具豐富,功能范圍廣,技術(shù)也相對(duì)成熟,但是用它編程比較復(fù)雜,程序的編譯、連接是與某個(gè)具體的數(shù)據(jù)庫(kù)管理系統(tǒng)相聯(lián)系的。也就是說,CGI的平臺(tái)無(wú)關(guān)性差,尤其對(duì)功能強(qiáng)大的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的應(yīng)用顯得有些力不從心。
(2)Web API.
Web服務(wù)器提供商為擴(kuò)展其服務(wù)器的性能,都各自開發(fā)API應(yīng)用程序接口來取代CGI。目前最流行的兩種API分別是ISAPI(Internet Server Application Programming Interface)和NSAPI(Netscape Server Application Programming Interface)。這兩種接口技術(shù)可以讓用戶以標(biāo)準(zhǔn)方式編寫與Web服務(wù)器交互的應(yīng)用程序。現(xiàn)在Netscape宣布其NSAPI也支持ISAPI標(biāo)準(zhǔn),這意味著只有一種Web API標(biāo)準(zhǔn)了。
API由于是由各廠商與各自的服務(wù)器綁定而各自開發(fā)的,所以兼容性較差,僅適用于Windows系統(tǒng)。此外,API的交互性差且開發(fā)難度大,從而使開發(fā)人員望而卻步。
(3)ASP.
由于Web API開發(fā)的難度大,于是微軟推出ASP技術(shù)。它的出現(xiàn)使動(dòng)態(tài)交互式Web網(wǎng)站的創(chuàng)建變得輕松容易起來,只需要幾行腳本語(yǔ)言就能將后臺(tái)數(shù)據(jù)庫(kù)信息發(fā)布到WWW網(wǎng)站上去,在編程和網(wǎng)頁(yè)腳本的可讀性方面大大優(yōu)于傳統(tǒng)接口技術(shù)。
ASP是一個(gè)服務(wù)器端的命令執(zhí)行環(huán)境,它完全擺脫了CGI的局限性,使用戶可以輕松使用HTML、腳本語(yǔ)言和ActiveX組件創(chuàng)建可靠的、功能強(qiáng)大的、與平臺(tái)無(wú)關(guān)的Web應(yīng)用系統(tǒng)。它不但可以進(jìn)行復(fù)雜的數(shù)據(jù)庫(kù)操作,而且生成的頁(yè)面具有很強(qiáng)的交互性,并允許用戶方便地控制和管理數(shù)據(jù)。
(4)JSP.
JSP(Java Server Pages)是由Sun Microsystem公司于1999年6月推出的新技術(shù),是基于Java Servlet以及整個(gè)Java體系的Web開發(fā)技術(shù)。它是由Sun Microsystems公司倡導(dǎo)的、許多公司參與建立的一種動(dòng)態(tài)網(wǎng)頁(yè)訪問技術(shù)標(biāo)準(zhǔn)。利用這一技術(shù)可以建立先進(jìn)的、安全的和跨平臺(tái)的動(dòng)態(tài)網(wǎng)站。
在傳統(tǒng)的網(wǎng)頁(yè)HTML文件中加入Java程序片段(Scriptlet)和JSP標(biāo)記,就構(gòu)成了JSP網(wǎng)頁(yè)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片斷,然后將執(zhí)行結(jié)果以HTML格式返回給用戶。程序片段可以操作數(shù)據(jù)庫(kù)等相關(guān)功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送客戶端的僅是得到的結(jié)果,對(duì)用戶瀏覽器的要求很低,可以實(shí)現(xiàn)無(wú)Plugin、無(wú)ActiveX、無(wú)Java Applet,甚至無(wú)Frame。
總的來說,JSP和微軟的ASP在技術(shù)方面有許多相似之處。兩者都是為基于Web應(yīng)用服務(wù)實(shí)現(xiàn)動(dòng)態(tài)交互網(wǎng)頁(yè)制作提供的技術(shù)環(huán)境支持,兩者都能夠?yàn)槌绦蜷_發(fā)人員提供實(shí)現(xiàn)應(yīng)用程序的編制與自帶組件設(shè)計(jì)網(wǎng)頁(yè)從邏輯上分離的技術(shù),而且兩者都能替代CGI使網(wǎng)站建設(shè)與發(fā)展變得較為簡(jiǎn)單和快捷。當(dāng)然,它們也存在不同之處,其中最本質(zhì)的區(qū)別在于:兩者來源于不同的技術(shù)規(guī)范組織,其實(shí)現(xiàn)的基礎(chǔ)是Web服務(wù)器平臺(tái)要求不相同。ASP是基于Windows平臺(tái)的技術(shù),而Java和JSP是跨平臺(tái)的。
在設(shè)計(jì)電子商務(wù)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí),往往需要根據(jù)實(shí)際的應(yīng)用規(guī)模、已有的軟硬件投資和將來可能的發(fā)展等多種因素來綜合考慮。
- 淘寶網(wǎng)店運(yùn)營(yíng)與管理(微課版)
- 網(wǎng)店短視頻制作實(shí)戰(zhàn)寶典:Premiere Pro+After Effects
- 經(jīng)濟(jì)型酒店?duì)I銷推廣·促銷方案·電子商務(wù)
- 天正TArch 2014建筑設(shè)計(jì)從入門到精通
- 直播帶貨:淘寶天貓直播從新手到高手
- 微商運(yùn)營(yíng)、營(yíng)銷、盈利直通車
- 私域電商:存量時(shí)代的增長(zhǎng)裂變法則
- 直播營(yíng)銷與運(yùn)營(yíng):盈利模式+推廣技巧+經(jīng)典案例
- 網(wǎng)店裝修實(shí)務(wù)
- 頭部主播養(yǎng)成計(jì)劃:打造你的超級(jí)帶貨力
- 視覺營(yíng)銷與運(yùn)營(yíng)實(shí)戰(zhàn)從入門到精通
- 短視頻與直播電商(全彩微課版)
- 互聯(lián)網(wǎng)+:跨界與融合
- 玩轉(zhuǎn)互聯(lián)網(wǎng)教育:平臺(tái)搭建+課程制作+運(yùn)營(yíng)推廣+行業(yè)案例
- 超實(shí)用的電商財(cái)稅200問