20
10 1. 了解 Web 平台的概念 。 2. 認識企業網際網路的架構 。 3. 了解 Web DBMS 的結合 。 4. 了解企業網際網路資料庫應用的開發 技術。 5. 了解 SQL 在網路應用開發上扮演的 角色。 網際網路與資料庫系統 10.0 學習指引 網際網路 (Internet) 的發展是有目共睹的,不過受資料庫技術影響最大的是西元 1989 年開始出現的 WWW(World Wide Web) ,對於以資料處理為主的互動應用來說, Web 逐漸成為一種重要的平台 。 只要應用系統上了 Web,等於是全球性的應用系統, 所謂的 Web-centric organization 就是指把資訊系統完全建置在 Web 平台上的組織 。 這 樣的轉變需要 DBMS Web 的結合,在雲端運算的環境中,Web 平台一樣扮演重要 的角色 。 10.1 企業網際網路與資料庫系統 企業網際網路 (Intranet) 隨著使用者的增加而用途日廣,全球資訊網的瀏覽器 (Web browser) 也慢慢地變成各種網路應用系統的統一介面,有兩個名詞是我們要先釐 清的 : Intranet Extranet Intranet 是指組織內部的 Web 網站,只能讓組織內部的 成員使用 Extranet 指部分開放給特定外部人士使用的 Intranet 網站 。 由於資料庫系 統內含企業的重要營運資訊,如何將這些資訊導入 Intranet ,使其用途增加,已經成為 Intranet 系統開發的關鍵技術 。

10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

101. 了解Web平台的概念。

2. 認識企業網際網路的架構。

3. 了解Web與 DBMS的結合。

4. 了解企業網際網路資料庫應用的開發

技術。

5. 了解 S Q L 在網路應用開發上扮演的

角色。

網際網路與資料庫系統

10.0 學習指引

網際網路 (Internet) 的發展是有目共睹的,不過受資料庫技術影響最大的是西元1989年開始出現的 WWW(World Wide Web),對於以資料處理為主的互動應用來說,Web逐漸成為一種重要的平台。只要應用系統上了Web,等於是全球性的應用系統,所謂的Web-centric organization就是指把資訊系統完全建置在Web平台上的組織。這樣的轉變需要 DBMS與 Web的結合,在雲端運算的環境中,Web平台一樣扮演重要的角色。

10.1 企業網際網路與資料庫系統

企業網際網路 (Intranet) 隨著使用者的增加而用途日廣,全球資訊網的瀏覽器(Web browser)也慢慢地變成各種網路應用系統的統一介面,有兩個名詞是我們要先釐清的 : Intranet與 Extranet。 Intranet是指組織內部的Web網站,只能讓組織內部的成員使用。Extranet指部分開放給特定外部人士使用的 Intranet網站。由於資料庫系統內含企業的重要營運資訊,如何將這些資訊導入 Intranet,使其用途增加,已經成為Intranet系統開發的關鍵技術。

Page 2: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-2

資料庫系統原理與應用

一般的網頁提供的是屬於比較靜態的 (static) 資訊,由網頁的設計者事先依照各種工具所提供的標準

化語法 (例如 HTML),把資訊格式化成網頁可呈現的型態,然後再放到網頁伺服器的檔案系統中供人取用

觀閱。資料庫的特性和這些傳統的網頁資訊有幾項主

要的差異:

1. 資料量大 : 資料庫裡的資料眾多,異動頻繁,不大可能全部製作成 html 的網頁格式,比較理想的方式是把使用者所需的資料取出來,轉換成 html的格式。

2. 查詢的彈性大 : 使用者對於資料量的查詢是隨機的,所得到的資料也因查詢條件的不同而相異 ; 因此,查詢的結果是動態的,不適合當做靜態的網頁資

訊來處理。

雖然資料庫系統有上述的這些特性,而不適合直接做成靜態的網頁,但是在網頁

瀏覽器上呈現資訊,是目前的主要趨勢,也是多數使用者較能接受的方式;所以,市

場上逐漸推出一些將資料庫以動態的 (dynamic)方式連結到網頁瀏覽器的工具,這些工具甚至於進一步地提供完整的系統開發環境,讓複雜的應用系統能直接以網頁瀏覽

器做為客戶端使用者的介面,形成所謂的企業網際網路的架構 (Intranet architecture)。

圖 10-1是建立動態資料庫連結的基本觀念,Web伺服程式可以看成是傳統主從架構裡的資料庫客戶端程式,送查詢指示給資料庫伺服程式,然後從後端資料庫得到所

要的資料。而Web瀏覽器和Web伺服程式之間則是 Intranet裡的主從關係,以資料庫的查詢而言,通常使用者可從動態的資料庫網頁裡輸入查詢的條件,交由 Web伺服程式處理,從資料庫得到資料後,再由Web伺服程式轉成Web網頁格式的資料。

