關(guān)于我們
書單推薦
新書推薦
|
數(shù)據(jù)庫系統(tǒng):設(shè)計、實(shí)現(xiàn)與管理(進(jìn)階篇)(原書第6版)
本書是數(shù)據(jù)庫領(lǐng)域的經(jīng)典暢銷著作,被世界多所大學(xué)選為教材,同時被廣大技術(shù)人員和管理人員視為必讀書。本書作者曾在工業(yè)界致力于數(shù)據(jù)庫系統(tǒng)的設(shè)計,后進(jìn)入學(xué)術(shù)界精耕于教學(xué),深諳專業(yè)人士和非專業(yè)人士在使用和學(xué)習(xí)數(shù)據(jù)庫時的痛點(diǎn)。因此,本書采用這兩類讀者都易于接受和理解的方式,全面介紹數(shù)據(jù)庫設(shè)計、實(shí)現(xiàn)和管理的基本理論、方法和技術(shù)。
前言背景在過去的30年中,數(shù)據(jù)庫的研究帶來了巨大的生產(chǎn)力,使得數(shù)據(jù)庫系統(tǒng)成為軟件工程領(lǐng)域最重要的成果。目前,數(shù)據(jù)庫作為信息系統(tǒng)的基本框架,已從根本上改變了許多公司的運(yùn)作方式。特別是在最近幾年里,隨著這項技術(shù)本身的發(fā)展,產(chǎn)生了一些功能更強(qiáng)大、使用更方便的系統(tǒng)。這使得數(shù)據(jù)庫系統(tǒng)變得越來越普及,用戶類型也越來越廣泛。遺憾的是,正是由于數(shù)據(jù)庫系統(tǒng)的簡單性,許多用戶有可能尚缺乏必要的知識,還不懂得如何開發(fā)正確且高效的系統(tǒng),就開始創(chuàng)建數(shù)據(jù)庫及其應(yīng)用程序了。這樣很可能導(dǎo)致所謂的“軟件危機(jī)”(software crisis,有時也稱為“軟件抑郁”(software depression))的延續(xù)。
編寫本書的最初動因是我們在工業(yè)界的工作經(jīng)歷,當(dāng)時我們?yōu)樾萝浖到y(tǒng)中數(shù)據(jù)庫的設(shè)計提供咨詢,間或也解決遺留系統(tǒng)中存在的種種問題。進(jìn)入學(xué)術(shù)界后,我們從另一類用戶—學(xué)生那里發(fā)現(xiàn)了類似的問題。因此,本書的目標(biāo)就是給出一本教程,盡可能清楚地介紹數(shù)據(jù)庫的基礎(chǔ)理論,并給出一套既能為專業(yè)技術(shù)人員亦能為非技術(shù)人員所用的數(shù)據(jù)庫設(shè)計方法學(xué)。
本書針對當(dāng)前主流的商用產(chǎn)品—關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS)給出的設(shè)計方法學(xué),已在學(xué)術(shù)界和工業(yè)界測試和使用了許多年。它包括三個主要階段:數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計和物理設(shè)計。第一個階段在不考慮任何物理因素的前提下設(shè)計概念數(shù)據(jù)模型,得到的數(shù)據(jù)模型在第二階段被細(xì)化為邏輯數(shù)據(jù)模型,細(xì)化過程主要是去除在關(guān)系系統(tǒng)中無法表示的結(jié)構(gòu)。在第三階段,邏輯數(shù)據(jù)模型被轉(zhuǎn)換成針對目標(biāo)DBMS的物理設(shè)計,物理設(shè)計階段主要考慮如何設(shè)計存儲結(jié)構(gòu)和訪問方法,以便有效并安全地訪問存儲在輔存中的數(shù)據(jù)庫。
該方法學(xué)按階段被分為一系列步驟。對于缺少經(jīng)驗的設(shè)計者,最好按步驟進(jìn)行設(shè)計,這里所提供的指南可幫助你完成整個過程。對于有經(jīng)驗的設(shè)計者,該方法學(xué)的指導(dǎo)作用顯然會弱化,但經(jīng)?捎糜陂_發(fā)框架和檢查列表。為了幫助讀者學(xué)習(xí)使用上述方法學(xué)并理解其要點(diǎn),整個方法學(xué)的描述中始終貫穿一個完整的DreamHome案例研究。附錄B還給出了另外三個案例,供讀者自行研究。
UML(統(tǒng)一建模語言)越來越多的公司都在規(guī)范各自的數(shù)據(jù)建模方法,即選擇一種特定的建模方法并在整個數(shù)據(jù)庫開發(fā)項目中始終如一地使用它。一種在數(shù)據(jù)庫概念設(shè)計和邏輯設(shè)計階段較為通用的高級數(shù)據(jù)模型是ER(實(shí)體-聯(lián)系)模型,這也是本書采用的模型。由于當(dāng)前還沒有表示ER模型的標(biāo)準(zhǔn)方法,因此大部分書籍在描述關(guān)系DBMS的數(shù)據(jù)庫設(shè)計時,常常使用下述兩種表示方法之一:
Chen氏表示方法,即用矩形表示實(shí)體,用菱形表示聯(lián)系,用線段連接矩形和菱形。
Crow Feet(鴉爪)表示方法,仍用矩形表示實(shí)體,用實(shí)體間的連線表示聯(lián)系,在一對多聯(lián)系連線的多端有一個鴉爪標(biāo)記。
當(dāng)前,這兩種表示方法都有計算機(jī)輔助軟件工程(CASE)工具。然而,它們都難于使用和解釋。本書的較早版本曾使用Chen氏表示方法,而在隨后培生教育出版集團(tuán)進(jìn)行的一次問卷調(diào)查中,比較一致的意見是應(yīng)該使用最新的稱為UML(Unified Modeling Language,統(tǒng)一建模語言)的面向?qū)ο蠼UZ言。UML表示方法結(jié)合了面向?qū)ο笤O(shè)計三大流派的成分:Rumbaugh的OMT建模語言,Booch的面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計,以及Jacobson的Objectory。
換用表示方法主要有以下三個原因:(1)UML正成為一種工業(yè)標(biāo)準(zhǔn),例如,對象管理組(OMG)已經(jīng)采納UML作為對象方法的標(biāo)準(zhǔn)表示方法;(2)UML表達(dá)清楚并易于使用;(3)UML目前已被學(xué)術(shù)界用于面向?qū)ο蠓治雠c設(shè)計的教學(xué),在數(shù)據(jù)庫模塊的教學(xué)中也使用UML將會更加一致。因此,在這個版本中,我們將采用UML的類圖作為ER模型的表示方法。讀者將會發(fā)現(xiàn)這種表示方法更加容易理解和使用。
第6版的更新之處擴(kuò)展了第3章“數(shù)據(jù)庫的結(jié)構(gòu)與Web”,增加了云計算。
修改了第21章“數(shù)據(jù)管理中的職業(yè)、法律與道德問題”。
增加了“數(shù)據(jù)倉庫與時態(tài)數(shù)據(jù)庫”(31.5節(jié))。
每章后增加了新的思考題和習(xí)題。
修改了與SQL相關(guān)的章節(jié),全面反映2011年公布的新標(biāo)準(zhǔn)SQL:2011。
修訂了第26章“復(fù)制與移動數(shù)據(jù)庫”。
修改了關(guān)于Web-DBMS集成和XML的章節(jié)。
與Oracle相關(guān)的內(nèi)容一律修改為針對Oracle 11g。
讀者對象本書可作為本科生數(shù)據(jù)庫管理或數(shù)據(jù)庫設(shè)計的導(dǎo)論性教材,也可作為研究生或高年級本科生相關(guān)課程的教材,學(xué)時可分為一到兩個學(xué)期。通常信息系統(tǒng)、商業(yè)IT或計算機(jī)科學(xué)等專業(yè)都包含這類課程。
本書還可以作為一些IT專業(yè)人士的參考書,如系統(tǒng)分析和設(shè)計人員、應(yīng)用程序開發(fā)人員、系統(tǒng)程序員、數(shù)據(jù)庫從業(yè)人員及獨(dú)立的自學(xué)者。隨著當(dāng)今數(shù)據(jù)庫系統(tǒng)的廣泛使用,這些專業(yè)人士可能來自于需要數(shù)據(jù)庫的任何類型的公司。
讀者在學(xué)習(xí)關(guān)于物理數(shù)據(jù)庫設(shè)計的第18章和關(guān)于查詢處理的第23章之前,如果對附錄F中介紹的文件組織和數(shù)據(jù)結(jié)構(gòu)相關(guān)概念有清楚的了解,那么將會有所幫助。理想的情況是這些背景知識已從前導(dǎo)課程中獲得。如果不具備這個條件,則可以在開始數(shù)據(jù)庫課程后,學(xué)完第1章立即學(xué)習(xí)附錄F。
如果讀者已經(jīng)掌握了一門高級編程語言,比如C,那么在學(xué)習(xí)附錄I的嵌入式與動態(tài)SQL和28.3節(jié)的ObjectStore時會更有成效。
突出特點(diǎn)(1)為數(shù)據(jù)庫邏輯設(shè)計和概念設(shè)計提供了易用、逐步指導(dǎo)的方法學(xué),該方法學(xué)基于廣泛采用的實(shí)體-聯(lián)系模型并將規(guī)范化作為驗證技術(shù)。此外,通過一個完整的案例研究來說明如何使用這套方法學(xué)。
。2)為數(shù)據(jù)庫物理設(shè)計提供了易用、逐步指導(dǎo)的方法學(xué),包括:邏輯設(shè)計到物理實(shí)現(xiàn)的映射,文件組織方法的選擇,適合應(yīng)用程序的索引結(jié)構(gòu),以及何時引入可控冗余。此外,通過一個完整的案例研究來說明如何使用這套方法學(xué)。
(3)用獨(dú)立的章節(jié)來講解以下三個主題:數(shù)據(jù)庫設(shè)計階段在整個系統(tǒng)開發(fā)生命周期中的位置與作用;如何使用實(shí)況發(fā)現(xiàn)技術(shù)來獲取系統(tǒng)需求;如何將UML用于整個方法學(xué)。
(4)每章都采用清晰且易于理解的表述方法,如突出顯示定義,明確給出各章學(xué)習(xí)目標(biāo),在各章最后進(jìn)行小結(jié)。通篇使用了大量示例和圖表來說明概念。來自現(xiàn)實(shí)生活的DreamHome案例研究貫穿全書,另外還給出若干案例供學(xué)生選作課程實(shí)踐題目。
。5)擴(kuò)充了下列最新的正式標(biāo)準(zhǔn)及事實(shí)標(biāo)準(zhǔn):結(jié)構(gòu)化查詢語言(SQL),舉例查詢(QBE),面向?qū)ο髷?shù)據(jù)庫的對象數(shù)據(jù)管理組(ODMG)標(biāo)準(zhǔn)。
。6)利用三章的篇幅,以教程式風(fēng)格介紹SQL標(biāo)準(zhǔn),包含交互式和嵌入式SQL。
。7)專設(shè)一章討論IT和數(shù)據(jù)庫中的職業(yè)、法律與道德問題。
(8)全面討論了與分布式DBMS和復(fù)制服務(wù)器相關(guān)的概念和問題。
(9)全面介紹了基于對象的DBMS中的一些概念和問題。回顧了ODMG標(biāo)準(zhǔn),介紹了在最新公布的SQL版本SQL:2011中出現(xiàn)的各種對象管理機(jī)制。
。10)擴(kuò)展了作為數(shù)據(jù)庫應(yīng)用平臺的Web部分的內(nèi)容,并給出多個Web數(shù)據(jù)庫訪問的代碼示例。具體包括容器管理持久性(CMP)、Java數(shù)據(jù)對象(JDO)、Java持久性API(JPA)、JDBC、SQLJ、ActiveX數(shù)據(jù)對象(ADO)、ADO.NET和Oracle PL/SQL Pages(PSP)。
。11)介紹了半結(jié)構(gòu)化數(shù)據(jù)及其與XML的關(guān)系,擴(kuò)展了XML的內(nèi)容和相關(guān)術(shù)語,包括XML Schema、XQuery、XQuery數(shù)據(jù)模型和形式語義。還討論了在數(shù)據(jù)庫中集成XML,以及為發(fā)布XML而在SQL:2008和SQL:2011中所做的擴(kuò)展。
(12)全面介紹了數(shù)據(jù)倉庫、聯(lián)機(jī)分析處理(OLAP)和數(shù)據(jù)挖掘。
。13)全面介紹了用于數(shù)據(jù)倉庫數(shù)據(jù)庫設(shè)計的維度建模技術(shù),并且通過一個完整的案例來演示如何使用該方法進(jìn)行數(shù)據(jù)倉庫數(shù)據(jù)庫設(shè)計。
。14)介紹了DBMS系統(tǒng)實(shí)現(xiàn)的有關(guān)概念,包括并發(fā)技術(shù)和恢復(fù)控制、安全以及查詢處理和查詢優(yōu)化。
教學(xué)方法在開始撰寫本書之前,我們的目標(biāo)之一就是寫一本讓讀者容易接受和理解的教材,而不管讀者具備怎樣的背景知識和經(jīng)驗。根據(jù)我們使用教材的經(jīng)驗以及從很多同事、客戶和學(xué)生中吸收的意見,實(shí)際上存在若干讀者喜愛和不喜愛的設(shè)計特性。考慮到這些因素,本書決定采用如下的風(fēng)格和結(jié)構(gòu):
在每章的開頭明確說明該章的學(xué)習(xí)目標(biāo)。
清楚定義每一個重要的概念,并用特殊格式突出顯示。
通篇大量使用圖表來支持和闡明概念。
面向?qū)嶋H應(yīng)用:為了做到這點(diǎn),每章都包含了許多實(shí)際有效的示例以說明所描述的概念。
每章最后配有小結(jié),涉及該章所有主要的概念。
每章最后配有思考題,問題的答案都可以在書中找到。
每章最后配有習(xí)題,教師可用其測試學(xué)生對章節(jié)內(nèi)容的理解,自學(xué)者也可進(jìn)行自測。全部習(xí)題的答案可以在原書配套的教輔資源“教師答案手冊”中找到。
教輔資源適用于本教材的教輔資源包括:
課程PPT。
教師答案手冊,包括所有課后思考題和習(xí)題的答案示例。
其他資源的配套網(wǎng)站:www.pearsonhighered.com/connolly-begg。
上述資源僅提供給在www.pearsonhighered.com/irc上注冊過的教師。請與當(dāng)?shù)氐匿N售代表聯(lián)系。
本書結(jié)構(gòu)第一部分背景本書的第一部分介紹數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫設(shè)計。
第1章引入數(shù)據(jù)庫管理的概念。主要闡述了數(shù)據(jù)庫前身,即基于文件的系統(tǒng)之不足及數(shù)據(jù)庫方法所具備的優(yōu)勢。
第2章總覽數(shù)據(jù)庫環(huán)境。主要討論了三層ANSI-SPARC體系結(jié)構(gòu)的優(yōu)點(diǎn),介紹了目前最通用的數(shù)據(jù)模型,列出了多用戶DBMS應(yīng)提供的各種功能。
第3章考察各種多用戶DBMS結(jié)構(gòu),討論了數(shù)據(jù)庫領(lǐng)域不同類型的中間件。分析Web服務(wù),它能為用戶和SOA(面向服務(wù)的結(jié)構(gòu))提供新型的業(yè)務(wù)服務(wù)。該章簡要描述分布式DBMS和數(shù)據(jù)倉庫的結(jié)構(gòu),后面還將詳細(xì)討論。該章還給出一個抽象DBMS的內(nèi)部結(jié)構(gòu)以及Oracle DBMS的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),這一部分內(nèi)容在數(shù)據(jù)庫管理初級課程中可以略去。
第二部分關(guān)系模型與語言本書的第二部分介紹關(guān)系模型和關(guān)系語言,即關(guān)系代數(shù)和關(guān)系演算、QBE(舉例查詢)和SQL(結(jié)構(gòu)化查詢語言)。這部分還介紹了兩種非常流行的商用系統(tǒng):Microsoft Access和Oracle。
第4章介紹當(dāng)前最流行的數(shù)據(jù)模型—關(guān)系模型背后的概念,這是最常被選作商用標(biāo)準(zhǔn)的模型。具體安排是首先介紹術(shù)語并說明其與數(shù)學(xué)上的關(guān)系的聯(lián)系,然后討論關(guān)系完整性規(guī)則,包括實(shí)體完整性和引用完整性。這一章最后概述視圖,第7章還將進(jìn)一步討論視圖。
第5章介紹關(guān)系代數(shù)和關(guān)系演算,并
目 錄
出版者的話
譯者序
前言
第六部分 分布式DBMS與復(fù)制
第24章 DDBMS—概念與設(shè)計2
24.1 引言3
24.1.1 概念3
24.1.2 DDBMS的優(yōu)缺點(diǎn)6
24.1.3同構(gòu)DDBMS和異構(gòu)DDBMS8
24.2 網(wǎng)絡(luò)概述10
24.3 DDBMS的功能和體系結(jié)構(gòu)13
24.3.1 DDBMS的功能13
24.3.2 DDBMS的參考體系結(jié)構(gòu)13
24.3.3 聯(lián)邦MDBS的參考體系結(jié)構(gòu)14
24.3.4 DDBMS的組成結(jié)構(gòu)15
24.4 分布式關(guān)系數(shù)據(jù)庫設(shè)計16
24.4.1 數(shù)據(jù)分配17
24.4.2 分段18
24.5 DDBMS的透明性24
24.5.1 分布透明性24
24.5.2 事務(wù)透明性26
24.5.3 性能透明性29
24.5.4 DBMS透明性31
24.5.5 DDBMS的透明性小結(jié)31
24.6 Date 關(guān)于DDBMS的12條規(guī)則31
本章小結(jié)32
思考題33
習(xí)題34
第25章 DDBMS—高級概念35
25.1 分布式事務(wù)管理36
25.2 分布式并發(fā)控制36
25.2.1 目標(biāo)36
25.2.2 分布串行性37
25.2.3 鎖協(xié)議37
25.3 分布式死鎖管理39
25.4 分布式數(shù)據(jù)庫恢復(fù)42
25.4.1 分布式環(huán)境中的故障42
25.4.2 故障對恢復(fù)的影響43
25.4.3 兩段式提交44
25.4.4 三段式提交48
25.4.5 網(wǎng)絡(luò)分區(qū)51
25.5 X/Open分布式事務(wù)處理模型53
25.6 分布式查詢優(yōu)化55
25.6.1 數(shù)據(jù)定位56
25.6.2 分布式連接58
25.6.3全局優(yōu)化59
25.7 Oracle中的分布特性62
本章小結(jié)67
思考題67
習(xí)題68
第26章 復(fù)制與移動數(shù)據(jù)庫69
26.1 數(shù)據(jù)庫復(fù)制簡介70
26.1.1 復(fù)制的應(yīng)用71
26.1.2 復(fù)制模型71
26.1.3 復(fù)制協(xié)議的功能模型71
26.1.4 一致性72
26.2 復(fù)制的體系結(jié)構(gòu)73
26.2.1 基于內(nèi)核的復(fù)制73
26.2.2 基于中間件的復(fù)制73
26.2.3 更新處理74
26.2.4 更新傳播75
26.2.5 更新場所(數(shù)據(jù)所有權(quán))76
26.2.6 終止協(xié)議78
26.3 復(fù)制模式79
26.3.1 積極主備份79
26.3.2 懶惰主備份83
26.3.3 積極隨處更新86
26.3.4 懶惰隨處更新86
26.3.5 使用統(tǒng)一全序廣播的隨處更新89
26.3.6 SI與統(tǒng)一全序廣播復(fù)制92
26.4 移動數(shù)據(jù)庫簡介97
26.4.1 移動DBMS98
26.4.2 與移動 DBMS相關(guān)的問題98
26.5 Oracle中的復(fù)制108
本章小結(jié)113
思考題114
習(xí)題114
第七部分 對象DBMS
第27章 OODBMS——概念與設(shè)計118
27.1 下一代數(shù)據(jù)庫系統(tǒng)119
27.2 OODBMS簡介120
27.2.1 面向?qū)ο驞BMS的定義120
27.2.2 函數(shù)數(shù)據(jù)模型122
27.2.3 持久型編程語言125
27.2.4 開發(fā)OODBMS的可選策略126
27.3 OODBMS的持久性127
27.3.1 指針切換技術(shù)128
27.3.2 訪問對象131
27.3.3 持久性模式132
27.3.4 正交持久性133
27.4 OODBMS中的問題135
27.4.1 事務(wù)135
27.4.2 版本135
27.4.3 模式演化136
27.4.4 體系結(jié)構(gòu)139
27.4.5 基準(zhǔn)測試141
27.5 OODBMS的優(yōu)點(diǎn)和缺點(diǎn)142
27.5.1 優(yōu)點(diǎn)143
27.5.2 缺點(diǎn)144
27.6 ORDBMS與OODBMS的比較145
27.7 面向?qū)ο髷?shù)據(jù)庫設(shè)計146
27.7.1 面向?qū)ο髷?shù)據(jù)建模與概念數(shù)據(jù)建模的比較146
27.7.2 聯(lián)系和引用完整性147
27.7.3 行為設(shè)計149
27.8 采用UML的面向?qū)ο蠓治雠c設(shè)計150
27.8.1 UML圖151
27.8.2 UML在數(shù)據(jù)庫設(shè)計方法學(xué)中的應(yīng)用155
本章小結(jié)156
思考題157
習(xí)題158
第28章 OODBMS——標(biāo)準(zhǔn)與系統(tǒng)159
28.1 對象管理組159
28.1.1 背景160
28.1.2 公共對象請求代理架構(gòu)162
28.1.3 其他OMG規(guī)范166
28.1.4 模型驅(qū)動的架構(gòu)167
28.2 對象數(shù)據(jù)標(biāo)準(zhǔn)ODMG 3.0170
28.2.1 對象數(shù)據(jù)管理組170
28.2.2 對象模型171
28.2.3 對象定義語言177
28.2.4 對象查詢語言178
28.2.5 ODMG標(biāo)準(zhǔn)的其他部分183
28.2.6 將概念設(shè)計映射為邏輯(面向?qū)ο蟮模┰O(shè)計186
28.3 ObjectStore187
28.3.1 總體結(jié)構(gòu)187
28.3.2 構(gòu)建ObjectStore應(yīng)用程序189
28.3.3 ObjectStore中的數(shù)據(jù)定義190
28.3.4 ObjectStore中的數(shù)據(jù)操作193
本章小結(jié)196
思考題197
習(xí)題197
第八部分 Web與DBMS
第29章 Web技術(shù)與DBMS200
29.1 Internet和Web簡介201
29.1.1 企業(yè)內(nèi)聯(lián)網(wǎng)與外聯(lián)網(wǎng)202
29.1.2 電子貿(mào)易和電子商務(wù)203
29.2 Web203
29.2.1 超文本傳輸協(xié)議204
29.2.2 超文本標(biāo)記語言206
29.2.3 統(tǒng)一資源定位符207
29.2.4 靜態(tài)和動態(tài)網(wǎng)頁208
29.2.5 Web服務(wù)208
29.2.6 對Web與DBMS集成的需求209
29.2.7 Web-DBMS方案的優(yōu)缺點(diǎn)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 公共網(wǎng)關(guān)接口215
29.4.1 向CGI腳本傳遞信息216
29.4.2 CGI的優(yōu)缺點(diǎn)217
29.5 HTTP Cookie218
29.6 擴(kuò)展Web服務(wù)器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服務(wù)245
29.8 Microsoft的Web解決平臺246
29.8.1 通用數(shù)據(jù)訪問247
29.8.2 ASP和ADO248
29.8.3 遠(yuǎn)程數(shù)據(jù)服務(wù)250
29.8.4 ASP和JSP的比較251
29.8.5 Microsoft .NET251
29.8.6 Microsoft Web服務(wù)255
29.9 Oracle Internet平臺255
29.9.
你還可能感興趣
我要評論
|