版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電子教案版本1.1
數(shù)據(jù)庫(kù)系統(tǒng)概論
AnIntroductiontoDatabaseSystem
吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
教材及參考書
CQ參考書
■AFirstCourseinDatabaseSystems
Jeffrey.D.Ullman,JenniferWidom
Dept.OfComputerScienceStanfordUniversity
■DateCJ.AnIntroductiontoDatabaseSystem
(Ed.7).Addison-Wesley,2000
■王珊.數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)明教程.高等教育出版社
■薩師炮王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論高等教育出版社
上機(jī)軟件
■MySQL
第一章引言
n數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用□數(shù)據(jù)存儲(chǔ)和查詢
◎數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)■事物管理
◎數(shù)據(jù)視圖H數(shù)據(jù)挖掘與分析
□數(shù)據(jù)庫(kù)語(yǔ)言B數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
n關(guān)系數(shù)據(jù)庫(kù)B數(shù)據(jù)庫(kù)用戶和管理員
□數(shù)據(jù)庫(kù)設(shè)計(jì)B數(shù)據(jù)庫(kù)系統(tǒng)的歷史
□基于對(duì)象數(shù)據(jù)庫(kù)和半結(jié)構(gòu)化數(shù)據(jù)□小結(jié)
庫(kù)
一、有關(guān)概念
1.信息和數(shù)據(jù)
(1)信息:人們對(duì)客觀事物正確的描述,人們之間
可以交流的知識(shí),對(duì)人們的行為可以產(chǎn)生一定的
影響。
(2):描述事物的符號(hào)記錄稱為數(shù)據(jù)。描述事
物的符號(hào)可以是數(shù)字,也可以是文字、圖形、圖
像、聲音、語(yǔ)言等。
■數(shù)據(jù)與其語(yǔ)義是不可分的
(3)與之間的聯(lián)系與區(qū)別
數(shù)據(jù)是用以表示信息的符號(hào)或載體
信息是經(jīng)過(guò)加工之后并對(duì)客觀世界和生產(chǎn)活
動(dòng)產(chǎn)生影響的數(shù)據(jù),是數(shù)據(jù)的內(nèi)涵,是對(duì)數(shù)據(jù)語(yǔ)
義的解釋。
數(shù)據(jù)是現(xiàn)象,而信息更反映實(shí)質(zhì)。
數(shù)據(jù)舉例
■數(shù)據(jù)的含義稱為數(shù)據(jù)的語(yǔ)義,數(shù)據(jù)與其語(yǔ)義是不
可分的。
■例如93是一個(gè)數(shù)據(jù)
語(yǔ)義1:學(xué)生某門課的成績(jī)
語(yǔ)義2:某人的體重
語(yǔ)義3:計(jì)算機(jī)系2003級(jí)學(xué)生人數(shù)
■學(xué)生檔案中的學(xué)生記錄
(李明,男,197205,江蘇南京市,計(jì)算機(jī)系,1990)
語(yǔ)義:學(xué)生姓名、性別、出生年月、籍貫、所在院系、入學(xué)時(shí)間
解釋:李明是個(gè)大學(xué)生,1972年5月出生,江蘇南京市人,1990年
考入計(jì)算機(jī)系
情給出另一個(gè)解琴和語(yǔ)文
1.1數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用
■數(shù)據(jù)庫(kù)的定義
■數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱DB)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)
的、大量的、有結(jié)構(gòu)的、可共享的數(shù)據(jù)集合。
■數(shù)據(jù)庫(kù)的基本特征
■數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存
■可為各種用戶共享
■冗余度較小
■數(shù)據(jù)獨(dú)立性較高
■易擴(kuò)展
1.1數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用
■數(shù)據(jù)庫(kù)管理系統(tǒng)
■(DataBaseManagementSystem,簡(jiǎn)稱DBMS)
■位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。
■是基礎(chǔ)軟件,是一個(gè)大型復(fù)雜的軟件系統(tǒng)
■DBMS的用途
■科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)
■DBMScontainsinformationaboutaparticularenterprise
■Collectionofinterrelateddata
■Setofprogramstoaccessthedata
■Anenvironmentthatisbothconvenientandefficienttouse
王要功能:
(DataDefinitionLanguage)
定義數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象
(DataManipulationLanguage)
■操縱數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作
數(shù)據(jù)查詢、數(shù)據(jù)更新(插入、修改、刪除)
(DataControlLanguage)
通過(guò)DCL保證數(shù)據(jù)庫(kù)的可恢復(fù)性、并發(fā)控制、安全性和
完整性。
(DataControlLanguage)
■(1)數(shù)據(jù)的安全性(Security)保護(hù)
保護(hù)數(shù)據(jù),以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞。
■(2)數(shù)據(jù)的完整性(Integrity)檢查
將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系。
■(3)并發(fā)(Concurrency)控制
對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),防止相互干擾而得到錯(cuò)誤
的結(jié)果。
■(4)數(shù)據(jù)庫(kù)恢復(fù)(Recovery)
將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。
數(shù)據(jù)庫(kù)系統(tǒng)(DBS)
數(shù)據(jù)庫(kù)系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中
引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般由數(shù)據(jù)庫(kù)、
數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)、應(yīng)
用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。
數(shù)據(jù)庫(kù)計(jì)算機(jī)系統(tǒng)中的地位
應(yīng)用系統(tǒng)
應(yīng)用開發(fā)工具
DBMS
糜作系統(tǒng)
硬件
數(shù)據(jù)庫(kù)系統(tǒng)
1.1數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用
◎銀行業(yè)◎銷售業(yè)
◎航空業(yè)國(guó)聯(lián)機(jī)零售商
國(guó)大學(xué)◎制造業(yè)
a電信業(yè)◎人力資源
◎金融業(yè)
1.2數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)
■例如一個(gè)銀行的某個(gè)部門需要保存所有客戶及
儲(chǔ)蓄賬戶的信息。在計(jì)算機(jī)上保存這些信息的一
種方法是將它們存放在操作系統(tǒng)文件中。
■為了使用戶可以對(duì)信息進(jìn)行操作,系統(tǒng)中應(yīng)有
一些對(duì)文件進(jìn)行操作的應(yīng)用程序,包括:
■,處理某賬戶的存款、貸款的程序。
■,創(chuàng)建新賬戶的程序。
■,查詢賬戶余額的程序。
■?產(chǎn)生每月對(duì)賬單的程序。
1.2數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)
在文件處理系統(tǒng)中存儲(chǔ)組織信息的主要弊端包括:
■數(shù)據(jù)的冗余和不一^致(dataredundancyand
inconsistency)。
■數(shù)據(jù)訪問困難(difficultyinaccessingdata)。
■數(shù)據(jù)孤立(dataisolation)o
■由于數(shù)據(jù)分散在不同文件中,這些文件又可能具有不
同的格式,編寫新應(yīng)用程序來(lái)檢索適當(dāng)數(shù)據(jù)是很困難
的。
■完整性問題(integrityproblem)o
■原子性問題(atomicityproblem)o
■并發(fā)訪問異常(concurrent—accessanomaly)o
■安全性問題(securityproblem)o
1.2數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)
以上問題以及一些其他問題,促進(jìn)了DBMS
的發(fā)展。
數(shù)據(jù)庫(kù)系統(tǒng)為了解決上述在文件處理系統(tǒng)中存
在的問題提出的一些概念和算法。
在本書的大部分篇幅中,我們?cè)谟懻撈髽I(yè)中典
型的數(shù)據(jù)處理應(yīng)用時(shí)以銀行企業(yè)作為實(shí)例。
數(shù)據(jù)庫(kù)系統(tǒng)的組成
■數(shù)據(jù)庫(kù)(Database)
■數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)
■(DataBaseManagementSystem,簡(jiǎn)稱DBMS)
應(yīng)用系統(tǒng)(applicationsystem)
■數(shù)據(jù)庫(kù)管理員(DBA)
■用戶(user)
1.3數(shù)據(jù)視圖
■數(shù)據(jù)庫(kù)系統(tǒng)是一些相關(guān)聯(lián)的數(shù)據(jù)以及一
組使得用戶可以訪問和修改這些數(shù)據(jù)的程
序的集合。
■數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)主要目的是給用戶
提供數(shù)據(jù)的抽象,也就是說(shuō),系統(tǒng)隱藏關(guān)
于數(shù)據(jù)存儲(chǔ)和維護(hù)的某些細(xì)節(jié)。
1.3.1數(shù)據(jù)抽象
由于許多數(shù)據(jù)庫(kù)系統(tǒng)的用戶并未
受過(guò)計(jì)算機(jī)專業(yè)訓(xùn)練,系統(tǒng)開發(fā)人員
通過(guò)如下幾個(gè)層次上的抽象來(lái)對(duì)用戶
屏蔽復(fù)雜性,以簡(jiǎn)化用戶與系統(tǒng)的交
互。
LevelsofAbstraction
■Physicallevel:describeshowarecord(e.g.,customer)isstored.
■Logicallevel:describesdatastoredindatabase,andthe
relationshipsamongthedata.
typecustomer—record
customerj,d:string;
customer_name:string;
customer_street:string;
customer_city:string;
end;
■Viewlevel:applicationprogramshidedetailsofdatatypes.
Viewscanalsohideinformation(suchasanemployee'ssalary)
forsecuritypurposes.
1.3.1數(shù)據(jù)抽象
■物理層
■最低層次的抽象,描述數(shù)據(jù)實(shí)際上是怎樣存儲(chǔ)的。
物理層詳細(xì)描述復(fù)雜的低層數(shù)據(jù)結(jié)構(gòu)。
■邏trm車■/-耳d|層----?
■比物理層層次稍高的抽象,描述數(shù)據(jù)庫(kù)中存儲(chǔ)什么
數(shù)據(jù)及這些數(shù)據(jù)間存在什么關(guān)系。
■視圖層
■最高層次的抽象,只描述整個(gè)數(shù)據(jù)庫(kù)的某個(gè)部分
數(shù)據(jù)的三層抽象
physical
IEVEI
1.3.2實(shí)例和模式
隨著時(shí)間的推移,信息會(huì)被插入或刪
除,數(shù)據(jù)庫(kù)也就發(fā)生了改變。特定時(shí)刻存
儲(chǔ)在數(shù)據(jù)庫(kù)中的信息的集合稱作數(shù)據(jù)庫(kù)的
一個(gè)實(shí)例(instance)。而數(shù)據(jù)庫(kù)的總體設(shè)
計(jì)稱作數(shù)據(jù)庫(kù)模式(schema)。
1.3.2實(shí)例和模式
數(shù)據(jù)庫(kù)模式和實(shí)例的概念可以通過(guò)與
用編程語(yǔ)言寫出的程序進(jìn)行類比來(lái)理解。
數(shù)據(jù)庫(kù)模式對(duì)應(yīng)于程序設(shè)計(jì)語(yǔ)言中的變量
聲明(以及關(guān)聯(lián)類型的定義)。每個(gè)變量
在特定的時(shí)刻會(huì)有特定的值,程序中變量
在某一時(shí)刻點(diǎn)上的值對(duì)應(yīng)于數(shù)據(jù)庫(kù)模式的
一個(gè)實(shí)例。
1.3.2實(shí)例和模式
■根據(jù)前面我們所討論的不同的抽象層次,數(shù)據(jù)庫(kù)系
統(tǒng)可以分為幾種不同的模式。
■物理模式(physicalschema)
■在物理層描述了數(shù)據(jù)庫(kù)的設(shè)計(jì)
■邏輯模式(logicalschema)
■在邏輯層描述數(shù)據(jù)庫(kù)的設(shè)計(jì)。
■子模式(subschema)
■數(shù)據(jù)庫(kù)在視圖層也可分為幾種模式,它描述了數(shù)據(jù)
庫(kù)的不同視圖。
■模式(Schema)
■數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和特征的描述
■是型的描述
-反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系
■模式是相對(duì)穩(wěn)定的
■模式的一^"b實(shí)例(Instance)
■模式的一個(gè)具體值
■反映數(shù)據(jù)庫(kù)某一時(shí)刻的狀態(tài)
■同一個(gè)模式可以有很多實(shí)例
■實(shí)例隨數(shù)據(jù)庫(kù)中的數(shù)據(jù)的更新而變動(dòng)
例如:在學(xué)生選課數(shù)據(jù)庫(kù)模式中,包含學(xué)生記錄、
課程記錄和學(xué)生選課記錄
■2003年的一個(gè)學(xué)生數(shù)據(jù)庫(kù)實(shí)例,包含:
>2003年學(xué)校中所有學(xué)生的記錄
>學(xué)校開設(shè)的所有課程的記錄
>所有學(xué)生選課的記錄
■2002年度學(xué)生數(shù)據(jù)庫(kù)模式對(duì)應(yīng)的實(shí)例與
2003年度學(xué)生數(shù)據(jù)庫(kù)模式對(duì)應(yīng)的實(shí)例是不同的
數(shù)據(jù)庫(kù)系統(tǒng)模式的概念
■“型”和“值”的概念
■(Type)
對(duì)某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說(shuō)明
■(Value)
是型的一個(gè)具體賦值
例如:學(xué)生記錄
記錄型:
(學(xué)號(hào),姓名,性別,系別,年齡,籍貫)
該記錄型的一個(gè)記錄值:
(900201,李明,男,計(jì)算機(jī),22,江蘇)
1.3.3數(shù)據(jù)模型
■由于計(jì)算機(jī)不可能直接處理現(xiàn)實(shí)世界中
的具體事物,所以人們必須事先把具體事物
轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)。
■在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、
表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。
■通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬。
■現(xiàn)有的DBMS均是基于某種數(shù)據(jù)模型的。
數(shù)據(jù)模型的分類
根據(jù)模型應(yīng)用的不同目的,可以將這些模型
劃分為兩類,他們分屬于兩個(gè)不同的層次。
第一類:
按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,完
全不涉及信息在計(jì)算機(jī)中的表示,主要用于數(shù)
據(jù)庫(kù)設(shè)計(jì)。
數(shù)據(jù)模型的分類
第二類:邏輯模型和物理模型
是按計(jì)算機(jī)的觀點(diǎn)對(duì)數(shù)據(jù)建模,主要用
于DBMS的實(shí)現(xiàn),這類模型直接與DBMS有關(guān)。主要包括
■層次模型(樹)
■網(wǎng)狀模型(圖)
■關(guān)系模型(表)
■面向?qū)ο竽P?/p>
■對(duì)象關(guān)系模型
是對(duì)數(shù)據(jù)最低層的抽象,它描述數(shù)據(jù)在
系統(tǒng)內(nèi)部的表示方式和存取方法,在磁盤或磁帶上的
存儲(chǔ)方式和存取方法,是面向計(jì)算機(jī)系統(tǒng)的。
1.3.3概念模型(信息世界)
■概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中
間層次。
■把現(xiàn)實(shí)世界中的客觀對(duì)象抽象為某種信息結(jié)構(gòu),
這種信息結(jié)構(gòu)不依賴于具體的計(jì)算機(jī)系統(tǒng),完全
不涉及信息在計(jì)算機(jī)系統(tǒng)中的結(jié)構(gòu)。
■強(qiáng)調(diào)語(yǔ)義表達(dá)能力,概念簡(jiǎn)單清晰,易于理解,
是用戶和DB設(shè)計(jì)人員交流的工具。
■表示方法——E-R模型
實(shí)體聯(lián)系模型(EntityRelationshipModel)
E—R圖
■建立概念模型的目的
■是將用戶關(guān)于企業(yè)的描述及業(yè)務(wù)的需求等信息
準(zhǔn)確的紀(jì)錄下來(lái),按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息
建模。
■這類模型強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,它要能較方便
地、直觀地表達(dá)應(yīng)用中各種語(yǔ)義知識(shí),如被描
述對(duì)象的意義和相互關(guān)系等。
■是用戶和數(shù)據(jù)庫(kù)設(shè)計(jì)人員之間進(jìn)行交流與溝通的工
具。
概念模型
■概念模型的用途
■概念模型用于信息世界的建模
■是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次
■是數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具
■數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言
■對(duì)概念模型的基本要求
■較強(qiáng)的語(yǔ)義表達(dá)能力
■能夠方便、直接地表達(dá)應(yīng)用中的各種語(yǔ)義知識(shí)
■簡(jiǎn)單、清晰、易于用戶理解
兩大類數(shù)據(jù)模型
■客觀對(duì)象的抽象過(guò)程一兩步抽象
■現(xiàn)實(shí)世界中的客觀對(duì)象抽象為概念模型;
■把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。
兩大類數(shù)據(jù)模型
Q識(shí)、
抽象J
現(xiàn)實(shí)世界匚>概念模型
數(shù)據(jù)庫(kù)設(shè)計(jì)人員為成
信息世界概念模型概念模型=>邏輯模型
數(shù)據(jù)庫(kù)設(shè)計(jì)人員完成
__________________________________________1r_______________________________________
邏輯模型u>物理模型
機(jī)器世界DBMS支持的數(shù)據(jù)模型
由DBMS完成
現(xiàn)實(shí)世界中客觀對(duì)象的抽象過(guò)程
兩大類數(shù)據(jù)模型
如:現(xiàn)實(shí)世界中的人
身高、體重、性別、年齡
Heightreal(0,200)
機(jī)器世界:Weightreal(0,150)
DBMS支持的數(shù)據(jù)模型Sexbit(0,1)
Ageint(0,200)
1.4數(shù)據(jù)庫(kù)語(yǔ)言
數(shù)據(jù)操縱語(yǔ)育(DML)是這樣一種語(yǔ)言,
它使得用戶可以訪問或操糾那些按照某種
適當(dāng)?shù)臄?shù)據(jù)模型組織起來(lái)的數(shù)據(jù)。
■對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的信息進(jìn)行檢索。
■向數(shù)據(jù)庫(kù)中插入新的信息。
■從數(shù)據(jù)庫(kù)中刪除信息。
■修改數(shù)據(jù)庫(kù)中存儲(chǔ)的信息。
1.4數(shù)據(jù)庫(kù)語(yǔ)言
■通常有兩類基本的數(shù)據(jù)操縱語(yǔ)言:
■過(guò)程化DML(proceduralDML)
■要求用戶指定需要什么數(shù)據(jù)以及如何獲得這些數(shù)據(jù)。
■聲明式DML(declarativeDML)(也稱為非過(guò)程化
DML)
■只要求用戶指定需要什么數(shù)據(jù),而不指明如何獲得這
些數(shù)據(jù)。
1.4.2數(shù)據(jù)定義語(yǔ)言
數(shù)據(jù)庫(kù)模式是通過(guò)一系列定義來(lái)說(shuō)明的,這
些定義由一種稱作數(shù)據(jù)定義語(yǔ)言(DDL)的特殊語(yǔ)
言來(lái)表達(dá)。
數(shù)據(jù)庫(kù)系統(tǒng)所使用的存儲(chǔ)結(jié)構(gòu)和訪問方式是
通過(guò)一系列特別的DDL語(yǔ)句來(lái)說(shuō)明的,這種特殊
的DDL稱作數(shù)據(jù)存儲(chǔ)定義語(yǔ)言(datastorageand
definition)。這些語(yǔ)句定義了數(shù)據(jù)庫(kù)模式的實(shí)現(xiàn)
細(xì)節(jié),而這些細(xì)節(jié)對(duì)用戶來(lái)說(shuō)通常是不可見的。
1.4.2數(shù)據(jù)定義語(yǔ)言
存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)值必須滿足某些一致
性約束(consistencyconstraint)。例如,假設(shè)一^個(gè)
賬戶的余額不能低于100美元。DDL語(yǔ)言提供了指
定這種約束的工具。每當(dāng)數(shù)據(jù)庫(kù)被更新時(shí),數(shù)據(jù)
庫(kù)系統(tǒng)都會(huì)檢查這些約束。
■通常,約束可以是關(guān)于數(shù)據(jù)庫(kù)的任意謂詞。然而,如
果要測(cè)試任意謂詞,可能代價(jià)比較高。因此,數(shù)據(jù)庫(kù)
系統(tǒng)專注于可以以最小代價(jià)測(cè)試的完整性約束。
1.4.2數(shù)據(jù)定義語(yǔ)言
域約束(domainconstraint)
每個(gè)屬性都必須對(duì)應(yīng)于由所有可能的取值
構(gòu)成的一個(gè)域(例如,整數(shù)型,字符型,日期
/時(shí)間型)。聲明一種屬性屬于某種具體的域
就相當(dāng)于約束它可以取的值。域約束是完整性
約束的最基本形式。每當(dāng)有新數(shù)據(jù)項(xiàng)插入到數(shù)
據(jù)庫(kù)中,系統(tǒng)就能方便地進(jìn)行域約束檢測(cè)。
1.4.2數(shù)據(jù)定義語(yǔ)言
參照完整性(referentialintegrity)
■我們常常希望,一個(gè)關(guān)系中給定屬性集上的
取值也在另一關(guān)系的某一屬性集的取值中出現(xiàn)
(參照完整性)。數(shù)據(jù)庫(kù)的修改會(huì)導(dǎo)致參照完
整性的破壞。當(dāng)違反了參照完整性約束時(shí),通
常的處理方式是拒絕執(zhí)行導(dǎo)致完整性被破壞的
操作。
1.4.2數(shù)據(jù)定義語(yǔ)言
■斷言(assertion)
■一個(gè)斷言就是數(shù)據(jù)庫(kù)總是需要滿足的任一條件。
■域約束和參照完整性約束是斷言的特殊形式。
■然而,還有許多約束不能僅用這幾種特殊形式表
達(dá)。例如,“每筆貸款的客戶中至少有一人賬戶
余額不小于1000.00美元”,必須表達(dá)成一個(gè)斷言。
斷言創(chuàng)建以后,系統(tǒng)會(huì)檢測(cè)其有效性。如果斷言
有效,則以后只有不破壞斷言的數(shù)據(jù)庫(kù)更新才被
允許。
1.4.2數(shù)據(jù)定義語(yǔ)言
■授權(quán)(authorization)
■我們也許想對(duì)用戶加以區(qū)別,對(duì)于不同的用戶,在數(shù)據(jù)
庫(kù)中的不同數(shù)據(jù)值上允許不同的訪問類型。這些區(qū)別以
授權(quán)來(lái)表達(dá),最常見的是:
■讀授權(quán)(readauthorization),允許讀取數(shù)據(jù),但不能修改數(shù)據(jù);
■插入授權(quán)(insertauthorization),允許插入新數(shù)據(jù),但不允許修改
更新授權(quán)(updateauthorization),允許修改數(shù)據(jù),但不能刪除據(jù);
■刪除授權(quán)(deleteauthorization)
■我們可以賦予用戶所有的權(quán)限,或者沒有或部分擁有這
些權(quán)限。、
1.5關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)基于關(guān)系模型,使用一系列表
來(lái)表達(dá)數(shù)據(jù)以及這些數(shù)據(jù)之間的聯(lián)系。關(guān)系數(shù)
據(jù)庫(kù)也包括DML和DDLo
多數(shù)的商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)使用本節(jié)介紹的
SQL語(yǔ)言,該語(yǔ)言將在第3章和第4章詳細(xì)介紹。
第5章我們討論其他有影響的語(yǔ)言。
1.5關(guān)系數(shù)據(jù)庫(kù)
■關(guān)系模型是最重要的一種數(shù)據(jù)模型。也
是目前主要采用的數(shù)據(jù)模型
■1970年由美國(guó)IBM公司SanJose研究室的
研究員E.F.Codd提出
■本課程的重點(diǎn)
1.5.1表
每個(gè)表有多個(gè)列,每個(gè)列有唯一的名字。圖
1-2展示了一個(gè)關(guān)系數(shù)據(jù)庫(kù)示例,它由三個(gè)表組成:
其一給出銀行客戶的細(xì)節(jié),其二給出賬戶,其三
展示了哪個(gè)賬戶屬于哪個(gè)客戶。
F面是customer表
CustomerjdCustomer_nameCustomer_streetCustomer_city
192-83-7465Johnson12almaSt.PaloAlto
019-28-3746Smith4NorthSt.Rye
677-89-9011Hayes3MainSt.Harrison
182-73-6091Turner123PutnamAve.Stamford
321-12-3123Jones100mainst.Harrison
336-66-9999Lindsay175ParkAve.Pittsfield
1.5.1表
Account_numberBalanceCustomerjdAccount_number
AIOI500192-83*7456AIOI
A215700192-83-7456A201
019-28-3746A215
A102400
677-89-9011A102
A305350
192-73-6091A305
A201900
321-12-3123A217
A217750336-66-9999A222
A222700019-28-3746A201
'、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
■在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張
二維2,它由行和列組成。
學(xué)生登記表
夜名年齡性另系名年號(hào)
王小明19女社會(huì)學(xué)2005
2005006黃大鵬20男商品學(xué)2005
2005008張文斌18女法律2005
??????????????????
關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
■關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件
最基本的規(guī)范條件:關(guān)系的每一個(gè)分量必須是一個(gè)
不可分的數(shù)據(jù)項(xiàng),不允許表中還有表
圖1.27中工資是可分的數(shù)據(jù)項(xiàng),不符合關(guān)系模型要求
L工賁、
班號(hào).組名:\扣除實(shí)發(fā)
、基本補(bǔ)
甲全\3200「2010C.I3120
(004
乙組,71500501450
點(diǎn)組
0082200150100225a
圖L27一個(gè)工資表(表中有表)實(shí)例
關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
表1.2術(shù)語(yǔ)對(duì)比
關(guān)系術(shù)語(yǔ)一般表格的術(shù)語(yǔ)
關(guān)系名表名
關(guān)系模式表頭(表格的描述)
關(guān)系(一張)二維表
元組記錄或行
屬性列
屬性名列名
屬性值列值
分量一條記錄中的一個(gè)列值
非規(guī)范關(guān)系表中有表(大表中嵌有小表)
■關(guān)系(Relation)
一個(gè)關(guān)系對(duì)應(yīng)通常說(shuō)的一張表
■元組(Tuple)
表中的一行即為一個(gè)元組
■屬性(Attribute)
表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名
稱即屬性名
學(xué)生登記表
學(xué)號(hào)姓名年齡,性別系名年級(jí)
1元組
95004王小明19女社會(huì)學(xué)’95
95006黃大鵬20男商品學(xué)95
95008(宛-文獻(xiàn)、)18女法律學(xué),95
_____A
主碼分量屬性
關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
■主碼(Key)
表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組。
■域(Domain)
屬性的取值范圍。
■分量(數(shù)據(jù)項(xiàng))
元組中的一個(gè)屬性值。
■關(guān)系模式
對(duì)關(guān)系的描述
關(guān)系名(屬性1,屬性2,…,屬性n)
學(xué)生(學(xué)號(hào),姓名,年齡,性別,系,年級(jí))
關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)
■優(yōu)點(diǎn)
■建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上
■概念單一
■實(shí)體和各類聯(lián)系都用關(guān)系來(lái)表示
■對(duì)數(shù)據(jù)的檢索結(jié)果也是關(guān)系
■關(guān)系模型的存取路徑對(duì)用戶透明
■具有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性
■簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開發(fā)建立的工作
關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)
■缺點(diǎn)
■存取路徑對(duì)用戶透明導(dǎo)致查詢效率往往
不如非關(guān)系數(shù)據(jù)模型
■為提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)
行優(yōu)化增加了開發(fā)DBMS的難度
典型的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)
■ORACLE
■SYBASE
■DB/2
■SQLServer2000
■MYSQL
■INFORMIX
1.5.2數(shù)據(jù)操縱語(yǔ)言
■數(shù)據(jù)操作是集合操作,操作對(duì)象和操作結(jié)果
都是關(guān)系,即若干元組的集合
■查詢插入刪除更新
■存取路徑對(duì)用戶隱蔽,用戶只要指出“干什
么”,不必詳細(xì)說(shuō)明“怎么干”
1.5.2數(shù)據(jù)操作語(yǔ)言
■selectcustomer.customer_name
■fromcustomer
■wherecustomer.customer_city="Harrison
1.5.3數(shù)據(jù)定義語(yǔ)言
■createtableaccount
■(accont_numberchar(10)
■balanceinteger)
1.5.4來(lái)自應(yīng)用程序的數(shù)據(jù)庫(kù)訪問
SQL不像通用的圖靈機(jī)那么強(qiáng)大;即,
有一些計(jì)算無(wú)法通過(guò)任何SQL查詢得到。這
樣的計(jì)算必須用一種宿主語(yǔ)言來(lái)寫,比如
CoboLC,C++或Java,在其中使用嵌入式
的SQL查詢來(lái)訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)
1.5.4來(lái)自應(yīng)用程序的數(shù)據(jù)庫(kù)訪問
■為了訪問數(shù)據(jù)庫(kù),DML語(yǔ)句需要由宿主語(yǔ)言
來(lái)執(zhí)行。有兩種途徑:
■一種是通過(guò)提供應(yīng)用程序接口(過(guò)程集),
它可以用來(lái)將DML和DDL的語(yǔ)句發(fā)送給數(shù)
據(jù)庫(kù),再取回結(jié)果。
■由微軟定義的與C語(yǔ)言一起使用的開放數(shù)據(jù)
庫(kù)連接(ODBC)標(biāo)準(zhǔn),是一種常用的應(yīng)用程
序接口標(biāo)準(zhǔn)。Java數(shù)據(jù)庫(kù)連接。DBC)標(biāo)準(zhǔn)同
樣為Java語(yǔ)言提供了相應(yīng)的特征。
1.5.4來(lái)自應(yīng)用程序的數(shù)據(jù)庫(kù)訪問
■另一種是通過(guò)擴(kuò)展宿主語(yǔ)言的語(yǔ)法,在
宿主語(yǔ)言的程序中嵌入DML調(diào)用。通常用一
個(gè)特殊字符作為DML調(diào)用的開始,并且通過(guò)
預(yù)處理器,稱為DML預(yù)編譯器(DML
precompiler),來(lái)將DML語(yǔ)句轉(zhuǎn)變成宿主語(yǔ)
言中的過(guò)程調(diào)用。
1.6數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)主要是數(shù)據(jù)庫(kù)模式的設(shè)
計(jì);設(shè)計(jì)一個(gè)滿足企業(yè)需求模型的完整
的數(shù)據(jù)庫(kù)應(yīng)用環(huán)境還要考慮更多的問題。
因此,我們先著重討論數(shù)據(jù)庫(kù)查詢語(yǔ)句
的書寫以及數(shù)據(jù)庫(kù)模式的設(shè)計(jì),
1.6.1設(shè)計(jì)過(guò)程
數(shù)據(jù)庫(kù)設(shè)計(jì)的第一步是全面刻畫
預(yù)期的數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)需求。為了
完成這個(gè)任務(wù),數(shù)據(jù)庫(kù)設(shè)計(jì)者有必要
和領(lǐng)域?qū)<摇?shù)據(jù)庫(kù)用戶廣泛地交流;
這個(gè)階段的成果是制定出用戶需求說(shuō)
明
1.6.1設(shè)計(jì)過(guò)程
下一步,設(shè)計(jì)者選擇一個(gè)數(shù)據(jù)模型;并運(yùn)用
該選定的數(shù)據(jù)模型的概念,將那些需求轉(zhuǎn)換成一
個(gè)數(shù)據(jù)庫(kù)的概念模式。
在這個(gè)概念設(shè)計(jì)(conceptual-design)階段開發(fā)
出來(lái)的模式提供了企業(yè)的詳細(xì)概述。設(shè)計(jì)者
1’一遍這個(gè)模式,確保所有的數(shù)據(jù)需求都滿足并
且相互之間沒有沖突,在檢查過(guò)程中設(shè)計(jì)者也可
以去掉一些冗余的特征。
1.6.1設(shè)計(jì)過(guò)程
以關(guān)系模型的角度來(lái)看,概念設(shè)計(jì)階段包括
決定數(shù)據(jù)庫(kù)中應(yīng)該存儲(chǔ)哪些屬性,以及如何設(shè)計(jì)
表來(lái)組織這些屬性。
前者基本上是商業(yè)的決策,在本書中我們不
過(guò)多介紹。而后者主要是計(jì)算機(jī)科學(xué)的問題,解
決這個(gè)問題主要有兩種方法:一種是使用實(shí)體一
聯(lián)系模型,另一種是引入一套算法(通稱為規(guī)范
化),這套算法將所有屬性集作為輸入,生成一
些關(guān)系表
1.6.2銀行企業(yè)的數(shù)據(jù)庫(kù)設(shè)計(jì)
■初始的用戶需求規(guī)格說(shuō)明可以基于與數(shù)據(jù)庫(kù)用
戶的交流以及設(shè)計(jì)者自己對(duì)銀行業(yè)務(wù)的分析。
■以下是銀行企業(yè)的主要特征:
■銀行由支行組成。每個(gè)支行在特定的城市,具有唯一
的名稱。銀行可以查看支行的資產(chǎn)。
■銀行客戶通過(guò)他們的customejid值區(qū)別,銀行存儲(chǔ)了
每位用戶的名字、居住的城市和街道??蛻粲凶约旱?/p>
賬戶,可以貸款。一個(gè)客戶可能和特定的銀行職員相
關(guān)聯(lián),他充當(dāng)客戶的貸款員或個(gè)人銀行顧問。
1.6.2銀行企業(yè)的數(shù)據(jù)庫(kù)設(shè)計(jì)
銀行提供兩種賬戶:儲(chǔ)蓄賬戶和支票賬戶。
■賬戶可以對(duì)應(yīng)多個(gè)客戶,一個(gè)客戶也可擁有多個(gè)賬戶。每個(gè)賬戶
被賦予唯一的賬號(hào)。銀行保存了每個(gè)賬戶的余額,以及賬戶的擁
有者訪問賬戶的最近日期。另外,每個(gè)儲(chǔ)蓄賬戶有一個(gè)利率,每
個(gè)支票賬戶的透支信息也被記錄下來(lái)。
銀行為客戶提供貸款。某次貸款在特定的支行發(fā)生,
貸款可以為一個(gè)人或多個(gè)人合貸。每筆貸款由唯一的貸款
號(hào)決定。對(duì)每個(gè)貸款,銀行保存了貸款數(shù)量和貸款還款的
記錄。每筆還款都有日期和金額。
銀行職員通過(guò)employee_id值區(qū)別。銀行管理部門保存
每位職員的名字和電話,重行職員家屬的名字以及雇員經(jīng)
理的employee_id號(hào);銀行還存儲(chǔ)了職員的雇傭日期。
1.6.3實(shí)體一聯(lián)系模型
實(shí)體一聯(lián)系(E?R)數(shù)據(jù)模型基于對(duì)現(xiàn)實(shí)世界
的這樣一種認(rèn)識(shí):現(xiàn)實(shí)世界由一組稱作實(shí)體的基
本對(duì)象以及這些對(duì)象間的聯(lián)系構(gòu)成。
實(shí)體是現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的一件
“事情”或一個(gè)“物體”。例如,每個(gè)人是一個(gè)
實(shí)體,每個(gè)銀行賬戶也是一個(gè)實(shí)體。
1.6.3實(shí)體一聯(lián)系模型
數(shù)據(jù)庫(kù)中實(shí)體通過(guò)一些屬性(attribute)來(lái)描述。
例如,account_number與balance屬性描述了銀
行的某個(gè)特定賬戶,并且它們也組成了account實(shí)
體集的屬性。
■類彳以地,屬,性如customer_name、customer_street
和customer_city也可以描述customer實(shí)體。
1.6.3實(shí)體一聯(lián)系模型
■我們用一個(gè)額外的屬性customejid來(lái)唯一標(biāo)識(shí)客
戶。
■在美國(guó),客戶的社會(huì)保障號(hào)是美國(guó)政府分配給
每個(gè)美國(guó)公民的唯一的號(hào)碼作為客戶的標(biāo)識(shí)。
■聯(lián)系(relationship)是實(shí)體之間的關(guān)聯(lián)。
■例如,depositor聯(lián)系將一個(gè)客戶和她的每個(gè)賬
戶關(guān)聯(lián)在一起。同一類型的所有實(shí)體的集合稱
作實(shí)體£,同一類型的所有聯(lián)系的
集合稱作稱系3(relationshipset)。
163實(shí)體——聯(lián)系模型
■數(shù)據(jù)庫(kù)的總體邏輯結(jié)構(gòu)(模式)可以用E?R圖進(jìn)
行圖形化表示。E?R圖由以下元素構(gòu)成:
■矩形(rectangle),代表實(shí)體集。
■橢圓(ellipse),代表屬性。
■菱形(diamond),代表實(shí)體集間的聯(lián)系。
■線段(line),將屬性與實(shí)體集相連或?qū)?shí)體集
與聯(lián)系相連。
1.6.3實(shí)體——聯(lián)系模型
■ER模型描繪了數(shù)據(jù)庫(kù)必須遵守的對(duì)其內(nèi)容的某些約束。一個(gè)重要的約
束是(mappingcardinality),它表示通過(guò)某個(gè)聯(lián)系集能與另
一實(shí)體進(jìn)行關(guān)聯(lián)的實(shí)體數(shù)目。例如,如果一個(gè)賬戶只能屬于一個(gè)客戶,
ER模型就能表達(dá)出這種約束。
■實(shí)體一聯(lián)系模型在數(shù)據(jù)庫(kù)設(shè)計(jì)中使用廣泛,在第6章中將詳細(xì)研究。
1.6.4規(guī)范化
另外一種設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)的方法采用一種通
常被稱為規(guī)范化的過(guò)程。它的目標(biāo)是生成一個(gè)關(guān)
系模式集合,使我們能無(wú)冗余地存儲(chǔ)信息。
這種方法是設(shè)計(jì)一種符臺(tái)適當(dāng)?shù)姆妒降哪J健?/p>
為確定一個(gè)關(guān)系模式是否符合想要的范式,我們
需要額外的關(guān)于用數(shù)據(jù)庫(kù)建摸的現(xiàn)實(shí)世界中企業(yè)
的信息,最常用的方法是使用函數(shù)依賴
(functionaldependency),將在74節(jié)討論。
1.8.1存儲(chǔ)管理囂
存儲(chǔ)管理器是在數(shù)據(jù)庫(kù)中存儲(chǔ)的低層數(shù)據(jù)與應(yīng)
用程序以及向系統(tǒng)提交的查詢之間提供接口的程
序模塊。
存儲(chǔ)管理器應(yīng)負(fù)責(zé)與文件管理器進(jìn)行交互。原
始數(shù)據(jù)通過(guò)文件系統(tǒng)存儲(chǔ)在磁盤上,文件系統(tǒng)通
常由傳統(tǒng)的操作系統(tǒng)提供。存儲(chǔ)管理器將不同的
DML語(yǔ)句翻譯為底層文件系統(tǒng)命令。因此,存儲(chǔ)
管理器負(fù)責(zé)數(shù)據(jù)庫(kù)中數(shù)據(jù)的存儲(chǔ)、檢索和更新
1.8.1存儲(chǔ)管理囂
■存儲(chǔ)管理器部件包括:
■?權(quán)限及完整性管理器,檢測(cè)是否滿足完整性約
束,檢查試圖訪問數(shù)據(jù)的用戶的權(quán)限。
■,事務(wù)管理器,保證即使發(fā)生了故障,數(shù)據(jù)庫(kù)也
保持在一致的(正確的)狀態(tài);保證并發(fā)事務(wù)的
執(zhí)行不發(fā)生沖突。
■■文件管理器,管理磁盤空間的分配,管理用于表
示磁盤上所存儲(chǔ)信息的數(shù)據(jù)結(jié)構(gòu)。
■,緩沖管理器,負(fù)責(zé)將數(shù)據(jù)從磁盤上取到內(nèi)存中
來(lái),并決定哪些數(shù)據(jù)應(yīng)被緩沖存儲(chǔ)在內(nèi)存中。緩
沖管理器是數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)關(guān)鍵部分,因?yàn)?/p>
它使數(shù)據(jù)庫(kù)可以處理比內(nèi)存更大的數(shù)據(jù)。
1.8.1存儲(chǔ)管理囂
■存儲(chǔ)管理器實(shí)現(xiàn)了幾種數(shù)據(jù)結(jié)構(gòu):
■,數(shù);(datafile),存儲(chǔ)數(shù)據(jù)庫(kù)自身。
■,數(shù)據(jù)字典(datadictionary),存儲(chǔ)關(guān)于數(shù)據(jù)庫(kù)結(jié)
構(gòu)的元數(shù)據(jù),尤其是數(shù)據(jù)庫(kù)模式。
■?,提供對(duì)數(shù)據(jù)項(xiàng)的快速訪問。和書
中的索引一樣,數(shù)據(jù)庫(kù)索引為包含特定值的數(shù)據(jù)
提供了指針。
1.8.2查詢處理器
■查詢處理器組件包括:
■?DDL解釋器(DDLinterpreter),解釋
DDL語(yǔ)句并將這些定義記錄在數(shù)據(jù)字典中。
■?DML編譯器(DMLcompiler),將查詢語(yǔ)
言中DML語(yǔ)句翻譯為一個(gè)計(jì)算方案,包括
一系列查詢計(jì)算引擎能理解的低級(jí)指令。
1.8.2查詢處理器
■一個(gè)查詢通??杀唤忉尦啥喾N等價(jià)的具
有相同結(jié)果的計(jì)算方案的一種。
■DML編譯器還進(jìn)行:
■查詢優(yōu)化(queryoptimization)
■查詢計(jì)算引擎(queryevaluationengine),
執(zhí)行由DIVIL編譯器產(chǎn)生的低級(jí)指令。
1.9事務(wù)管理
■通常,對(duì)數(shù)據(jù)庫(kù)的幾個(gè)操作合起來(lái)形成一個(gè)邏輯單元。如
1.2節(jié)中資金轉(zhuǎn)賬的例子,其中的一個(gè)賬戶(A賬戶)發(fā)生
借出操作,而另一賬戶(B賬戶)發(fā)生貸入操作。顯然,
這兩個(gè)操作必須保證要么都發(fā)生要么都不發(fā)生。這種要
么完成要么不發(fā)生的要求稱為原子性(atomicity)。
■資金轉(zhuǎn)賬還必須保持?jǐn)?shù)據(jù)庫(kù)的一致性。也就是說(shuō),
A+B的和應(yīng)該是保持不變的。這種正確性的要求稱作一致
(consistency)。
■最后,當(dāng)資金轉(zhuǎn)賬成功結(jié)束后,即使發(fā)生系統(tǒng)故障,賬戶
A和賬戶B的值也應(yīng)該保持不變。這種保持不變的要求稱
為持久性(durability)。
1.9事務(wù)管理
事務(wù)(transaction)是數(shù)據(jù)庫(kù)應(yīng)用中完成單一邏輯功能的
操作集合,是一個(gè)既具原子性又具一致性的單元。
我們要求事務(wù)不違反任何的數(shù)據(jù)庫(kù)一致性約束,即:
如果事務(wù)啟動(dòng)時(shí)數(shù)據(jù)庫(kù)是一致的,那么當(dāng)這個(gè)事務(wù)成功結(jié)
束時(shí)數(shù)據(jù)庫(kù)也應(yīng)該是一致的。但是,在事務(wù)執(zhí)行過(guò)程中,
必要時(shí)允許暫時(shí)的不一致,因?yàn)闊o(wú)論是A取出的操作在前
還是B存入的操作在前,這兩個(gè)操作都必然有一個(gè)先后次
序。這種暫時(shí)的不一致雖然是必須的,但在故障發(fā)生時(shí),
很可能導(dǎo)致問題的產(chǎn)生。
1.9事務(wù)管理
適當(dāng)定義不同事務(wù)是程序員的任務(wù),事務(wù)的
定義應(yīng)使之能保持?jǐn)?shù)據(jù)庫(kù)的一致性。例如,資金
從賬戶A轉(zhuǎn)到賬戶B可以被定義為由兩個(gè)單獨(dú)的程
序組成:一個(gè)對(duì)賬戶A執(zhí)行取出操作,另一個(gè)對(duì)
賬戶B執(zhí)行存入操作。這兩個(gè)程序的依次執(zhí)行可
以保持一致性。但是,這兩個(gè)程序自身都不是把
數(shù)據(jù)庫(kù)從一個(gè)一致的狀態(tài)轉(zhuǎn)入一個(gè)新的一致的狀
態(tài),因此它們都不是事務(wù)。
1.9事務(wù)管理
原子性和持久性的保證則是數(shù)據(jù)庫(kù)系統(tǒng)自身
的任務(wù),更確切一些,是事務(wù)管理部件。
由于各種各樣的故障,事務(wù)并不總能成功執(zhí)
行完畢。為了保證原子性,失敗的事務(wù)必須對(duì)效
據(jù)庫(kù)狀態(tài)不產(chǎn)生任何影響,因此,數(shù)據(jù)庫(kù)必須被
恢復(fù)到該失敗事務(wù)開始執(zhí)行以前的狀態(tài)。這種情
況下數(shù)據(jù)庫(kù)系統(tǒng)必須運(yùn)行故障恢復(fù)(failure
,來(lái)檢測(cè)系統(tǒng)故障并將數(shù)據(jù)庫(kù)恢復(fù)到故
障發(fā)生以前的狀態(tài)。
1.9事務(wù)管理
當(dāng)多個(gè)事務(wù)同時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新時(shí),即使
每個(gè)單獨(dú)的事務(wù)都是正確的,數(shù)據(jù)的一致性也可
能被破壞。并發(fā)控制管理器控制并發(fā)事務(wù)間的相
互影響,保證數(shù)據(jù)庫(kù)一致性。
■事務(wù)處理的基本概念在第15章介紹.并發(fā)事務(wù)的管理
在第16章討論,第17章詳細(xì)介紹故障恢復(fù)。
1.10數(shù)據(jù)挖掘與分析
數(shù)據(jù)挖掘(datamining)在人工智能領(lǐng)域,習(xí)
慣上又稱為數(shù)據(jù)庫(kù)中的知識(shí)發(fā)現(xiàn)(Knowledge
DiscoveryinDatabase,KDD(也稱為機(jī)器學(xué)習(xí)
(machinelearning))
數(shù)據(jù)挖掘試圖從數(shù)據(jù)中尋找規(guī)則或模式。但是,
數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)、統(tǒng)計(jì)分析不一樣的地方在
于它處理主要存儲(chǔ)在磁盤上的大量的數(shù)據(jù),也就
是說(shuō),數(shù)據(jù)挖掘就是在數(shù)據(jù)庫(kù)中發(fā)現(xiàn)知識(shí)。
1.10數(shù)據(jù)挖掘與分析
從數(shù)據(jù)庫(kù)中發(fā)現(xiàn)的某些類型的知識(shí)可以用一
套規(guī)則(rule)標(biāo)識(shí)。下面是一條規(guī)則的例子,非形
式化的描述為:??年收入高于50000美元的年輕
女性是最可能購(gòu)買小型運(yùn)動(dòng)車的人群。門當(dāng)然這
條規(guī)則并不是永遠(yuǎn)正確的,但它有一定的“支持”
度和“置信?.度。其他類型的知識(shí)表達(dá)方式比如
聯(lián)系不同變量的方程式,或者通過(guò)其他機(jī)制根據(jù)
某些已知的變量來(lái)預(yù)測(cè)輸出。
1.11數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)很大程度上取決于數(shù)
據(jù)庫(kù)系統(tǒng)所運(yùn)行的計(jì)算機(jī)系統(tǒng)。
數(shù)據(jù)庫(kù)系統(tǒng)可以是集中式的、客戶/服務(wù)器
式的(一臺(tái)服務(wù)器為多個(gè)客戶機(jī)執(zhí)行任務(wù));也
可以針對(duì)并行計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng);
分布式數(shù);包含地理上分離的多臺(tái)計(jì)算機(jī)。
1.11數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
數(shù)據(jù)庫(kù)的應(yīng)用程序通??煞譃閮苫蛉齻€(gè)部分,
如下圖所示。
在兩層體系結(jié)構(gòu)中,應(yīng)用程序被分離出一部
分保留在客戶機(jī)上,用來(lái)通過(guò)查詢語(yǔ)言表達(dá)式來(lái)
調(diào)用服務(wù)器上的數(shù)據(jù)庫(kù)系統(tǒng)功能。像ODBC和
JDBC這樣的應(yīng)用程序接口標(biāo)準(zhǔn)被用于進(jìn)行客戶端
和服務(wù)器的交互。
1.11數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
■在三層體系結(jié)構(gòu)中,客戶機(jī)只作為一個(gè)前端并
且不包含任何直接的數(shù)據(jù)庫(kù)調(diào)用。
■客戶端通過(guò)窗口界面與一個(gè)應(yīng)用服務(wù)器
(applicationserver)進(jìn)行通信,通常是一^個(gè)表單界
面,接著應(yīng)用服務(wù)器與數(shù)據(jù)庫(kù)系統(tǒng)通信以訪問數(shù)
據(jù)。應(yīng)用程序的業(yè)務(wù)邏輯(businesslogic),也就是
說(shuō)在何種條件下做出何種反應(yīng),被嵌入到應(yīng)用服
務(wù)器中,而不是分布在多個(gè)客戶機(jī)上。
■三層結(jié)構(gòu)的應(yīng)用更適合大型應(yīng)用和WWW上的應(yīng)用
1.11數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
1.12數(shù)據(jù)庫(kù)用戶和管理員
■數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)主要目標(biāo)是從
數(shù)據(jù)庫(kù)中檢索信息和往數(shù)據(jù)庫(kù)中存儲(chǔ)
新信息。
■使用數(shù)據(jù)庫(kù)的人員可被分為數(shù)據(jù)
庫(kù)用戶和數(shù)據(jù)庫(kù)管理員
三、人員
■數(shù)據(jù)庫(kù)管理員
■系統(tǒng)分析員和數(shù)據(jù)庫(kù)設(shè)計(jì)人員
■應(yīng)用程序員
■用戶
?:?不同的人員涉及不同的數(shù)據(jù)抽象級(jí)別,具有不同的數(shù)據(jù)
視圖,如下圖所示。
圖1.30各種人員的數(shù)據(jù)視圖
數(shù)據(jù)庫(kù)管理員(DBA)
具體職責(zé):
■1.決定數(shù)據(jù)庫(kù)中的信息內(nèi)容和結(jié)構(gòu)
■2.決定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取策略
■3.定義數(shù)據(jù)的安全性要求和完整性約束條件
數(shù)據(jù)庫(kù)管理員
■4.監(jiān)控?cái)?shù)據(jù)庫(kù)的使用和運(yùn)行
■周期性轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)
■數(shù)據(jù)文件
■日志文件
■系統(tǒng)故障恢復(fù)
■介質(zhì)故障恢復(fù)
■監(jiān)視審計(jì)文件
數(shù)據(jù)庫(kù)管理員
■5.數(shù)據(jù)庫(kù)的改進(jìn)和重組
■性能監(jiān)控和調(diào)優(yōu)
■定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行重組織,以提高系統(tǒng)的
性能
■需求增加和改變時(shí),數(shù)據(jù)庫(kù)須需要重構(gòu)造
系統(tǒng)分析員
■負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說(shuō)明
■與用戶及DBA協(xié)商,確定系統(tǒng)的硬軟件配置
■參與數(shù)據(jù)庫(kù)系統(tǒng)的概要設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)人員
■參加用戶需求調(diào)查和系統(tǒng)分析
■確定數(shù)據(jù)庫(kù)中的數(shù)據(jù)
■設(shè)計(jì)數(shù)據(jù)庫(kù)各級(jí)模式
4.應(yīng)用程序員
■設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊
■進(jìn)行調(diào)試和安裝
4.用戶
用戶是指最終用戶,即通過(guò)應(yīng)用系統(tǒng)的用戶接口使用數(shù)據(jù)庫(kù)
■
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人力資源服務(wù)合同解除協(xié)議
- 2025年前雇主員工競(jìng)業(yè)禁止合同樣本模板
- 2025版?zhèn)€人合伙退伙協(xié)議書糾紛處理指南4篇
- 2025年度駱采與陳鵬的離婚財(cái)產(chǎn)分割及子女撫養(yǎng)權(quán)合同4篇
- 2025年度油煙管道清洗與環(huán)保設(shè)施投資合作合同
- 2025年度豪華酒店加盟投資合作協(xié)議
- 2025年度股東向公司無(wú)息借款及資金使用保障合同
- 2025年度足浴店店面能耗管理與節(jié)能改造合同模板
- 二零二五年度充電樁場(chǎng)地租賃與新能源汽車充電服務(wù)合同
- 二零二五年度跆拳道俱樂部賽事直播與轉(zhuǎn)播服務(wù)合同
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 商場(chǎng)電氣設(shè)備維護(hù)勞務(wù)合同
- 2023年國(guó)家公務(wù)員錄用考試《行測(cè)》真題(行政執(zhí)法)及答案解析
- 2024智慧醫(yī)療數(shù)據(jù)字典標(biāo)準(zhǔn)值域代碼
- 年產(chǎn)12萬(wàn)噸裝配式智能鋼結(jié)構(gòu)項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- 【獨(dú)家揭秘】2024年企業(yè)微信年費(fèi)全解析:9大行業(yè)收費(fèi)標(biāo)準(zhǔn)一覽
- 醫(yī)療器械經(jīng)銷商會(huì)議
- 《±1100kV特高壓直流換流變壓器使用技術(shù)條件》
- 《風(fēng)電場(chǎng)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)規(guī)范》(NB-T 31085-2016)
- 五年級(jí)上冊(cè)脫式計(jì)算100題及答案
評(píng)論
0/150
提交評(píng)論