圖 10-1的陰影部份是目前極為普及的軟體平台,假如能把資料庫系統整合到這個平台裡,等於馬上擁有其廣大的使用者群,而Web伺服程式與後端資料庫的連結,就是這種整合的關鍵技術。通常Web伺服程式只在提供資訊的網站上執行,Web瀏覽器則在大多數連上網路的電腦上都存在,未來極有可能成為作業系統裡必備的應用程式

之一,Web伺服程式則傾向於結合網路的作業系統。Web瀏覽器和 Web伺服程式可能分別由不同的軟體廠商開發,但是任何一種Web瀏覽器都要能從任何一種Web伺服器上經由溝通而得到所要的資料,這是標準化的結果;所以,與資料庫連結時,有幾

個必須考慮的問題:

1. Web 瀏覽器不應該直接與資料庫接觸,以便維持 Web瀏覽器的簡易性及可移植性。

2. Web伺服程式上執行的資料庫溝通程式碼,也與Web瀏覽器的種類無關。

Page 3: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-3

10網際網路與資料庫系統

網頁互動資料

查詢指令

網頁格式資料

資料

圖10-1 動態資料庫連結的基本觀念

以上的要求可保證 Web瀏覽器的通用性,不會因為所要求的資料來自資料庫而無法執行,Web伺服端發展出來的應用系統,在開發時可不必考慮Web瀏覽器的種類,而 Web 瀏覽器也看不到應用系統的程式碼。因此,Intranet 應用系統的開發,是以Web伺服程式所在的環境為主,其內涵與一般的應用系統大同小異,主要的差別在於系統開發時的對內與對外之介面,會與Web伺服程式相關。

目前,Web伺服程式本身逐漸加入了支援系統開發的功能,也有很多獨立於Web伺服程式以外的開發工具,軟體工程中常提到的跨平台開發技術、系統開發的程序等

問題,在 Intranet的系統開發裡有同等的重要性。我們下面就把討論的重點放在 Web伺服程式與資料庫系統之間的連結上。

10.1.1 企業網際網路與資料庫的連結

Web跟資料庫系統會有什麼關係呢 ? 最直覺的想法是把 Web當做資料庫應用的平台。目前 Intranet與資料庫連結的技術發展得很快,但是相對地變動的幅度也比較大,常令人無所適從,尤其是想開發跨平台 Intranet應用系統時,會遭遇到一些無法預期的困難。大多數資料庫系統接受的外來查詢方式,仍舊是以 SQL為主,所以只要應用系統能產生 DBMS接受的 SQL語法,或是利用 ODBC來代勞,就能和很多種資料庫系統溝通。除此之外,應用系統的開發得依賴某種工具或是語言,產生應用系統

所在平台上的可執行碼,這個工具或語言,要能支援 SQL或 ODBC,同時也要能和所用的Web伺服程式的特性相容。

Page 4: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-4

資料庫系統原理與應用

圖 10-2以陰影部份代表開發環境可用的幾種選擇,包括應用程式介面 (API)、腳本語言 (Script language)、共同閘道介面 (CGI, Common Gateway Interface)與 CASE工具。雖然目前這些方式都或多或少與Web伺服程式的種類有關,未來可望擺脫這種相依性,使開發出來的應用系統能直接部署到任何的 Web伺服器上。至於所部署的整合後執行環境,具有和資料庫溝通的能力,使用者從 Web瀏覽器產生的查詢請求,會在Web伺服程式與應用系統的合作下,把資料從指定的資料庫取得,修飾成適當的格式在Web瀏覽器中呈現。開發環境中所採用的方法,將影響執行環境的效能。

整合後的執行環境

應用系統開發程序

應用系統

Web

伺服器

Script Language

ODBC驅動程式

SQL

DBMS1

DBMS2

DBMS3

API

CASE

CGI

圖10-2 企業網際網路與資料庫的連結

10.1.2 企業網際網路資料庫的應用

網際網路 (Internet)是目前世界上延伸的範圍最廣大的資訊網路,Web瀏覽器則是網際網路中使用最普及的應用系統,我們知道作業系統是主宰電腦系統資源的靈魂;

同樣的,Web的主從架構將成為網際網路上資訊資源的出入樞紐,有很多應用系統可以藉Web而得到使用者的認同,因為Web瀏覽器的介面已經逐漸成為大家每天接觸及使用資訊的工具。在資料庫的應用方面,我們可預期的 Intranet應用的領域很多,列舉如下:

1. 商業自動化的應用 : 是目前金融業及相關行業研發的重點,也就是所謂的「電子化商務」 (Electronic commerce),希望能透過網際網路來進行線上的商業行為,所需要的技術就包括與資料庫的連結及網路的安全。

