內容簡介
本書是數據庫領域的經典暢銷著作,被世界多所大學選為教材,同時被廣大技術人員和管理人員視為必讀書。本書作者曾在工業界緻力於數據庫係統的設計,後進入學術界精耕於教學,深諳專業人士和非專業人士在使用和學習數據庫時的痛點。因此,本書采用這兩類讀者都易於接受和理解的方式,全麵介紹數據庫設計、實現和管理的基本理論、方法和技術。
目錄
目 錄
齣版者的話
譯者序
前言
第六部分 分布式DBMS與復製
第24章 DDBMS—概念與設計2
24.1 引言3
24.1.1 概念3
24.1.2 DDBMS的優缺點6
24.1.3同構DDBMS和異構DDBMS8
24.2 網絡概述10
24.3 DDBMS的功能和體係結構13
24.3.1 DDBMS的功能13
24.3.2 DDBMS的參考體係結構13
24.3.3 聯邦MDBS的參考體係結構14
24.3.4 DDBMS的組成結構15
24.4 分布式關係數據庫設計16
24.4.1 數據分配17
24.4.2 分段18
24.5 DDBMS的透明性24
24.5.1 分布透明性24
24.5.2 事務透明性26
24.5.3 性能透明性29
24.5.4 DBMS透明性31
24.5.5 DDBMS的透明性小結31
24.6 Date 關於DDBMS的12條規則31
本章小結32
思考題33
習題34
第25章 DDBMS—高級概念35
25.1 分布式事務管理36
25.2 分布式並發控製36
25.2.1 目標36
25.2.2 分布串行性37
25.2.3 鎖協議37
25.3 分布式死鎖管理39
25.4 分布式數據庫恢復42
25.4.1 分布式環境中的故障42
25.4.2 故障對恢復的影響43
25.4.3 兩段式提交44
25.4.4 三段式提交48
25.4.5 網絡分區51
25.5 X/Open分布式事務處理模型53
25.6 分布式查詢優化55
25.6.1 數據定位56
25.6.2 分布式連接58
25.6.3全局優化59
25.7 Oracle中的分布特性62
本章小結67
思考題67
習題68
第26章 復製與移動數據庫69
26.1 數據庫復製簡介70
26.1.1 復製的應用71
26.1.2 復製模型71
26.1.3 復製協議的功能模型71
26.1.4 一緻性72
26.2 復製的體係結構73
26.2.1 基於內核的復製73
26.2.2 基於中間件的復製73
26.2.3 更新處理74
26.2.4 更新傳播75
26.2.5 更新場所(數據所有權)76
26.2.6 終止協議78
26.3 復製模式79
26.3.1 積極主備份79
26.3.2 懶惰主備份83
26.3.3 積極隨處更新86
26.3.4 懶惰隨處更新86
26.3.5 使用統一全序廣播的隨處更新89
26.3.6 SI與統一全序廣播復製92
26.4 移動數據庫簡介97
26.4.1 移動DBMS98
26.4.2 與移動 DBMS相關的問題98
26.5 Oracle中的復製108
本章小結113
思考題114
習題114
第七部分 對象DBMS
第27章 OODBMS——概念與設計118
27.1 下一代數據庫係統119
27.2 OODBMS簡介120
27.2.1 麵嚮對象DBMS的定義120
27.2.2 函數數據模型122
27.2.3 持久型編程語言125
27.2.4 開發OODBMS的可選策略126
27.3 OODBMS的持久性127
27.3.1 指針切換技術128
27.3.2 訪問對象131
27.3.3 持久性模式132
27.3.4 正交持久性133
27.4 OODBMS中的問題135
27.4.1 事務135
27.4.2 版本135
27.4.3 模式演化136
27.4.4 體係結構139
27.4.5 基準測試141
27.5 OODBMS的優點和缺點142
27.5.1 優點143
27.5.2 缺點144
27.6 ORDBMS與OODBMS的比較145
27.7 麵嚮對象數據庫設計146
27.7.1 麵嚮對象數據建模與概念數據建模的比較146
27.7.2 聯係和引用完整性147
27.7.3 行為設計149
27.8 采用UML的麵嚮對象分析與設計150
27.8.1 UML圖151
27.8.2 UML在數據庫設計方法學中的應用155
本章小結156
思考題157
習題158
第28章 OODBMS——標準與係統159
28.1 對象管理組159
28.1.1 背景160
28.1.2 公共對象請求代理架構162
28.1.3 其他OMG規範166
28.1.4 模型驅動的架構167
28.2 對象數據標準ODMG 3.0170
28.2.1 對象數據管理組170
28.2.2 對象模型171
28.2.3 對象定義語言177
28.2.4 對象查詢語言178
28.2.5 ODMG標準的其他部分183
28.2.6 將概念設計映射為邏輯(麵嚮對象的)設計186
28.3 ObjectStore187
28.3.1 總體結構187
28.3.2 構建ObjectStore應用程序189
28.3.3 ObjectStore中的數據定義190
28.3.4 ObjectStore中的數據操作193
本章小結196
思考題197
習題197
第八部分 Web與DBMS
第29章 Web技術與DBMS200
29.1 Internet和Web簡介201
29.1.1 企業內聯網與外聯網202
29.1.2 電子貿易和電子商務203
29.2 Web203
29.2.1 超文本傳輸協議204
29.2.2 超文本標記語言206
29.2.3 統一資源定位符207
29.2.4 靜態和動態網頁208
29.2.5 Web服務208
29.2.6 對Web與DBMS集成的需求209
29.2.7 Web-DBMS方案的優缺點210
29.2.8 集成Web與DBMS的方法212
29.3 腳本語言213
29.3.1 JavaScript和JScript213
29.3.2 VBScript214
29.3.3 Perl和PHP214
29.4 公共網關接口215
29.4.1 嚮CGI腳本傳遞信息216
29.4.2 CGI的優缺點217
29.5 HTTP Cookie218
29.6 擴展Web服務器219
29.7 Java220
29.7.1 JDBC223
29.7.2 SQLJ227
29.7.3 JDBC和SQLJ的比較227
29.7.4 管理容器持久性228
29.7.5 JDO231
29.7.6 JPA237
29.7.7 Java servlet243
29.7.8 JSP244
29.7.9 Java Web服務245
29.8 Microsoft的Web解決平颱246
29.8.1 通用數據訪問247
29.8.2 ASP和ADO248
29.8.3 遠程數據服務250
29.8.4 ASP和JSP的比較251
29.8.5 Microsoft .NET251
29.8.6 Microsoft Web服務255
29.9 Oracle Internet平颱255
29.9.
精彩書摘
《數據庫係統:設計、實現與管理(進階篇)(原書第6版)》:
可伸縮性差Web應用程序可能麵對不可預測的和潛在的巨量峰值負載。這需要開發具有可伸縮性的高性能服務器體係結構。一種被稱為“Web農場”的技術可以提高可伸縮性,允許兩個或多個服務器構成同一個站點。HTTP請求以羅賓環(round-robin)的方式被路由到“農場”中的每個服務器上,這樣可以均勻分布負載並允許站點處理更多的請求。然而,這可能導緻維持狀態信息變得更加復雜。
HTML的功能有限雖然超文本提供瞭普遍和容易使用的界麵,但這種簡單性也意味著,一些高度交互的數據庫應用不能被輕鬆地轉換為對用戶同樣友好的基於Web的應用程序。如在29.3節所討論的那樣,可以使用JavaScript和VBScript這樣的腳本語言,或者使用Java或ActiveX組件為Web頁麵添加額外的功能,但是這些技術對於初級入門用戶來說大多過於復雜。此外,下載和執行這些代碼都需要增加一些性能開銷。
無狀態如同在29.2.1節所提到的那樣,Web環境目前的無狀態特性使得數據庫連接及用戶事務的管理都變得睏難,需要應用程序維護管理額外的信息。然而,近來的Web服務器技術簡化瞭這一問題。
帶寬目前,局域網上數據包傳輸的速率對於以太網來說可達到100M位/s(bps),對於ATM來說可達到2.5G位/s。比較而言,在Internet最快的那一部分,包傳輸的速率也隻能達到1.544M位/s。因而帶寬是Internet受限的資源,但即使是最簡單的任務(例如處理錶格)也要跨網絡來調用服務器,這使得帶寬問題變得更復雜。
……
前言/序言
前 言背景在過去的30年中,數據庫的研究帶來瞭巨大的生産力,使得數據庫係統成為軟件工程領域最重要的成果。目前,數據庫作為信息係統的基本框架,已從根本上改變瞭許多公司的運作方式。特彆是在最近幾年裏,隨著這項技術本身的發展,産生瞭一些功能更強大、使用更方便的係統。這使得數據庫係統變得越來越普及,用戶類型也越來越廣泛。遺憾的是,正是由於數據庫係統的簡單性,許多用戶有可能尚缺乏必要的知識,還不懂得如何開發正確且高效的係統,就開始創建數據庫及其應用程序瞭。這樣很可能導緻所謂的 “軟件危機”(software crisis,有時也稱為“軟件抑鬱”(software depression))的延續。
編寫本書的最初動因是我們在工業界的工作經曆,當時我們為新軟件係統中數據庫的設計提供谘詢,間或也解決遺留係統中存在的種種問題。進入學術界後,我們從另一類用戶—學生那裏發現瞭類似的問題。因此,本書的目標就是給齣一本教程,盡可能清楚地介紹數據庫的基礎理論,並給齣一套既能為專業技術人員亦能為非技術人員所用的數據庫設計方法學。
本書針對當前主流的商用産品—關係數據庫管理係統(DBMS)給齣的設計方法學,已在學術界和工業界測試和使用瞭許多年。它包括三個主要階段:數據庫的概念設計、邏輯設計和物理設計。第一個階段在不考慮任何物理因素的前提下設計概念數據模型,得到的數據模型在第二階段被細化為邏輯數據模型,細化過程主要是去除在關係係統中無法錶示的結構。在第三階段,邏輯數據模型被轉換成針對目標DBMS的物理設計,物理設計階段主要考慮如何設計存儲結構和訪問方法,以便有效並安全地訪問存儲在輔存中的數據庫。
該方法學按階段被分為一係列步驟。對於缺少經驗的設計者,最好按步驟進行設計,這裏所提供的指南可幫助你完成整個過程。對於有經驗的設計者,該方法學的指導作用顯然會弱化,但經常可用於開發框架和檢查列錶。為瞭幫助讀者學習使用上述方法學並理解其要點,整個方法學的描述中始終貫穿一個完整的DreamHome案例研究。附錄B還給齣瞭另外三個案例,供讀者自行研究。
UML(統一建模語言)越來越多的公司都在規範各自的數據建模方法,即選擇一種特定的建模方法並在整個數據庫開發項目中始終如一地使用它。一種在數據庫概念設計和邏輯設計階段較為通用的高級數據模型是ER(實體-聯係)模型,這也是本書采用的模型。由於當前還沒有錶示ER模型的標準方法,因此大部分書籍在描述關係DBMS的數據庫設計時,常常使用下述兩種錶示方法之一:
Chen氏錶示方法,即用矩形錶示實體,用菱形錶示聯係,用綫段連接矩形和菱形。
Crow Feet(鴉爪)錶示方法,仍用矩形錶示實體,用實體間的連綫錶示聯係,在一對多聯係連綫的多端有一個鴉爪標記。
當前,這兩種錶示方法都有計算機輔助軟件工程(CASE)工具。然而,它們都難於使用和解釋。本書的較早版本曾使用Chen氏錶示方法,而在隨後培生教育齣版集團進行的一次問捲調查中,比較一緻的意見是應該使用最新的稱為UML(Unified Modeling Language,統一建模語言)的麵嚮對象建模語言。UML錶示方法結閤瞭麵嚮對象設計三大流派的成分:Rumbaugh的OMT建模語言,Booch的麵嚮對象分析和麵嚮對象設計,以及Jacobson的Objectory。
換用錶示方法主要有以下三個原因:(1)UML正成為一種工業標準,例如,對象管理組(OMG)已經采納UML作為對象方法的標準錶示方法;(2)UML錶達清楚並易於使用;(3) UML目前已被學術界用於麵嚮對象分析與設計的教學,在數據庫模塊的教學中也使用UML將會更加一緻。因此,在這個版本中,我們將采用UML的類圖作為ER模型的錶示方法。讀者將會發現這種錶示方法更加容易理解和使用。
第6版的更新之處擴展瞭第3章“數據庫的結構與Web”,增加瞭雲計算。
修改瞭第21章“數據管理中的職業、法律與道德問題”。
增加瞭“數據倉庫與時態數據庫”(31.5節)。
每章後增加瞭新的思考題和習題。
修改瞭與SQL相關的章節,全麵反映2011年公布的新標準SQL:2011。
修訂瞭第26章“復製與移動數據庫”。
修改瞭關於Web-DBMS集成和XML的章節。
與Oracle相關的內容一律修改為針對Oracle 11g。
讀者對象本書可作為本科生數據庫管理或數據庫設計的導論性教材,也可作為研究生或高年級本科生相關課程的教材,學時可分為一到兩個學期。通常信息係統、商業IT或計算機科學等專業都包含這類課程。
本書還可以作為一些IT專業人士的參考書,如係統分析和設計人員、應用程序開發人員、係統程序員、數據庫從業人員及獨立的自學者。隨著當今數據庫係統的廣泛使用,這些專業人士可能來自於需要數據庫的任何類型的公司。
讀者在學習關於物理數據庫設計的第18章和關於查詢處理的第23章之前,如果對附錄F中介紹的文件組織和數據結構相關概念有清楚的瞭解,那麼將會有所幫助。理想的情況是這些背景知識已從前導課程中獲得。如果不具備這個條件,則可以在開始數據庫課程後,學完第1章立即學習附錄F。
如果讀者已經掌握瞭一門高級編程語言,比如C,那麼在學習附錄I的嵌入式與動態SQL和28.3節的ObjectStore時會更有成效。
突齣特點(1)為數據庫邏輯設計和概念設計提供瞭易用、逐步指導的方法學,該方法學基於廣泛采用的實體-聯係模型並將規範化作為驗證技術。此外,通過一個完整的案例研究來說明如何使用這套方法學。
(2)為數據庫物理設計提供瞭易用、逐步指導的方法學,包括:邏輯設計到物理實現的映射,文件組織方法的選擇,適閤應用程序的索引結構,以及何時引入可控冗餘。此外,通過一個完整的案例研究來說明如何使用這套方法學。
(3)用獨立的章節來講解以下三個主題:數據庫設計階段在整個係統開發生命周期中的位置與作用;如何使用實況發現技術來獲取係統需求;如何將UML用於整個方法學。
(4)每章都采用清晰且易於理解的錶述方法,如突齣顯示定義,明確給齣各章學習目標,在各章最後進行小結。通篇使用瞭大量示例和圖錶來說明概念。來自現實生活的DreamHome案例研究貫穿全書,另外還給齣若乾案例供學生選作課程實踐題目。
(5)擴充瞭下列最新的正式標準及事實標準:結構化查詢語言(SQL),舉例查詢(QBE),麵嚮對象數據庫的對象數據管理組(ODMG)標準。
(6)利用三章的篇幅,以教程式風格介紹SQL標準,包含交互式和嵌入式SQL。
(7)專設一章討論IT和數據庫中的職業、法律與道德問題。
(8)全麵討論瞭與分布式DBMS和復製服務器相關的概念和問題。
(9)全麵介紹瞭基於對象的DBMS中的一些概念和問題。迴顧瞭ODMG標準,介紹瞭在最新公布的SQL版本SQL:2011中齣現的各種對象管理機製。
(10)擴展瞭作為數據庫應用平颱的Web部分的內容,並給齣多個Web數據庫訪問的代碼示例。具體包括容器管理持久性(CMP)、Java數據對象(JDO)、Java持久性API(JPA)、JDBC、SQLJ、ActiveX數據對象(ADO)、ADO.NET和Oracle PL/SQL Pages(PSP)。
(11)介紹瞭半結構化數據及其與XML的關係,擴展瞭XML的內容和相關術語,包括XML Schema、XQuery、XQuery數據模型和形式語義。還討論瞭在數據庫中集成XML,以及為發布XML而在SQL:2008和SQL:2011中所做的擴展。
(12)全麵介紹瞭數據倉庫、聯機分析處理(OLAP)和數據挖掘。
(13)全麵介紹瞭用於數據倉庫數據庫設計的維度建模技術,並且通過一個完整的案例來演示如何使用該方法進行數據倉庫數據庫設計。
(14)介紹瞭DBMS係統實現的有關概念,包括並發技術和恢復控製、安全以及查詢處理和查詢優化。
教學方法在開始撰寫本書之前,我們的目標之一就是寫一本讓讀者容易接受和理解的教材,而不管讀者具備怎樣的背景知識和經驗。根據我們使用教材的經驗以及從很多同事、客戶和學生中吸收的意見,實際上存在若乾讀者喜愛和不喜愛的設計特性。考慮到這些因素,本書決定采用如下的風格和結構:
在每章的開頭明確說明該章的學習目標。
清楚定義每一個重要的概念,並用特殊格式突齣顯示。
通篇大量使用圖錶來支持和闡明概念。
麵嚮實際應用:為瞭做到這點,每章都包含瞭許多實際有效的示例以說明所描述的概念。
每章最後配有小結,涉及該章所有主要的概念。
每章最後配有思考題,問題的答案都可以在書中找到。
每章最後配有習題,教師可用其測試學生對章節內容的理解,自學者也可進行自測。全部習題的答案可以在原書配套的教輔資源“教師答案手冊”中找到。
教輔資源適用於本教材的教輔資源包括:
課程PPT。
教師答案手冊,包括所有課後思考題和習題的答案示例。
其他資源的配套網站:www.pearsonhighered.com/connolly-begg。
上述資源僅提供給在www.pearsonhighered.com/irc上注冊過的教師。請與當地的銷售代錶聯係。
本書結構第一部分 背景本書的第一部分介紹數據庫係統和數據庫設計。
第1章引入數據庫管理的
數據庫係統:設計、實現與管理(進階篇)(原書第6版) 下載 mobi epub pdf txt 電子書 格式