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