2. 公共服務資訊網的應用 : 靜態的資訊服務,像圖書館目錄、旅遊導覽等,都已經相當的普及 ; 動態的資訊服務,像醫院的線上預約系統、線上稅務系

統、地政戶政查詢系統、房屋仲介詢價系統等,可以依照使用者的需求,提供

資料庫裡的部份資訊,同時也可由使用者的回應,更動資料庫中的資訊。

Page 5: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-5

10網際網路與資料庫系統

資料庫在與網際網路結合之後,將對目前及未來的市場產生很大的影響,圖 10-3描繪出伴隨而來的企業網際網路新結構,主要是以網際網路為基礎,讓企業能直接與

上下游的協力廠商、金融機構、物流中心等交換數位化的資訊,客戶也能透過網際網

路來與企業接觸或進行商業活動,企業內部則把網際網路當做自動化的工具。網際網

路會成為這個新架構的重心,有下面幾個主要的原因:

圖10-3 企業網際網路的新結構

1. 異質性環境的整合 : 由於各行業各企業電腦化與網路化的程度與方式都互有差異,造成軟硬體種類的多元化,網際網路的許多協定已被廣為接受,可化解

已經存在的很多異質性。

2. 普及性 : 網際網路的使用者很多,而且增加得很快,適用於商業活動所要求的普遍性及國際性。

3. 使用者介面的標準化:目前 WWW的瀏覽器是使用者使用網際網路的主要介面,由於使用方式簡易,逐漸變成使用者人數最多的網際網路應用程式。

在企業網際網路的新架構下進行商業活動,仍然要靠各種應用系統的開發,圖

10-4從企業體的角度來看 Internet、 Intranet與 Extranet的架構,小圓形代表各種應用系統,這些應用系統之間的交互作用,就是未來在網際網路上商業活動的重心,而資

料庫則是各企業體擁有的主要資訊資源。

Page 6: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-6

資料庫系統原理與應用

圖10-4 企業網際網路的應用

10.2 網際網路資料庫應用的開發

主從架構系統的開發與測試可以應用到網際網路資料庫應用的開發上面,主從架

構系統隨著使用者需求的複雜化而變得龐大,為了維持系統的正確性、效能、以及開

發時的順暢,主從架構的細部設計與測試過程,有一些輔助的方法與工具,來引導系

統開發者做好各種技術上的抉擇,避免因設計上的缺陷或是測試不周而造成重大的損

失,同時也簡化開發的程序。我們下面就從系統架構 (System architecture)及系統測試(System testing)的角度上,來看Web主從架構系統的開發。

10.2.1 Web系統架構的新發展

Web系統架構其實就是企業網際網路 (Intranet)應用的架構,從傳統的主從架構到企業網際網路應用的架構代表著應用系統為因應需求及結合新技術而產生的轉變,我

們可以把這些轉變分成幾個階段來描述:

1. 以檔案為導向的 (File-oriented)應用系統:例如以檔案為導向的資料庫管理系統只是共享檔案,並非真正的主從架構 ; 當使用者數目增加時,系統的效能

大減。

2. 傳統的主從架構 : 也就是二重式的主從架構系統,可做到資料記錄層次的共享,但是對大型系統而言,在使用者數目或系統負荷增加時,效能不佳。

3. 多重式的主從架構 : 利用應用伺服器的觀念,對伺服器的負荷做適當的調節,同時也提昇客戶端的效能及系統回應。

4. 企業網際網路的架構:將多重式的主從架構移植到 Intranet的環境中,讓使用者有一致的客戶端介面,同時將應用系統的範圍擴展到網際網路上。

Page 7: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-7

10網際網路與資料庫系統

Intranet的架構可以有各種不同層次的選擇,圖 10-5是二重式 (two tier)的 Intranet架構,客戶端對 Web的伺服端發出請求,伺服器回應的結果將執行程式下載給客戶端的 Web 瀏覽器,再由瀏覽器向資料庫索取資料,不管是客戶端對 Web 伺服器,或是客戶端對資料庫伺服器,都算是一種二重式的主從架構,由於其中有 Web 的參與,所以也稱為 Two-tier Intranet Architecture;例如使用 Java或 ActiveX,客戶端可下載applets的程式片斷來進行與資料庫伺服器的溝通。傳統的 two-tier架構在資料庫系統的領域中其實就是所謂的前端 (front-end)與後端 (back-end),前端提供使用者介面,後端提供資料庫的存取功能。

圖10-5 二重式的Intranet架構

