數(shù)據(jù)庫(kù)系統(tǒng)概念_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概念_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概念_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概念_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概念_第5頁(yè)
已閱讀5頁(yè),還剩115頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論