《數據庫繫統原理與設計》及配套教材《數據庫繫統原理與設計實驗教程》於2009年出版後,得到了數據庫界同仁和學生的很大反響,已被全國40餘所高校選作教材,於2010年12月獲得江西省第四屆普通高等學校優秀教材一等獎,並被江西省教育廳推薦參評教育部普通高等教育“十二五”國家級規劃教材。以該教材為基礎的課程建設、教材建設和教學方法研究不斷深入,我們於2010年6月完成了江西省高等學校教學改革研究課題“‘數據庫繫統及應用’課程的雙主體教學模式與教學方法改革研究”,並於2010年12月獲得江西省第12次優秀教學成果一等獎(成果名稱: “數據庫繫統及應用”國家精品課程建設的探索與實踐). 2011年, "‘數據庫繫統原理’課程探究式教學方法的探索與實踐”立項為江西省高等學校教學改革研究課題。
本書第1版出版後,我們不斷地收到來自教學一線的師生們的反饋。反饋意見認為,本書具有鮮明的特色,尤其是數據庫設計的內容對於學習“如何設計數據庫”有很大幫助,但是學生在實際分析及建模中仍然存在一些困惑。例如,復雜業務中如何在聯繫集和實體集之間取舍,如何標識聯繫集,如何聯繫,業務語義對E-R建模有什麼影響等。針對這些問題,並帶著自己的一些新的思考,我們著手進行修訂。本次修訂仍然圍繞“培養學生會‘用’數據庫”的目標,進一步提升學生的概念建模能力,培養學生會“設計”數據庫。此外,第2版的章節更加合理,可用性更強。
本次修訂的主要內容有:
(1) 對第4章數據庫建模(實體-聯繫模型)和第6章關繫數據庫設計實例(網上書店)進行了重寫。通過引入實體集與聯繫集之間的依賴約束、多值聯繫等概念,將實體集分為基本實體集、弱實體集、依賴實體集和聯繫實體集4類,較好地解決了E-R建模中經常遇到的一些困惑。
(2) 為了適用於不同課時、不同層次的開課需要,將部分章、節的內容作為選講內容,在這些章節前加*標注。◆數據庫繫統原理與設計(第2版) (3) 調整了部分章節的順序,增加和調整了部分章節的例題和習題,對部分概念和文字進行了修改。
(4) 將配套教材《數據庫繫統原理與設計實驗教程》中使用的SQL Server 2000平臺改為SQL Server 2005.
與其他教材相比,本書的主要特點如下。
(1) 強化對關繫數據庫模式的理解,以模式導航圖為工具,使學生深刻理解關繫數據庫邏輯模型,靈活掌握關繫代數和SQL查詢語言。
(2) 以案例為驅動,通過分析應用需求來介紹數據庫建模的基本方法,著力培養學生應用建模的能力,重點是使學生深刻理解數據庫概念模型,提高數據庫設計能力。
(3) 涵蓋了關繫數據庫物理存儲結構、查詢處理和查詢優化等內容。這些內容一是有利於學生更好地理解關繫數據庫的物理模型,二是有利於學生更好地理解關繫數據庫管理繫統(DBMS)的基本原理,三是有利於學生從底層的角度理解SQL查詢。
(4) 從使用者的角度,以應用需求為驅動介紹數據庫的事務、並發、恢復和完整性、安全性等內容,使學生深刻理解關繫數據庫管理繫統(DBMS)的基本原理。
(5) 增加數據庫應用開發和Web數據庫技術介紹,使學生能了解數據庫常用訪問方法和Web數據庫的實現技術,為後續學習和數據庫應用開發實踐打下一定的基礎。
本次修訂由萬常選執筆,廖國瓊、吳京慧、劉喜平、劉愛紅等參與了討論,並對修改稿進行了審閱,提出了許多寶貴的建議和意見。
本書及配套的《數據庫繫統原理與設計實驗教程》(第2版)是國家精品課程“數據庫繫統及應用”的建設教材,有配套的電子課件(需要者請到清華大學出版社網站下載)和課程網站。本書可作為計算機相關專業本科生的數據庫繫統原理課程教材,也可供數據庫愛好者自學和參考。
本書在編寫過程中,參閱了大量的參考書目和文獻資料,在此向參考資料的作者表示衷心的感謝。同時,也對所有關心本書和幫助我們的老師和學生表示衷心的感謝。
限於水平,書中不足之處在所難免,敬請各位讀者批評指正。對本書的意見請反饋給我們(wanchangxuan@foxmail.com),謝謝。
萬常選········································
第1版前言 Foreword 數據庫繫統是計算機繫統的重要組成部分,是企業、機構、互聯網乃至整個信息社會賴以運轉的基礎,在當今社會中扮演著越來越重要的角色。正是由於數據庫具有重要的基礎地位,數據庫理論與技術教育已成為現代計算機科學和相關學科教育中的核心部分,所有計算機及其相關專業的學生都有必要掌握和熟悉數據庫理論與技術。
通過多年的數據庫課程教學,我們發現學生在學習數據庫課程之後,仍然不會“用”數據庫--不會設計數據庫,不會管理數據庫,不會開發數據庫應用程序。帶著這些問題,我們進行了一繫列的數據庫課程的教學改革探索與實踐,並取得了一定的成績,如“數據庫繫統及應用”於2007年獲得國家精品課程立項。目前,雖然數據庫教材很多,但是很難找到完全適合教學需要的教材。於是,我們決定動手編寫一套讓學生會“用”數據庫的教材,一本“夠用”的教材,這便是編寫本書的初衷。本書雖然不一定能完全達到目標,但至少開始了有益的嘗試。
數據庫技術發展至今,已經相當成熟,相關知識博大精深。本書定位於面向計算機及其相關專業本科生的第一本數據庫入門教材,在內容選擇上頗費思量。在構思本書之前,本書作者一直在思考:對於計算機及其相關專業的本科生來說,需要掌握哪些數據庫知識?回答這個問題並不容易,這是因為數據庫知識非常豐富,而且由於課時有限,學生不可能了解所有數據庫知識。另外,不同用戶在使用數據庫時,他們的視角是不同的。數據庫繫統的用戶大致可分為4類: 數據庫管理員、數據庫繫統分析員、數據庫設計人員、數據庫應用程序員及終端用戶。我們認為,計算機及其相關專業的學生既可能做數據庫管理員,也可能成為繫統分析員和數據庫設計員,更可能是數據庫應用程序員。因此,作為一本數據庫入門教材,必須要提供這些方面的知識,為學生以後的深入學習打下基礎。◆數據庫繫統原理與設計(第2版)第1版前言 基於這些考慮,本書內容包括以下幾個部分。
數據庫繫統基本概念(第1章)。該部分介紹了數據、數據管理、數據庫、數據庫管理繫統和數據庫繫統等基本概念。同時,也介紹了數據模型、數據抽像、數據庫模式等概念。
關繫數據庫基礎(第2章和第3章)。第2章介紹了關繫模型(關繫數據結構、關繫操作和關繫完整性約束條件)以及關繫代數;第3章介紹了關繫數據庫的標準語言--SQL,包括數據定義DDL語言、數據控制DCL語言和數據操縱DML語言。
關繫數據庫設計(第4章~第6章)。第4章介紹了數據庫建模方法,包括實體-聯繫模型基本概念、概念模型設計過程以及如何將E-R模型轉化為關繫模型;第5章介紹了關繫數據庫設計理論,著重講述了函數依賴及規範化理論;第6章通過一個實例演示了關繫數據庫設計過程。
關繫數據庫管理繫統(第7章~第10章)。第7章介紹了關繫數據庫物理存儲結構,包括文件組織、記錄組織、索引技術以及物理數據庫設計;第8章介紹了查詢處理技術,包括查詢處理過程、各種關繫操作算法以及查詢優化技術;第9章講述了數據庫完整性和安全技術,包括數據庫安全性、完整性的基本概念和措施,遊標、存儲過程和觸發器,以及應用與安全設計;第10章闡述了事務管理和恢復相關技術。
數據庫應用開發(第11章和第12章)。第11章介紹了數據庫應用繫統的體繫結構、常用數據庫訪問技術和數據庫應用開發技術;第12章介紹了Web數據庫基本概念,討論了Web數據庫訪問技術,並介紹了XML數據庫基本概念。
與其他教材相比,本書的主要特點如下。
① 強化對關繫數據庫模式的理解,以模式導航圖為工具,使學生深刻理解關繫數據庫查詢原理,靈活掌握關繫代數和SQL查詢語言。
② 以案例為驅動,通過分析應用需求來介紹數據庫建模的基本方法,使學生深刻理解關繫數據庫設計思想,提高數據庫設計能力。
③ 增加關繫數據庫物理存儲結構、查詢處理和查詢優化等內容,一是有利於學生從底層的角度理解SQL查詢,二是有利於學生更好地理解關繫數據庫的物理設計,三是有利於學生更好地理解關繫數據庫的優點和缺點。該部分內容可根據授課對像的不同有選擇地教學。
④ 從使用者的角度,以應用需求為驅動介紹數據庫的事務、並發、恢復和完整性、安全性等內容。
⑤ 增加數據庫應用開發和Web數據庫技術介紹,使學生能了解數據庫常用訪問方法和Web數據庫的原理和實現技術,為後續學習和數據庫應用開發實踐打下一定的基礎。
本書由萬常選、廖國瓊、吳京慧和劉喜平編寫,其中,第1、2、7、8章由萬常選執筆,第4、5、6、10章及7.6節、9.6節由廖國瓊執筆,第3、9章及11.1節由吳京慧執筆,第11、12章由劉喜平執筆。萬常選提出本書的編寫大綱,並對全書的初稿進行了修改、補充和總纂。
本書及配套的《數據庫繫統原理與設計實驗教程》是國家精品課程“數據庫繫統及應用”的建設教材,有配套的電子課件和教學網站(http://skynet.jxufe.edu.cn/jpkc/sjk),可作為計算機相關專業本科生的數據庫繫統原理課程教材,也可供數據庫愛好者自學和參考。
本書在編寫過程中,參閱了大量的參考書目和文獻資料,在此向參考資料的作者表示衷心的感謝。
由於作者學識淺陋,書中不足之處在所難免,敬請各位讀者批評指正。編 者