圖 10-6 是三重式的 Intranet 架構,可使用 CGI、 NSAPI( 即 Netscape API) 或ISAPI(Internet Server API)等,這些程式或介面可以和Web瀏覽器、 Web伺服器及資料庫伺服器溝通;客戶端對 Web伺服器送出請求後,伺服端啟動中介的 CGI或其他方式寫成的程式片斷,這些程式可以獨立作業,從資料庫取得資料,然後直接傳送給

客戶端的Web瀏覽器。

圖10-6 三重式的Intranet架構

Page 8: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-8

資料庫系統原理與應用

圖 10-7是四重式的 Intranet架構,和三重式的架構類似,但加入了應用伺服器的觀念,其用途和前面應用系統分割中提到的是相同的。雖然 Intranet的架構可以承襲目前 Web應用的普及性,但是在使用者人數多的情況下,也造成了 Intranet架構的瓶頸,以 CGI為例,每個 CGI程序的執行來自於一個 Web瀏覽器的請求,下個請求可能會產生另一個獨立的 CGI程序,當使用者增加時,系統的效能將大減。

圖10-7 四重式或更多重式的Intranet架構

Web與 DBMS的結合有優點也有缺點,傳統的Web server以檔案為資料管理的基礎,倚賴檔案系統的功能,與 DBMS結合以後,資料用資料庫來管理,需要的時候可以用動態的方式擷取出來,自動轉換成網頁的格式,這樣的結合最大的改變是 DBMS的功能被導入 Web 的平台中,我們之前所知道的各種 DBMS 的優點都可以善加運用。在缺點方面,主要是由於 Internet的開放性與安全上的考量,而且由於使用者透過網路來與Web網站連絡,衍生出一些其他的問題,像網路的資料速率、成本與效能等,在開發工具方面,目前雖然進展得很快,但是還是需要一段時間才會比較成熟而

穩定。

10.2.2 Web主從架構系統的測試

一般的主從架構系統要有完整的測試,才能在正式作業之前修正任何可能發生的

錯誤或問題,Web主從架構系統也是一樣,測試的方式有很多種,而且可配合工具的使用來進行:

1. 負載測試 (Load test):從各種環境參數的變更,來看系統效能的改變,例如系統使用者的人數,測試的結果可用來預期系統部署後的效能。

2. 元件測試 (Component test):對於大型的系統來說,直接測試勢必會產生許多錯綜複雜的問題,元件測試可以幫助我們以系統的元件為基礎,理出系統運作

的頭緒來。對於軟體元件的再使用技術來說,元件化是必備的要素,進行元

件測試就更方便了。

Page 9: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-9

10網際網路與資料庫系統

3. 回歸測試 (Regression test):當應用系統必須經歷某些改變時,我們要確定改變後不會影響系統的正常作業 ; 例如作業系統的更新、資料庫定義的改變、

開發環境的變更等,在這種情況下,可以進行所謂的回歸測試。

4. 整合測試 (Integration test):複雜的應用系統可能是由獨立開發的軟體元件組合起來的,雖然我們可以對每個元件進行元件測試,但是各元件組成應用系統

之後,是否能正常作業,要靠整合測試來評估。

5. 物件導向測試 (Object-oriented test):物件導向的系統開發方式和傳統的方法不同,在測試的程序上也有差異,由於物件是組成應用系統的要素,測試的過

程以物件的特性、物件之間的關係以及物件整合以後的行為當做測試的重點。

主從架構系統的測試工具能輔助系統測試的過程,使部份測試的程序自動化,同

時幫助我們了解及分析測試所得的資料,Web主從架構系統的開發工具是否提供類似的功能還有待觀察。一般測試工具 (Testing tool)的功能包括:

1. 系統效能的記錄 : 系統在執行時各種作業的效能,可以透過測試工具來監控並記錄下來;例如輸入輸出 (I/O)的效率、資料庫伺服器的回應時間等。

2. 追蹤測試與偵錯:程式設計層次的測試可以幫助我們把程式的錯誤找出來。一般的測試工具大多能讓程式開發者逐行地執行程式,同時自動地提供有助於

偵錯的訊息 ; 更複雜的測試工具還能讓我們撰寫控制測試過程的小程式,改

變測試的情況。

3. 模擬使用者的行為 : 應用系統作業時與使用者之間的互動可以由測試工具記錄下來,然後重新模擬互動的過程,這時候其他的測試條件可以依序改變,讓

測試工具記錄有用的測試資料。

4. 使用者介面的測試:圖型化使用者介面採用事件驅動 (Event-driven)的模式來作業,測試工具要能偵測及處理和介面元件與控制項相關的資料,才能輔助這

類程式的測試。

5. 測試資料的整理與分析 : 測試工具可以產生及蒐集測試資料,依照使用者的要求輸出報表,來幫助測試結果的分析。

