書(第三版序)

 

本書延續前二版的架構和特色:以同一個範例 (網路書店的線上購物系統)貫穿全書來說明資料庫的重要觀念並輔以豐富的圖表說明。本書前兩版在資料庫語言方面都是僅介紹ANSI SQL 的標準語法,不過有學生跟我反應在真正使用某個資料庫管理系統 (DBMS) 時,有時會為了一些語法上的小差異,需要嘗試很久,浪費不少時間。為了解決這個困擾,第三版除了介紹ANSI SQL99的標準語法外,也針對四個台灣地區常用的DBMS,包括OracleSQL ServerMySQL DB2,列舉出其與標準語法的差異處,相信可以讓讀者在實務上更容易上手。因應這個作法,我們在第六、七章做了大幅度的更新。此外,每一章節我們都做了程度不一的潤色,除了在內容上更完整外也用更精確但淺顯的文字表達,期望讀者可以更容易的理解和正確的應用資料庫的觀念。大體說來,本書有以下的特色:

 

1.      完整的內容:本書從如何擷取資訊系統的資料需求,如何設計資料庫綱目、如何使用資料庫語言以存取和更新資料,到如何讓資料查詢更有效率,有非常完整和系統化的說明。此外,我們也介紹業界常需用到的資料庫交易和XML。筆者可以很有信心的說本書確實完整的涵蓋了實務上常用的資料庫理論。

2.      支援實務練習:本書的第十五章介紹了一般讀者較容易接觸到的四個DBMSOracleSQL ServerMySQL 和微軟Access。並在第十六章用實例講解四個常用的Web 程式語言:ASPPHPJSP PERL。這四支可以執行的資料庫程式和三個微軟Access 的範例程式都可以自本書網站下載。此外,本書的範例資料庫 (網路書店的線上購物系統) 之匯入檔也依DBMS 分成數個版本,分別是Oracle、微軟SQL ServerMySQL IBM DB2。讀者可以據以將本書範例資料庫匯入您選用的DBMS 來練習。這些都可自本書網站下載。此外,我們也安裝一套存有網路書店範例資料庫的MySQL 系統,可以自本書網站連結,讀者可以在該系統裡輸入SQL 指令來驗證執行結果。

3.      豐富的圖表:所謂一圖解千文,為讓讀者更容易理解相關概念,本書共有約200 張圖表,以方便讀者配合圖表來澄清觀念。

4.      豐富的練習題和習題:本書的各章節裡穿插了一些有解答的練習題,以適時澄清觀念。每一章的最後也列出一些習題,共約200 題,方便教師們出作業參考或讀者自行練習用。這些習題都是筆者近幾年來教授中山資管系所的資料庫課程時自己出的作業或考試題目,絕大部分是演算題,而非重複書本內容的記誦題。尤其為了強化讀者在資料庫設計方面的應用能力 (這對於資管系所的學生尤其重要),本書在第二、三章概念塑模 (Conceptual modeling) 的習題裡描述了近20 個資料庫應用系統的資料需求,涵蓋了現實生活中讀者可以接觸的許多行業。這些資料庫應用系統並延續至往後幾章的習題裡,讀者們可以選擇其中的一兩個應用系統,由概念塑模至邏輯塑模至關聯運算至SQL 語法,完整練習一次以培養應用能力。

5.      公布部分習題解答:自第一版出版後,筆者即接獲一些讀者的email 希望能有習題解答以方便練習,但當時顧及本書已為不少資料庫課程採用為教科書,所以無法提供。然而筆者也理解充分的練習其實是學習資料庫不可或缺的一步,因此在本書第二版後筆者決定同時兼顧在校生與自學生的讀者,參考一些國外教科書的作法公開近一半的習題解答,並將這些習題解答置於本書網站,以方便同學練習。

 

*  本書結構

為涵蓋不同層次的資料庫理論與實務,本書分成四篇:設計與使用篇、系統篇、進階篇和實務篇。顧名思義,設計與使用篇裡介紹資料庫的設計和使用,包括資料塑模時普遍使用的實體關係模式 (Entity Relationship Model)、大部分DBMS 所使用的關聯模式 (Relational Model) 和正規化 (Normalization),以及使用最普遍的資料庫語言SQL。系統篇則說明DBMS 的內部資料儲存結構,以及查詢處理和交易處理的方式,瞭解DBMS 的內部運作方式有助於資料庫程式設計師撰寫高效率的資料庫應用系統。進階篇則介紹物件導向的資料塑模方式,即擴充實體關係模式 (Enhanced Entity Relationship Model),和目前在網際網路上很熱門的XML 以及其與資料庫的結合方式。在實務篇裡我們簡介台灣

地區使用最普遍的四個DBMSOracle、微軟SQL Server、微軟Access MySQL,並且介紹四個使用最普遍的Web 程式語言:ASPPHPJSP PERL,重點放在如何使用這些Web 程式語言與DBMS 溝通,以撰寫Web-based 的資料庫應用系統。本書各章內容的相依關係如下圖所示:

 

 

其中系統篇(第九,十,十一,十二章)裡敘述DBMS內部儲存以及處理查詢和交易的方式,讀者最好有資料結構的基礎,念起來比較不會吃力。

 

*  給教師

本書內容豐富,以大學部的資料庫課程來說,可以安排兩個學期,以便同學可以充分吸收。第一個學期的重點放在資料庫設計和使用上 (即涵蓋第一章和設計與使用篇的七章),第二個學期再涵蓋系統篇、進階篇和實務篇裡的後八章。若是研究所的課程,則可一週一章,涵蓋全書。實務篇的兩章可請同學自行閱讀,並在課堂上用兩週時間分組報告。當然,實際進度應視同學的吸收程度做調整。此外,難度較高的章節和習題有標星號,您可以依學生程度決定是否跳過。教師手冊 (內含習題參考答案) 請洽 東華書局

 

*  給同學

資料庫的實務有它的理論基礎,而學習資料庫理論的最好方式除了按部就班完全瞭解書中的解說外,也要勤加練習,以確認你的理解是正確的。對於書中的練習和有解答的習題,先獨力做做看,再比較你的答案和所附的解答。請注意解答只是參考用,即使你的答案不同於解答,也不必然是錯的。有任何疑問請多跟同學或任課老師討論。在實務的練習方面,建議同學也利用課程學習一個DBMS和一個Web程式語言,可參考實務篇裡的說明和光碟裡的程式。

 

*  致謝

本書第三版的完成,要感謝許多人的幫忙。其中實務篇的內容和程式由多位中山大學資管所的同學幫忙修正,包括尹川、李世詠、陳隆賢、許博淞和翁玲超。中山資管博士生王思蒼、楊怡芳、郭彥宏、黃建智、黃瑜峰、李玉雯、魏春旺和高浩雲幫忙整理各商用DBMS 與標準SQL 語法的差異處。最後要感謝東華書局編審部盡心幫忙本書的潤稿。

 

*  結語

本書有一個專屬的網站 (http://www.mis.nsysu.edu.tw/db-book),裡頭有課程投影片、SQL 語法練習、練習題和解答、習題和部分解答、範例程式下載、資料庫網路資源,以及勘誤表。讀者若發現本書有任何錯誤,也懇請透過該網站反應給筆者,筆者會將勘誤即時公布在本書網站。

 

 

黃三益2007年夏天於西子灣中山大學