10.2.3 網際網路資料庫連結的實務

Intranet 和資料庫的連結在實務上最常使用的是標準化的協定,ODBC (Open Database Connect ivi ty) 是用來連結資料庫的介面標準,Windows 的控制台中有「ODBC資料來源」,透過這個程式,使用者可以登錄現存的資料庫,讓作業系統知道有這樣一個 ODBC的資料來源,一旦有應用程式使用 ODBC存取資料,就可以指定目前已登錄的資料源。

Page 10: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-10

資料庫系統原理與應用

ODBC 由於發展時間較長,已經是相當成熟的技術, JDBC (Java Database Connectivity) 的觀念和 ODBC 類似,由於還在發展當中,JDBC 的驅動程式 (driver)有幾個不同的種類,其中 JDBC-ODBC br idge 的作法是將 JDBC 的呼叫轉換成ODBC 的呼叫,由於 ODBC 相當普及,只要能做到上述的轉換,就可以和各種資料庫系統溝通。

圖10-8 JDBC連結資料庫的架構

JDBC API 是撰寫連結資料庫的 Java程式時會用到的現有程序庫,目前仍有很多相關的發展,假如想知道市場上有那些 JDBC的產品,大家可以從 Oracle公司的網站上找最新的資料。圖 10-8畫出 JDBC連結資料庫的架構,在二重式的架構中,客戶端(即 client)的 Java application所做的 JDBC呼叫,可經由 JDBC driver轉換成對資料庫系統的存取呼叫。在三重式的架構中,client不會直接和資料庫系統溝通,必須透過Web server到資料庫系統中存取資料。

三重式的架構可以透過多出來的中間層 (例如圖 10-6 中的 Web server) 調節外界對於資料庫的使用,分擔後端資料庫伺服器的負載,同時使各層都有擴充的空間與彈

性。多重式 (Multi-tiered)的架構並不僅限於 Java的環境,但是 Java的特性與發展是有利於分散的多重式架構。

Page 11: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-11

10網際網路與資料庫系統

10.3 XML技術的影響

HTML 是目前網際網路上最普及的標記語言,HTML 文件是 Web 伺服器提供資訊的主要格式,但是 HTML缺乏特化 (Specialization)的功能,也就是說,有些比較特別的、個人化的需求,很難用 HTML來達成,HTML提供的標籤 (tag)有限;因此,有人想到是否能發展出讓使用者自訂標籤的標記語言,這是 XML產生的主因之一。XML仍然保有 HTML簡易的特性,除了能支援自訂標籤化,XML文件的結構可以透過程式語言 (例如 Java)來處理,所以對於資訊的提供來說,可以有更大的彈性,和資料庫系統間也有了更緊密的連結。有人預測 XML是未來網路商務的新寵,雖然目前尚未看到其影響,其一旦各種支援性的開發工具以及 XML 的標準成熟後,應該會對網際網路的市場產生很大的衝擊。

要了解 XML 得先知道 HTML 是什麼,圖 10-9 畫出 HTML 使用的環境,基本上,Web伺服器可以提供 HTML文件給 Web Client端的瀏覽器,由於 HTML文件呀有一些標籤,用來控制文件呈現的程式,Web瀏覽器必須看得懂這些標籤,並做適當的處理,假如沒有看過 HTML 文件的標籤,可以試著上網連上網頁,檢視其原始檔案,就可以看到很多用角括弧 (即 <與 >)包圍起來的標籤,所以 HTML也被稱做是一種標記語言 (Markup language),由於 HTML經過了標準化,而且被絕大多數人所採用,HTML文件變成網頁的標準格式。

雖然 HTML 沿用已久,但是有很多功能和需求並不是原來 HTML 的語法所能支援的,因此,HTML語法的擴充與延伸變成無法避免的趨勢,不過,大家都不願見到HTML因為變得複雜而失去市場上普及的優勢,XML就是在眾多考量下的新發展。

圖10-9 HTML文件使用的環境

Page 12: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-12

資料庫系統原理與應用

10.3.1 XML的源起

HTML (Hypertext Markup Language)是建立Web文件的標準化語言,由於語法簡易,廣被接受,成為目前大多數網路資源存在的型式。但是,HTML無法滿足一些更深入的需求,我們只能從 HTML的標籤看到原始文件如何被格式化,產生多元化的外觀,除此之外,這些標籤就沒有其他的用途了。像 HTML這樣的格式化功能,也叫做描述性的標記 (Descriptive markup),可讓我們精確地刻劃出文件的結構,郤不必擔心未來是那一種軟硬體平台會用來處理該文件。

為了延伸 H T M L 的功能,人們想到是否能讓使用者自訂標籤,因而有了SGML(Standard Generalized Markup Language)的發展,但是 SGML郤過於龐大複雜,所以後來才會再衍生出 XML(eXtended Markup Language),重拾了簡單易用的特性,同時也兼具了自訂標籤的彈性,這些特性使 XML 在網路商務的發展上產生了極大的影響。在解釋 XML之前,我們得共從 SGML談起。

什麼是SGML ?

SGML 其實並不算是一種 Markup language,應該當做是描述 Markup language的語言,所以 HTML 是由 SGML 定義出來的,而我們可以依照一些特殊的需求,用SGML定義個別化的 Markup language。簡單地說,SGML可用來建立文件型式的定義 (DTD, Document Type Definitions),DTD描述其種文件型式的結構,並定義出可格式化該類文件的標籤 (tag)。 SGML 並未成功的普及化,因為 SGML 本身必複雜了,使用上又必須遵循一些很嚴謹的規則,發展緩慢導致功能不夠齊全,所以和 HTML受歡迎的程度比較起來,有相當大的差異。

什麼是XML ?

要介紹 XML得先從 HTML的優缺點談起,HTML因功能和用法簡易而成功,但也因而無法滿足一些重要的需求,人們希望能透過 Web 瀏覽器看到類似雜誌的文件外觀,假如硬要用 HTML 來達到這樣的目標,會遭遇很大的困難。有人想到要擴充HTML來滿足多元化的需求,郤反而讓 HTML失去了簡易的特性,不過也有一些比較好的改善方式,像 HTML 4.0的版本導入了 style sheet的方法,每一種 style sheet告訴 Web瀏覽器如何呈現某一種文件的組成,如此一來,就不必靠增加新的標籤來處理各種呈現的方式。目前 Web瀏覽器多半支援 CSS(Cascading Style Sheets)的標準。當然,HTML還有其他的問題,例如在資訊的搜尋上,我們無法從標籤得到任何的幫助,也看不到與文件內涵有關的結構。XML 就是在這樣的背景下發展出來的,不但保存了 HTML簡易的特性與跨平台的優點,也提供了自訂標籤的彈性,有很多與網路

Page 13: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-13

10網際網路與資料庫系統

商務有關的應用,已經可藉由 XML的功能來開發。雖然目前標準化和普及化的工作仍在進行中,很多人都看好 XML的發展。

10.3.2 XML的特徵

XML既然也是一種標記語言,特徵上必然和 HTML十分類似,也是用標籤 (Tag)來標記文件的格式,我們下面就來看看 XML 具有那些特徵。和 HTML 比較起來,XML最大的優點在於 XML的文件有可資利用的結構,當然,先決條件是 XML文件本身是形式完好的 (well-formed),也就是說,我們可以經由某些規則來發掘 XML文件的結構。可解讀 XML文件的瀏覽器 (browser)或編輯品 (editor)能將 XML文件對應到一個樹狀的結構,例如圖 10-10中左邊的 XML文件就可以對應到右邊的結構,雖然所用的標籤都是自訂的,不知這些標籤用途的人還是看得出 XML文件的結構。

假如要求 XML 文件是有效的 (va l id),則要先定義所謂的「文件型式宣告」 (DTD,Document Type Declaration),DTD告訴我們在撰寫某種 XML文件時應該遵循的特殊規則以及可用的標籤,未來 DTD的內容就可用來檢查該種類型的 XML文件。很多人看到 DTD的規格之後都覺得很麻煩,但實際上一般人很少會自己寫 DTD,多半都是別人寫好,當我們使用時可能已經有一些軟體工具來幫助撰寫符合某種 DTD規定的 XML文件。

圖10-10 XML文件隱含的結構

既然 XML 文件標榜可用的結構,這些結構對我們有什麼用途呢?舉例來說,當我們點選 HTML文件裡頭的某個超連結 (hyperlink)時,會進入另一個網頁,因為該超連結就代表一個網頁,假如是 XML 的文件,我們可以設計成只擷取文件中的某一部分,這可由 XML文件的結構與自訂標籤來達成。圖 10-11是另外一個有趣的例子,伺服器上有程式可從後端資料庫擷取資料,若是放在 HTML 中,使用者端的瀏覽器無法分出資料欄位,若是建立成 XML文件,就可以附上一個 Applet,在使用者端提

Page 14: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-14

資料庫系統原理與應用

供一個瀏覽介面,讓使用者能逐筆記錄查詢與瀏覽,這樣的架構可以應用在電子商務

上,因為使用者端下載 Applet執行後可能看到一個訂單的輸入畫面與商品的介紹,可填入資料後送回伺服器下訂單。

資料庫

資料

伺服器

含資料的 XML 文件與 Applet

瀏覽器

圖10-11 XML的應用實例

10.3.3 用XML來發展應用系統

從前面的例子我們發現 XML 文件可以儲存類似於來自資料庫裡的資料記錄,既然 XML 文件會產生一個樹狀結構,我們可以把這個樹狀結構對應到資料記錄的結構,那麼 Java 程式就能透過資料結構的處理,模擬資料庫的功能。假如再加上圖型化的使用者介面,就更像一個資料庫的應用系統。圖 10-12 畫出上述的觀念,對於 Java 程式而言,在 XML parser 的幫助之下,XML 文件可以變成一個虛擬的資料庫 ; 可能有人會問 : 為什麼不讓 Java 程式直接和原來的資料庫聯繫,主要的原因是 XML 文件中的資料可能本來就不是來自資料庫系統,或者來源資料庫在遠方,Java 程式無法直接存取,但是 XML 文件卻可在網路上自由地流通,對於使用者來說,並不在乎資料的來源系統。

圖10-12 用XML與Java來建立資料庫的應用

對於一個形式完好而且有效的 XML 文件來說,我們可以很清楚的看到這個文件中有那些資料,如何分割,但若是 XML 檔案十分的龐大,就不太容易以目視來辨別,XML 文件的產生也是一樣,大的 XML 文件不太可能以人工的方式來輸入 ; 因此,XML 文件的產生和處理,應該都是透過程式來自動進行,圖 10-13 說明了這個

Page 15: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-15

10網際網路與資料庫系統

事實,在虛線以外的部分,我們只看到使用者透過 Web瀏覽器來存取一個遙端資料庫裡的資料,虛線裡面說明了可採用的做法;首先,第 1個 Java程式從資料庫取得資料,在 Parser的輔助下自動產生了 XML文件,XML文件傳到另一端的主機後,由第 2個 Java程式來解讀,第 2個 Java程式可以用 Applet的方法出現,產生一個圖型化的介面,同時在事件驅動的模式下提供資料,Java程式中的類別含有處理事件的程式碼,我們可以讓使用者按下顯示 XML內容的按鈕,Java Applet就會擷取並呈現 XML文件中的資訊。

圖10-13 資料庫與XML文件的連結

從圖 10-14可以比較清楚的表示 XML的應用架構,圖 10-13中第一個 Java程式可看成是一個 Servlet,第二個 Java程式則是下載的 Applet, XML Parser在兩端的平台上都支援,如此一來,就產生了很簡單的 XML應用架構,對於了解 Java程式設計的人而言,要再加上 XML的處理並不會感受到太多的困難。

圖10-14 XML的應用架構

Page 16: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-16

資料庫系統原理與應用

10.3.4 相關資料

XML還在發展當中,www.xml.org是有名的 XML網站,圖 10-15顯示該網站的資源,有關於 XML文法的規則,我們並未深入探討,大家可以從 http://www.w3.org的網址找到一些標準化的資料,像圖 10-15中所列出的一些技術性文件就相當有參考的價值。有一些新的發展也可以透過相關的資料來發掘。像前面所用的 Java程式仍使用 JDK 1.0版的語法,當 JDK改版的時候,也會影響 XML的一些支援軟體,這一類的資訊都要動於觀察。

圖10-15 XML組織的網站

圖 12-16 顯示 www.w3.org 的首頁,和 XML 相關的開發軟體已經逐漸成熟,至於 XML 是否會如預期的產生鉅大的影響,則仍有待觀察,像 SGML 雖然有很好的遠景,郤失之於其複雜性。除了前面探討的 XML 文件的語法之外,XML Links 也是 XML標準的一部分,延伸了 HTML超連結的觀念,相關的標準化文件可從 http://www.w3.org/TR/WD-xml-link-970731的網址上找到。XML Link支援多方向性的連結(Multidirectional link)和一些有異於傳統超連結的功能。

Page 17: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-17

10網際網路與資料庫系統

圖10-16 與XML相關的資源(資料來源:www.w3.org)

10.3.5 XML的新發展

由於有越來越多的應用系統使用 XML 來進行資料的交換、處理與儲存,於是產生了一些處理 XML資料的工具。有了工具的輔助以後,XML的使用會更方便,應用也越廣泛。

1. XPath(XML path language)是一種描述路徑表示法 (path expressions)的語言,屬於一種宣告式的查詢語言 (declarative query language),在設計上是用來與 XSLT 和 XPoin te r 搭配,XSLT 有型式比對 (pa t t e rn ma tch ing) 的功能, XPointer用來定址 (addressing)。

2. HTML的預設型式 (default styling)已經建入Web browser中,因為 HTML使用的 tag是固定的。CSS(cascading stylesheet specifications)雖然能讓開發者有修改的彈性,但是十無法改變一個文件的結構。XSL(eXtensible Stylesheet Language)可以用來定義 XML文件資料處理的方式,以及如何將 XML文件轉換成其他的文件。XSLT是一種處理轉換的語言 (transformation language),是XSL的子集合。

3. XQuery是用來針對 XML資料進行查詢的工具。

在上面這些語言中,XML資料都是以一種 tree model來描述,一個 XML文件可以看成是一個 tree,其中的節點 (node)代表元素 (elements)與屬性 (attributes) 。XML是與 Web網站相關的標準化技術,但是所產生的影響並不僅止於這個領域,其他的領域,例如資料庫系統,也都有 XML的運用。

Page 18: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-32

自 我 評 量

1. 請用自己的話說明 Internet、 Intranet與 Extranet的差異。

2. Web平台上的資料庫存取可以透過那些方式來進行 ?

3. Web平台上的資料庫應用系統開發有那些工具可用 ?

4. 除了 XML parser之外,應該還有那些種類的工具,來幫助我們使用 XML ?

5. XML和電子化商務有什麼樣的關聯 ?

6. 試由網路上取得 Apache Web server、 PHP與 MySQL的軟體,安裝設定好之後用來測試本章中的範例。

7. 本章中 MySQL與 PHP的整合技術,有那些潛在的應用 ? 試列舉 3種。

Page 19: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-33

延 伸 學 習

Intranet系統的開發需要適當的開發工具,不過大部分的 Intranet系統都需要對資料庫進行存取,因此開發工具除了要有描述應用邏輯的功能之外,還要能對資料

庫進行存取。由於這一部分的發展種類很多,很容易混淆,以下是幾種比較有名的

開發方式 :

1. 採用草稿語言 (scripting language) : 用 scripting語言寫的程式碼可以放在HTML的檔案中,當 Web browser開啟該檔案對應的網頁時,程式碼就會下載到Web browser。這樣一來,client端的固定功能會很單純,多元化的運算邏輯可以隱含在 script code中。常見的 scripting語言包括 JavaScript、 VBScript、 Perl與 PHP等。

2. Web server的擴充 : Web server經過擴充以後可以提供 API,由於這些 API是 Web server的一部分,效率會優於 CGI,不過也因為這樣可能造成一些錯誤拖累Web server。Netscape Server API (NSAPI)與 Microsoft的 Internet Information Server API (ISAPI)都是這一類的 API。

3. 使用 CGI (common gateway interface) : CGI定義Web server與一個 CGI程式之間交換資訊的方式。由於 CGI是通用的規格,所以可以跨 Web server使用。

4. 與 Java有關的技術 : Java在Web平台上的發展相當迅速,除了語言本身具有跨平台與物件導向的特性之外,還有一些跟 Web相關的工具與介面,例如連接資料庫的 JDBC與 SQLJ,以及發展Web應用的 servlet與 JSP。

5. 特殊的平台或解決方法 : 微軟有所謂的Web solution platform,Oracle提供Oracle Internet Platform。這些發展也會影響Web平台上的軟體開發。

本章後面所介紹的 Apaceh Web server + MySQL + PHP 的軟體環境中,顯然SQL 扮演著十分重要的角色。剛好目前網際網路的應用相當熱門,所以使用的機會就增加了,趁這個時候認識 SQL,可能有一天派得上用場 !

Page 20: 10epaper.gotop.com.tw/pdf/AED002100.pdf · 10-3 網際網路與資料庫系統 10 網 頁 互 動 資 料 查 詢 指 令 網 頁 格 式 資 料 資 料 圖10-1 動態資料庫連結的基本觀念

10-34

參 考 文 獻 與 資 料

(Connolly 200)對於Web與 DBMS的結合花了很多篇幅介紹,這是一般資料庫系統的教科書中比較少見的情況。由於這一方面的發展比較新,很多資料可以直接

從網站上瀏覽。下面列出一些值得參考的網站 :

1. PHP (www.php.net)

2. MySQL (www.mysql.com)

3. W3C (ww.w3.org)

4. Microsoft (www.microsoft.com)

5. Oracle (www.oracle.com)

6. Sybase (www.sybase.com)

7. Apache (www.apache.org)

8. Perl (www.perl.com)

9. Sun (java.sun.com)

10. IBM (www.ibm.com)

11. PostgreSQL (www.postgresql.com)

▓ Connolly, T. and C. Begg. 2002. Database Systems : A Practical Approach to Design,

Implementation, and Management. 3rd Ed. Addison Wesley.]

PHP與 MySQL的資料可以參考網路上或是軟體說明手冊中的資料,市面上的書籍也相當多,當然本章的重點在於學習 SQL 語言,倒是後面講到網際網路資料庫的時候,PHP與 MySQL是可以考慮採用的資料庫與開發方法之一。