




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與設(shè)計方法課件下載:聯(lián)系方式:
邵家玉中國:::參考書:.王能斌。數(shù)據(jù)庫系統(tǒng)。電子工業(yè)出版社。年。.王能斌編。數(shù)據(jù)庫系統(tǒng)原理。電子工業(yè)出版社。年。.王珊陳紅。數(shù)據(jù)庫系統(tǒng)原理教程。.[美]··厄爾曼。數(shù)據(jù)庫系統(tǒng)原理。課程考核第一章
、、、.
(李明,男,,江蘇,計算機系,)數(shù)據(jù)、信息、知識三者之間的關(guān)系:數(shù)據(jù)的語義即為信息,信息在計算機中的存儲(表示形式)即為數(shù)據(jù)。從信息中提升、推理、推導(dǎo)出的新的信息即為知識。例如:(數(shù)據(jù))—℃(信息)—發(fā)燒(知識).
——.
——.
——數(shù)據(jù)庫管理員(,簡稱)。.
數(shù)據(jù)模型是用來描述數(shù)據(jù)的一組概念和定義。一般來說,數(shù)據(jù)的描述包括兩個方面:()數(shù)據(jù)的靜態(tài)特性它包括數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系和數(shù)據(jù)中的約束。()數(shù)據(jù)的動態(tài)特性它指定義在數(shù)據(jù)上的操作。如文件系統(tǒng)。數(shù)據(jù)模型要面向現(xiàn)實世界,面向用戶。數(shù)據(jù)模型要面向?qū)崿F(xiàn),面向計算機。)
如模型、面向?qū)ο髷?shù)據(jù)模型等。)
如關(guān)系數(shù)據(jù)模型、層次模型、網(wǎng)狀模型等。)
概念數(shù)據(jù)模型只用于數(shù)據(jù)庫的設(shè)計,邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型用于的實現(xiàn)。.
:型是該數(shù)據(jù)所屬數(shù)據(jù)類型的說明。:值是型的一個實例(或)。對某一類數(shù)據(jù)的結(jié)構(gòu)、聯(lián)系和約束的描述是型的描述,型的描述稱為數(shù)據(jù)模式()。在同一數(shù)據(jù)模式下,可以有很多的值,即實例。例如,學(xué)生記錄可以定義為圖()的形式,這是數(shù)據(jù)模式。而圖()是其一個實例。數(shù)據(jù)模型是描述數(shù)據(jù)的手段.而數(shù)據(jù)模式是用給定數(shù)據(jù)模型對具體數(shù)據(jù)的描述。美國國家標準協(xié)會()的//報告把數(shù)據(jù)模式分為三級(見圖)。)
)
)
.
數(shù)據(jù)模式是相對穩(wěn)定的,而實例是相對變動的。數(shù)據(jù)模式反映一個單位的各種事物的結(jié)構(gòu)、屬性、聯(lián)系和約束,實質(zhì)上是用數(shù)據(jù)模型對一個單位的模擬。而實例反映數(shù)據(jù)庫的某一時刻的狀態(tài),也就是這一單位在此時的狀態(tài)。
數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展.
人工管理階段人工管理數(shù)據(jù)具有如下特點:)
數(shù)據(jù)不保存。)
數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(yīng)的軟件系統(tǒng)負責(zé)數(shù)據(jù)的管理工作。)
數(shù)據(jù)不共享。)
數(shù)據(jù)不具有獨立性。
人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對應(yīng)關(guān)系可用圖表示。.
文件系統(tǒng)階段用文件系統(tǒng)管理數(shù)據(jù)具有如下特點:)
數(shù)據(jù)可以長期保存。)
由專門的軟件即文件系統(tǒng)進行數(shù)據(jù)管理。)
數(shù)據(jù)共享性差。)
數(shù)據(jù)獨立性低。文件系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖所示。.
數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)庫系統(tǒng)來管理數(shù)據(jù)具有如下特點:)
數(shù)據(jù)結(jié)構(gòu)化學(xué)生人事記錄學(xué)號姓名性別系別年齡政治面貌家庭出身籍貫家庭成員獎懲情況圖)
數(shù)據(jù)的共享性好,冗余度低)
數(shù)據(jù)獨立性高)
數(shù)據(jù)由統(tǒng)一管理和控制
數(shù)據(jù)的安全性()
數(shù)據(jù)的完整性()
并發(fā)()控制
數(shù)據(jù)庫恢復(fù)()量大持久共享
數(shù)據(jù)庫技術(shù)的研究領(lǐng)域.
數(shù)據(jù)庫管理系統(tǒng)軟件的研制.
數(shù)據(jù)庫設(shè)計.
數(shù)據(jù)庫理論
數(shù)據(jù)庫工程與應(yīng)用
數(shù)據(jù)庫設(shè)計的目標與特點圖
數(shù)據(jù)庫設(shè)計方法新奧爾良方法:需求分析(分析用戶要求)、概念設(shè)計(信息分析和定義)、邏輯設(shè)計(設(shè)計實現(xiàn))和物理設(shè)計(物理數(shù)據(jù)庫設(shè)計)。..:需求分析、模式構(gòu)成、模式匯總、模式重構(gòu)、模式分析和物理數(shù)據(jù)庫設(shè)計。..則主張把數(shù)據(jù)庫設(shè)計當(dāng)成一步接一步的過程,并采用一些輔助手段實現(xiàn)每一過程。此外,基于—模型的數(shù)據(jù)庫設(shè)計方法,基于(第三范式)的設(shè)計方法,基于抽象語法規(guī)范的設(shè)計方法等。規(guī)范設(shè)計法在具體使用中又可以分為兩類:手工設(shè)計和計算機輔助數(shù)據(jù)庫設(shè)計。
數(shù)據(jù)庫設(shè)計步驟.
需求分析.
概念結(jié)構(gòu)設(shè)計.
邏輯結(jié)構(gòu)設(shè)計圖.
數(shù)據(jù)庫物理設(shè)計.
數(shù)據(jù)庫實施.
數(shù)據(jù)庫運行和維護在數(shù)據(jù)庫設(shè)計過程中必須注意以下問題。.
數(shù)據(jù)庫設(shè)計過程中要注意充分調(diào)動用戶的積極性。.
應(yīng)用環(huán)境的改變、新技術(shù)的出現(xiàn)等都會導(dǎo)致應(yīng)用需求的變化,因此設(shè)計人員在設(shè)計數(shù)據(jù)庫時必須充分考慮到系統(tǒng)的可擴充性,使設(shè)計易于變動。.
系統(tǒng)的可擴充性最終都是有一定限度的。
各種用戶的數(shù)據(jù)視圖主要職責(zé)包括:.
設(shè)計與定義數(shù)據(jù)庫系統(tǒng).
幫助最終用戶使用數(shù)據(jù)庫系統(tǒng).
監(jiān)督與控制數(shù)據(jù)庫系統(tǒng)的使用和運行.
改進和重組數(shù)據(jù)庫系統(tǒng),調(diào)優(yōu)數(shù)據(jù)庫系統(tǒng)的性能.
轉(zhuǎn)儲與恢復(fù)數(shù)據(jù)庫.
重構(gòu)數(shù)據(jù)庫第二章
數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能比較真實地模擬現(xiàn)實世界;二是容易為人所理解;三是便于在計算機上實現(xiàn)。兩類:概念模型也稱信息模型,數(shù)據(jù)模型包括網(wǎng)狀模型、層次模型、關(guān)系模型。
數(shù)據(jù)模型的要素
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)操作
數(shù)據(jù)的約束條件
概念模型——
數(shù)據(jù)模型()數(shù)據(jù)模型().實體()、實體集()與是型()與值()的關(guān)系(類似于前述與).屬性()值集()實體鍵()實體主鍵().
聯(lián)系()基數(shù)比約束()參與約束():部分參與、全參與結(jié)構(gòu)約束()兩個實體之間的聯(lián)系可以分為三類:
一對一聯(lián)系()
一對多聯(lián)系()
多對多聯(lián)系()所有()關(guān)系——弱實體()
用數(shù)據(jù)模型對某一單位進行模擬,可以得到數(shù)據(jù)模式,數(shù)據(jù)模式可以圖來直觀地表示。:
:::示例:教職工研究生班級職工編號姓名出生年月職稱是否博導(dǎo)是否碩導(dǎo)學(xué)號姓名出生年月學(xué)位類型是否在職課程課程號名稱開課學(xué)期學(xué)時上課地點學(xué)分班級號信箱教職工班級研究生課程班主任C_G導(dǎo)師任課可擔(dān)任選課MN1NNNMMNMMN止起時間止起時間類型性質(zhì)成績類型類型專業(yè)方向說明:.學(xué)位類型:碩士博士.導(dǎo)師類型:主要指導(dǎo)老師、協(xié)助指導(dǎo).研究生可能換導(dǎo)師,換專業(yè)、方向.選課性質(zhì):學(xué)位課非學(xué)位課.任課類型:主講輔講.可擔(dān)任描述有哪些老師可以上哪些課.任課是指目前該課程的任課老師.開課學(xué)期:春秋季.上課地點:目前該課程的上課教室問題:.課性質(zhì)屬性為什么不屬于課程實體,而屬于選課聯(lián)系?.專業(yè)、方向可不可以屬于研究生?
.特殊化()和普遍化()全特殊化()部分特殊化()不相交特殊化()重疊特殊化().
聚集().
范疇()
層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu).層次模型的基本結(jié)構(gòu)圖TS數(shù)據(jù)模式圖TS數(shù)據(jù)模式的一個值.多對多聯(lián)系在層次模型中的表示
層次數(shù)據(jù)模型的操縱與完整性約束
層次數(shù)據(jù)模型的存儲結(jié)構(gòu)
層次數(shù)據(jù)模型的優(yōu)缺點層次數(shù)據(jù)模型的優(yōu)點主要有:
層次數(shù)據(jù)模型本身比較簡單,只需很少幾條命令就能操縱數(shù)據(jù)庫,比較容易使用。
對于實體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型來實現(xiàn),其性能優(yōu)于關(guān)系模型,不次于網(wǎng)狀模型。
層次數(shù)據(jù)模型提供了良好的完整性支持。層次數(shù)據(jù)模型的缺點主要有:
現(xiàn)實世界中很多聯(lián)系是非層次性的,如多對多聯(lián)系、一個結(jié)點具有多個雙親等,層次模型表示這類聯(lián)系的方法很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬結(jié)點)來解決。
對插入和刪除操作的限制比較多。
查詢子女結(jié)點必須通過雙親結(jié)點。
由于結(jié)構(gòu)嚴密,層次命令趨于程序化。
網(wǎng)狀數(shù)據(jù)模型
網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)
網(wǎng)狀數(shù)據(jù)模型的操縱與完整性約束
網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)
網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點網(wǎng)狀數(shù)據(jù)模型的優(yōu)點主要有:
能夠更為直接地描述現(xiàn)實世界,如一個結(jié)點可以有多個雙親、允許結(jié)點之間為多對多的聯(lián)系等。
具有良好的性能,存取效率較高。網(wǎng)狀數(shù)據(jù)模型的缺點主要有:
其語言極其復(fù)雜。
數(shù)據(jù)獨立性較差。由于實體問的聯(lián)系本質(zhì)上是通過存取路徑指示的,因此應(yīng)用程序在訪問數(shù)據(jù)時要指定存取路徑。
.:第一范式()非第一范式()空值:.
設(shè)有一命名為的關(guān)系,它有屬性、、…、,其對應(yīng)的城分別為、、…、則關(guān)系可表示為:=(,,…,)或=(,,…,)或=(…)表示關(guān)系的屬性。()的值:(){,…}<,…>,∈≤≤笛卡爾乘積××DE
FG
DEFG1256125634781278
×90=1290
345634783490關(guān)系模式:(姓名,學(xué)號,性別,出生年份.籍貫,系別,入學(xué)年份)<李彤,,女,,江蘇,計算機系,>投影:[][][姓名,性別].
定義:如果關(guān)系的某一屬性或?qū)傩越M的值唯一地決定其他所有屬性的值,也就是唯一地決定一個元組,而其任何真子集無此性質(zhì),則這個屬性或?qū)傩越M稱為該關(guān)系的候選鍵(),或簡稱為鍵。((供應(yīng)商,零件名,工程名))
(課程名,課程號,學(xué)分,開課時間,先修課程號)(學(xué)號,課程號,成績)
=(,,…,).
.
.
.
.
σ<選擇條件>(<關(guān)系名>).
Π<屬性表>(<關(guān)系名>)Π性別,籍貫、出生年份()若<屬性表>包含<屬性表>則:Π<屬性表>(Π<屬性表>())Π<屬性表>()Π姓名(σ性別‘女’()).
∩≡()
Π課程號()Π先修課程號()σ系別‘計算機系’()∪σ系別‘電子系’()×{<>∈∈}
<連接條件>σ<連接條件>(×)連接條件:<條件><條件>……<條件>θ連接:θ等連接()自然連接()例:.課程號.課程號(Π課程名,課程號,學(xué)分())關(guān)系代數(shù)操作集{σ,Π,∪,,×}是完備的操作集。{σ,Π,∪,,}
.
.
.
.
第三章
結(jié)構(gòu)化查詢語言(,簡稱)
語言是年由和提出的。年至年實現(xiàn)了這種語言。年月美國國家標準局(簡稱)年國際標準化組織(簡稱)也通過了這一標準。年第二次公布標準()年標準目前正在醞釀新的標準:。現(xiàn)在已被重新解釋成為:按其功能可分為四大部分:.
數(shù)據(jù)定義語言(,簡稱).
查詢語言(,簡稱).
數(shù)據(jù)操縱語言(,簡稱).
數(shù)據(jù)控制語言(,簡稱)
的特點.
綜合統(tǒng)一.
高度非過程化.
面向集合的操作方式.
以同一種語法結(jié)構(gòu)提供兩種使用方式.
語言簡潔,易學(xué)易用表語言的動詞
語言的基本概念
數(shù)據(jù)定義表的數(shù)據(jù)定義語句
定義、刪除與修改基表.
定義基表<表名>(<列名><數(shù)據(jù)類型>[列級完整件約束條件][,<列名><數(shù)據(jù)類型>[列級完整性約束條件]……][<表級完整性約束條件>]);列級完整性約束條件格式:[[]][字值]表級完整性約束條件有三個任選項。用于定義主鍵的子句,用于定義外鍵的子句和用于定義列值限制條件的子句。格式:[,(<列名>…)][,[外鍵名](<列名>…)<表名>[]][,(條件)……]主要支持以下數(shù)據(jù)類型:半字長二進制整數(shù)?;蛉珠L二進制整數(shù)。([])或([])壓縮十進制數(shù),共位,其中小數(shù)點后有位?!堋堋埽綍r可以省略。雙字長浮點數(shù)。()或()長度為的定長字符串。()最大長度為的變長字符串。()長度為的定長圖形字符串。()最大長度為的變長圖形字符串。日期型,格式為——。時間型,格式為。日期加時間。例建立(學(xué)生)、(課程)、(選課)表。.“學(xué)生”表由學(xué)號()、姓名()、性別()、年齡〔〕、所在系()個屬性組成,可記為(,,,,)其中為主鍵。.“課程”表由課程號()、課程名()、先修課號()、學(xué)分()個屬性組成,可記為:(,,,)其中為主鍵。.“學(xué)生選課”表由學(xué)號()、課程號()、成績()個屬性組成,其中(,)為主鍵。
((),(),(),,(),());
((),(),()(),(),());
((),(),(),(),(),());.
修改基表<表名>[<新列名><數(shù)據(jù)類型>[完整性約束]][<完整性約束名>][<列名><數(shù)據(jù)類型>];例向表增加“入學(xué)時間”列,其數(shù)據(jù)類型為日期型。;例將年齡的數(shù)據(jù)類型改為半字長整數(shù)。;例刪除(撤消)表主鍵定義。;.
刪除基表<表名>;例刪除表。;
建立與刪除索引.
建立索引[][]<索引名><表名>(<列名>[次序][,<列名>[次序]]…);排列次序,包括(升序)和(降序)兩種,缺省值為。();例為學(xué)生—課程數(shù)據(jù)庫中的,,個表建立索引。其中表按學(xué)號升序建立唯一索引,表按課程號升序建立唯一索引,表按學(xué)號升序和課程號降序建唯一索引。();();(,);.
刪除索引<索引名>;例刪除表的索引。;
查詢[]<目標列表達式>[,<目標列表達式>]…<表名或視圖名>[,<表名或視圖名>]…[<條件表達式>][<列名>[<條件表達式>]][<列名>[]];
單表查詢.
選擇表中的若干列)
查詢指定列例查詢?nèi)w學(xué)生的學(xué)號與姓名。,;例查詢?nèi)w學(xué)生的姓名、學(xué)號、所在系。,,;)
查詢?nèi)苛欣樵內(nèi)w學(xué)生的詳細記錄*;)
查詢經(jīng)過計算的值例查詢?nèi)w學(xué)生的姓名及其出生年份。,;例查詢?nèi)w學(xué)生的姓名、出生年份和所在系,要求用小寫字母表示所在系名,‘:’,,();
,‘:’,,();結(jié)果為:
李勇:劉晨:王名:張立:.
選擇表中的若干元組)
消除取值重復(fù)的行例查詢所有選修過課的學(xué)生的學(xué)號。
;假設(shè)表中有下列數(shù)據(jù):
執(zhí)行上面的語句后,結(jié)果為:
;執(zhí)行結(jié)果為:
;與
;完全等價。)
查詢滿足條件的元組表常用的查詢條件①比較大?。降扔冢敬笥冢夹∮冢荆酱笥诘扔冢迹叫∮诘扔冢。交颍迹静坏扔谟行┊a(chǎn)品中還包括:?。静淮笥冢。疾恍∮谶壿嬤\算符可與比較運算符同用,對條件求非。例查計算機系全體學(xué)生的名單。
=‘’;例查所有年齡在歲以下的學(xué)生姓名及其年齡。,
<;或,
>;例查考試成績有不及格的學(xué)生的學(xué)號。
<;②確定范圍謂詞......和......可以用來查找屬性值在(或不在)指定范圍內(nèi)的元組,其中后是范圍的下限(即低值),后是范圍的上限(即高值)。例查詢年齡在至歲之間的學(xué)生的姓名、系別和年齡。,,
;與......相對的謂詞是......。例查詢年齡不在至歲之間的學(xué)生姓名、系別和年齡。,,
;③確定集合謂詞可以用來查找屬性值屬于指定集合的元組。例查信息系()、數(shù)學(xué)系()和計算機科學(xué)系()的學(xué)生的姓名和性別。.
(‘’,‘’,‘’);與相對的謂詞是,用于查找屬性值不屬于指定集合的元組。例查既不是信息系、數(shù)學(xué)系,也不是計算機科學(xué)系的學(xué)生的姓名和性別。.
(‘’,‘’,‘’);④字符匹配謂詞可以用來進行字符串的匹配。其一般語法格式如下:[]‘<匹配串>’其含義是查找指定的屬性列值與<匹配串>相匹配的元組,<匹配串>可以是一個完整的字符串,也可以含有通配符%和。其中:%(百分號)代表任意長度(長度可以為)的字符串。例如表示以開頭,以結(jié)尾的任意長度的字符串,等都滿足該匹配串。(下劃線)代表任意單個寧符。例如表示以開頭,以結(jié)尾,長度為的字符串,等都滿足該匹配串。例查詢學(xué)號為的學(xué)生的詳細情況*
‘’;該語句實際上與下面的語句完全等價:*
‘’;例查所有姓劉的學(xué)生的姓名、學(xué)號和性別。
‘劉’;例查姓“歐陽”且全名為個漢字的學(xué)生的姓名。
‘歐陽’;例查名字中第二字為“陽”字的學(xué)生的姓名和學(xué)號。,
’陽%’;例查所有不姓劉的學(xué)生姓名。,,
‘劉’;⑤涉及空值的查詢謂詞和可用來查詢空值和非空值。例某些學(xué)生選修某門課程后沒有參加考試,所以有選課記錄,但沒有考試成績,下面來查一下缺少成績的學(xué)生的學(xué)號和相應(yīng)的課程號。,
;例查所有有成績的記錄的學(xué)生學(xué)號和課程號。,
;⑥多重條件查詢例查系年齡在歲以下的學(xué)生姓名
‘’<;例中的謂詞實際上是多個運算符的縮寫,因此,例中的查詢也可以用運算符寫成如下等價形式:.
‘’‘’‘’;.
對查詢結(jié)果排序例查詢選修了號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分數(shù)的降序排列。,
=‘’;例查詢?nèi)w學(xué)生情況,查詢結(jié)果按所在系升序排列,對同一系中的學(xué)生按年齡降序排列。*
,;.
使用集函數(shù)([]*)統(tǒng)計元組個數(shù)([]<列名>)統(tǒng)計一列中值的個數(shù)([]<列名>)計算一列值的總和(此列必須是數(shù)值型)([]<列名>)計算一列值的平均值(此列必須是數(shù)值型)([]<列名>)求一列值中的最大值([]<列名>)求一列值中的最小值例查詢學(xué)生總?cè)藬?shù)。(*);例查詢選修了課程的學(xué)生人數(shù)。();例計算號課程的學(xué)生平均成績。()
=‘’;例查詢學(xué)習(xí)號課程的學(xué)生最高分數(shù)。()
=‘’;.
對查詢結(jié)果分組例查詢各個課程號與相應(yīng)的選課人數(shù)。,()
;例查詢信息系選修了門以上課程的學(xué)生的學(xué)號,為簡單起見,假設(shè)表中有一列,它記錄了學(xué)生所在系。
=‘’
(*)>;
連接查詢.
等值與非等值連接查詢[<表名>.]<列名><比較運算符>[<表名>.]<列名>其中比較運算符主要有:=、>、<、>=、<=、?。?。此外,連接謂詞還可以使用下面形式:[<表名>.]<列名>[<表名.]<列名>[<表名>.]<列名>當(dāng)連接運算符為=時,稱為等值連接。使用其它運算符稱為非等值連接。例查詢每個學(xué)生及其選修課程的情況。.*,.*,=;例表和表的笛卡爾積。.*,.*,
例自然連接表和表。,,,,,,,=;或.*,,,=;.
自身連接例查詢每一門課的間接先修課(即先修課的先修課)。,,=;
.
外連接例,,,,,,,=(*);,,,,,,李勇男李勇男李勇男劉晨女劉晨女王名女張立男.
復(fù)合條件連接例查詢選修號課程且成績在分以上的所有學(xué)生。
,==’’>;結(jié)果表為;
劉晨例查詢每個學(xué)生選修的課程名及其成績。,,,,,=..=.;
嵌套查詢
(
=‘’);.
帶有謂詞的子查詢例查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生。查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生,可以首先確定“劉晨”所在系名,然后再查找所有在該系學(xué)習(xí)的學(xué)生。所以可以分步來完成此查詢:①確定“劉晨”所在系名
‘劉晨’;結(jié)果為:②查找所有在系學(xué)習(xí)的學(xué)生。
‘’;分步寫查詢畢竟比較麻煩,上述查詢實際上可以用子查詢來實現(xiàn),即將第一步查詢嵌入到第二步查詢中,用以構(gòu)造第二步查詢的條件。語句如下:,,
(
=‘劉晨’);本例中的查詢也可以用前面學(xué)過的表的自身連接查詢來完成:,,
‘劉晨’;本例中父查詢和子查詢均引用了表.也可以像表的自身連接查詢那樣用別名將父查詢中的表與子查詢中的表區(qū)分開:,,
(
=’劉晨’);例查詢選修了課程名為信息系統(tǒng)的學(xué)生學(xué)號和姓名。完成此查詢的基本思路是:①首先在關(guān)系中找出‘信息系統(tǒng)’課程的課程號。②然后在關(guān)系中找出等于第一步給出的集合中某個元素的。③最后在關(guān)系中選出等于第二步中求出集合中某個元素的元組。取出和送入結(jié)果表列。將上述想法寫成語句就是:
(
(
=’信息系統(tǒng)’));按照由內(nèi)向外的原則求解此語句,首先處理最內(nèi)層查詢塊,即課程名‘信息系統(tǒng)’的課程號:
=‘信息系統(tǒng)’查詢結(jié)果為。從而可以把上面的語句簡化為:
(
(‘’));對此語句再處理內(nèi)層查詢,
(‘’)結(jié)果為和。從而可以把上面的語句進一步簡化為:
(‘’,‘’);這樣就可以求得最終結(jié)果。本查詢同樣可以用連接查詢實現(xiàn):
,,===’信息系統(tǒng)’;.
帶有比較運算符的子查詢帶有比較運算符的子查詢是指父查詢與子查詢之間用比較運算符進行連接。當(dāng)用戶能確切知道內(nèi)層查詢返回的是單值時,可以用>、<、=、>=、<=、!=或<>等比較運算符。例如,在例中,由于一個學(xué)生只可能在一個系學(xué)習(xí),也就是說內(nèi)查詢劉晨所在系的結(jié)果是一個唯一值,因此該查詢也可以用比較運算符來實現(xiàn),其語句如下;,,
(
=’劉晨’);需要注意的是,子查詢一定要跟在比較符之后。下列寫法是錯誤的:,,
(
=’劉晨’);例中信息系統(tǒng)的課程號是唯一的,但選修該課程的學(xué)生并不止一個,所以例也可以用運算符和謂詞共同完成:
(
(
=’信息系統(tǒng)’));.
帶有或謂詞的子查詢>大于子查詢結(jié)果中的某個值<小于子查詢結(jié)果中的某個值>=大于等于子查詢結(jié)果中的某個值<=小于等于子查詢結(jié)果中的某個值=等于子查詢結(jié)果中的某個值!=或<>不等于子查詢結(jié)果中的某個值>大于子查詢結(jié)果中的所有值<小于子查詢結(jié)果中的所有值>=大于等于子查詢結(jié)果中的所有值<=小于等于子查詢結(jié)果中的所有值=等于子查詢結(jié)果中的所有值(通常沒有實際意義)!=或<>不等于子查詢結(jié)果中的任何一個值例查詢其他系中比系某一學(xué)生年齡小的學(xué)生名單。,
<(
=’’)<>’‘;注意,<>‘’條件是父查詢塊中的條件,不是子查詢塊中的條件。用集函數(shù)實現(xiàn):,
<(()
=’’)<>‘’;例查詢其他系中比系所有學(xué)生年齡都小的學(xué)生名單。,
<(
=’’)<>’“;本查詢同樣也可以用集函數(shù)實現(xiàn)。即首先用子查詢找出‘’系的最小年齡(),然后在父查詢中查所有非‘’系且年齡小于歲的學(xué)生姓名及其年齡。語句如下:,
<(()
=’’)<>’’;事實上,用集函數(shù)實現(xiàn)子查詢通常比直接用或查詢效率要高。.
帶有謂詞的子查詢代表存在量詞。帶有謂詞的子查詢不退回任何實際數(shù)據(jù),它只產(chǎn)生邏輯真值“”或邏輯假值“”。例查詢所有選修了號課程的學(xué)生姓名。
(*
=.=‘’);例查詢所有未修號課程的學(xué)生姓名。
(*
=.=‘’);帶有謂詞的例可以用如下帶謂詞的子查詢替換:查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生。,,
(*
=’劉晨’);例查詢選修了全部課程的學(xué)生姓名。
(*
(*
==));例查詢至少選修了學(xué)生選修的全部課程的學(xué)生號碼。本題的查詢要求可以做如下解釋,查詢這樣的學(xué)生,凡是選修的課,他都選修了。換句話說,若有一個學(xué)號為的學(xué)生,對所有的課程,只要學(xué)號為的學(xué)生選修了課程,則也選修了;那么就將他的學(xué)號選出來。即不存在這樣的課程,學(xué)生選修了,而學(xué)生沒有選。用語言可表示如下:
(*
=’’
(*
==));
集合查詢集合操作主要包括并操作、交操作和差操作。例查詢計算機科學(xué)系的學(xué)生及年齡不大于歲的學(xué)生。*
=’’*
<=;本查詢實際上是求計算機科學(xué)系的所有學(xué)生與年齡不大于歲的學(xué)生的并集。例查詢選修了課程或者選修了課程的學(xué)生。本例實際上是查選修課程的學(xué)生集合與選修課程的學(xué)生集合的并集。
’’
’’;注:標準只有并,沒有交和差,但實際上,交或差都可以用其它方法實現(xiàn),具體實現(xiàn)根據(jù)不同的查詢而不同(用語義替換)。例查詢計算機科學(xué)系的學(xué)生與年齡不大于歲的學(xué)生的交集。本查詢換種說法就是,查詢計算機科學(xué)系中年齡不大于歲的學(xué)生。例查詢選修課程的學(xué)生集合與選修課程的學(xué)生集合的交集本例實際上是查詢既選修了課程又選修了課程的學(xué)生。例查詢計算機科學(xué)系的學(xué)生與年齡不大于歲的學(xué)生的差集。本查詢換種說法就是,查詢計算機科學(xué)系中年齡大于歲的學(xué)生。例查詢選修課程的學(xué)生集合與選修課程的學(xué)生集合的差集本例實際上是查詢選修了課程但沒有選修課程的學(xué)生。
小結(jié)問題:有關(guān)系模式()表示一個產(chǎn)品零部件情況及產(chǎn)品的組成(表示上一級的零件),如何用實現(xiàn)查詢:查詢某個產(chǎn)品(給定)的所有零部件?。
數(shù)據(jù)更新
插入數(shù)據(jù).
插入單個元組<表名>[(<屬性列>[,<屬性列>…)](<常量>[,<常量>…])例將一個新學(xué)生記錄(學(xué)號:;姓名:陳冬;性別:男;所在系:;年齡:歲)插入表中。
(’’,‘陳冬’,‘男’,‘’,);例插入一條選課記錄(’’,’’)(,)(“’,’’);.
插入子查詢結(jié)果<表名>[(<屬性列>[,<屬性列>…]]子查詢;
例對每一個系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫。對于這道題,首先要在數(shù)據(jù)庫中建立一個有兩個屬性列的新表,其中一列存放系名,一列存放相應(yīng)系的學(xué)生平均年齡。
((),);然后對數(shù)據(jù)庫的表按系分組求平均年齡,再把系名和平均年齡存入到新表中。(,),()
;
修改數(shù)據(jù)<表名><列名>=<表達式>[,<列名>=<表達式>…][<條件>];.
修改某一個元組的值例將學(xué)生的年齡改為歲
==‘’;.
修改多個元組的值例將所有學(xué)生的年齡增加歲。
=;.
帶子查詢的修改語句例將計算機科學(xué)系全體學(xué)生的成績置零。
=‘’=(
=);或
(
‘’);.
修改操作與數(shù)據(jù)庫的一致性第一條語句修改表:
=’’=’’;第二條語句修改表:
=‘’=’’;問題:表中要修改的是引用的外鍵,第一條執(zhí)行后,顯然已破壞該參照完整性。這樣的過程能正常執(zhí)行嗎?
刪除數(shù)據(jù)<表名>[<條件>];.
刪除某一個元組的值例刪除學(xué)號為的學(xué)生記錄。
=‘’;.
刪除多個元組的值例刪除所有的學(xué)生選課記錄。;.
帶子查詢的刪除語句例刪除計算機科學(xué)系所有學(xué)生的選課記錄。
‘’=(
=);
視圖
定義視圖.
建立視圖<視圖名>[(<列名>[,<列名>]…)]<子查詢>如果語句僅指定了視圖名,省略了組成視圖的各個屬性列名,則隱含該視圖由子查詢中子句目標列中的諸字段組成。但在下列三種情況下必須明確指定組成視圖的所有列名:
其中某個目標列不是單純的屬性名,而是集函數(shù)或列表達式。
多表連接時選出了幾個同名列作為視圖的字段。
需要在視圖中為某個列啟用新的更合適的名字。例建立信息系學(xué)生的視圖
=‘’;本例中省略了視圖的列名,隱含了該視圖由子查詢中子句中的個目標列名組成。執(zhí)行此語句就相當(dāng)于建立虛表:().
刪除視圖<視圖名>;例刪除視圖。;
查詢視圖對視圖的查詢轉(zhuǎn)換為對基表的查詢的過程稱為視圖的消解()。例在信息系學(xué)生的視圖中找出年齡小于歲的學(xué)生。,
<;執(zhí)行此查詢時,將其與視圖定義中的子查詢
=‘’;結(jié)合起來,轉(zhuǎn)換成對基表的查詢:,
=‘’<;
更新視圖更新視圖包括插入()、刪除()和修改()三類操作。例如,如定義的視圖是由‘學(xué)號’和‘平均成績’兩個屬性列組成的,其中平均成績一項是由表中多個元組分組后計算平均值得來的。如果想把視圖中學(xué)號為的學(xué)生的平均成績改成分,語句如下:
==’’;但這個對視圖的更新是無法轉(zhuǎn)換成對基表的更新的,因為系統(tǒng)無法修改各科成績,以便平均成績成為。所以視圖是不可更新的。由一個基表定義的視圖,只有含有基表的主鍵或候補鍵,并且視圖中沒有用表達式或函數(shù)定義的屬性,才允許更新;
由多表連接所定義的視圖不允許更新;
定義中用到子句或集函數(shù)的視圖不允許更新。
視圖的用途.
視圖能夠簡化用戶的操作.
視圖使用戶能以多種角度看待同一數(shù)據(jù).
視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性例如,將學(xué)生關(guān)系()分為()和()兩個關(guān)系,這時原表為表和表自然連接的結(jié)果。如果建立一個視圖:(,,,,)
,=;.
視圖能夠?qū)C密數(shù)據(jù)提供安全保護
嵌入式介紹嵌入式()嵌入式必須解決下列四個問題:()宿主語言編譯器不可能識別和接受語言,如何將嵌有的宿主語言編譯成可執(zhí)行碼,這是首先要解決的問題;()宿主語言和之間如何傳遞數(shù)據(jù)和信息;()數(shù)據(jù)庫的查詢結(jié)果一般是元組的集合,而宿主語言使用變量(單值),這些元組須逐個地賦值給程序中的變量,供宿主語言處理,其間存在一個轉(zhuǎn)換問題;()兩者的數(shù)據(jù)類型有時不完全對應(yīng)或等價,須解決必要的數(shù)據(jù)類型轉(zhuǎn)換問題。要進行何種數(shù)據(jù)類型轉(zhuǎn)換,與宿主語言和有關(guān)。如的接口:*、*等。第四章
數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu).
模式.
外模式.
內(nèi)模式圖4-1數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)
數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性兩層映象:外模式模式映象和模式內(nèi)模式映象
數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)從最終用戶角度來看,數(shù)據(jù)庫系統(tǒng)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu)等。
單用戶數(shù)據(jù)庫系統(tǒng)圖4-2單用戶數(shù)據(jù)庫系統(tǒng)
主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)圖4-3
主從式數(shù)據(jù)庫系統(tǒng)特點:數(shù)據(jù)集中、處理集中。
分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)特點:數(shù)據(jù)分布、處理分布。圖4-4分布式數(shù)據(jù)庫系統(tǒng)
/結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)特點:數(shù)據(jù)集中、處理分布。特點:數(shù)據(jù)分布、處理分布。
聯(lián)邦分布式數(shù)據(jù)庫系統(tǒng)每個結(jié)點所看到的數(shù)據(jù)模式僅僅限于該結(jié)點所用到的數(shù)據(jù)。它—般由兩部分組成:一是本結(jié)點的數(shù)據(jù)模式,二是供本結(jié)點共享的其他的點上有關(guān)的數(shù)據(jù)模式。結(jié)點間的數(shù)據(jù)共享由雙邊協(xié)商確定。特點:數(shù)據(jù)分布、處理分布。目前大型主流(如、等)商品化產(chǎn)品均為支持分布的結(jié)構(gòu)。
的功能和組成.
數(shù)據(jù)定義.
數(shù)據(jù)操縱.
數(shù)據(jù)庫運行管理.
數(shù)據(jù)組織、存儲和管理.
數(shù)據(jù)庫的建立和維護.
數(shù)據(jù)通信接口為了提供上述方面的功能,通常由以下部分組成。.
數(shù)據(jù)定義語言及其翻譯處理程序.
數(shù)據(jù)操縱語言及其編譯(或解釋)程序.
數(shù)據(jù)庫運行控制程序.
實用程序
數(shù)據(jù)庫管理系統(tǒng)的工作過程應(yīng)用程序(或用戶)從數(shù)據(jù)庫中讀取一個數(shù)據(jù)通常需要以下步驟:.
應(yīng)用程序向發(fā)出從數(shù)據(jù)庫中讀數(shù)據(jù)記錄的命令;.
對該命令進行語法檢查、語義檢查,并調(diào)用應(yīng)用程序?qū)?yīng)的外模式,檢查的存取權(quán)限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則向用戶返回錯誤信息;.
在決定執(zhí)行該命令后,調(diào)用模式,依據(jù)外模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;.
調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映象的定義,決定應(yīng)從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄;.
向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;.
操作系統(tǒng)執(zhí)行讀數(shù)據(jù)的有關(guān)操作;.
操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送至系統(tǒng)緩沖區(qū);.
依據(jù)外模式/模式映象的定義,導(dǎo)出應(yīng)用程序所要讀取的記錄格式;.
將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序的用戶工作區(qū);.
向應(yīng)用程序返回命令執(zhí)行情況的狀態(tài)信息。圖表示了一個關(guān)系處理上述過程的層次結(jié)構(gòu)。圖關(guān)系的層次結(jié)構(gòu)
....例將款項從帳號撥給帳號。 *事務(wù)開始* *讀帳號* *從帳號中減去款項*< *款不足*“款不足” *卷回事務(wù),即返回到該事務(wù)執(zhí)行之前的狀態(tài)* *為帳號加上款項*“撥款完成” *事務(wù)提交,持久化*出口:————
數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)方法.方案如、等桌面()。.方案.方案.方案
()數(shù)據(jù)字典()第五章
數(shù)據(jù)庫的存儲結(jié)構(gòu)
數(shù)據(jù)庫存儲介質(zhì)的特點
內(nèi)存容量低(一般只有幾百,最多一兩個),價格高,速度快,數(shù)據(jù)易丟失(掉電、當(dāng)機等)。一般做(或)和之間的數(shù)據(jù)緩沖區(qū)。實時內(nèi)存數(shù)據(jù)庫系統(tǒng)中使用內(nèi)存存放實時數(shù)據(jù)。
硬盤容量高(一般有幾十,多到一兩百),價格中,速度較快,數(shù)據(jù)不易丟失(除非物理性損壞)。一般做用來存放。實時內(nèi)存數(shù)據(jù)庫系統(tǒng)中使用硬盤存放歷史數(shù)據(jù)庫。
移動硬盤(接口)容量高(一般有幾十),價格中,速度較快,數(shù)據(jù)不易丟失(除非物理性損壞)。一般做用來做備份。
光盤容量低(一般片,但光盤可在線更換,海量),價格低,速度中,數(shù)據(jù)不易丟失(除非物理性損壞)。一般做用來做備份。
磁盤(軟盤)容量低(一般有幾,優(yōu)盤多到一兩百),價格中,速度較慢,數(shù)據(jù)不易丟失(除非物理性損壞)。一般數(shù)據(jù)庫不使用磁盤。
磁帶容量低(但可在線更換,海量),價格低,速度最慢,且要按順序存取,數(shù)據(jù)不易丟失(除非物理性損壞)。一般做用來做備份。按速度從高到低:內(nèi)存、硬盤、盤(移動硬盤和優(yōu)盤)、光盤、軟盤、磁帶。按在線容量從大到小:硬盤、移動硬盤、內(nèi)存、光盤、磁帶、優(yōu)盤、軟盤。物理塊:原因:()
減少的次數(shù);()
減少間隙的數(shù)目,提高硬盤空間的利用率。邏輯塊與物理塊(中定義邏輯塊大?。?/p>
緩沖塊和緩沖區(qū)(即中的)延遲寫()技術(shù)預(yù)取()技術(shù)(中由進程完成數(shù)據(jù)的讀寫)
記錄的存儲結(jié)構(gòu)
記錄的物理表示...
記錄在物理塊上的分配不跨塊組織()跨塊組織()
物理塊在磁盤上的分配.連續(xù)分配法().鏈接分配法().簇集分配法().索引分配法()
數(shù)據(jù)壓縮技術(shù).消零或空格符法()如:表示個空格,表示個零等。.串型代替法().索引法()
文件結(jié)構(gòu)和存取路徑
訪問文件的方式.查詢文件的全部或相當(dāng)多的記錄.查詢某一特定記錄.查詢某些記錄.范圍查詢.記錄的更新
數(shù)據(jù)庫對文件的要求
文件的基本類型.堆文件()方便(快):插入不方便(慢):查找、刪除.直接文件()方便(快):按散列鍵訪問不方便(慢):其它訪問方式.索引文件()方便(快):按索引鍵訪問不方便(慢):其它訪問方式,特別是更新時要進行索引維護。
索引項<索引鍵,地址>
預(yù)查找功能設(shè)要查詢年齡為歲或歲的四年級學(xué)生,如果學(xué)生文件在年齡和年級屬性上建有索引,則可查出年齡為歲的學(xué)生記錄的集合,年齡為歲的學(xué)生記錄的集合,四年級學(xué)生記錄的集合,于是,所需的學(xué)生記錄的集合應(yīng)為:(∪)∩
動態(tài)平衡多叉(分)樹有樹、*樹等,數(shù)據(jù)庫管理系統(tǒng)中常用樹實現(xiàn)索引。樹結(jié)構(gòu):樹動態(tài)平衡特性:()
每個結(jié)點最多有個鍵值;()
根結(jié)點至少有—個鍵值,其他結(jié)點至少有個鍵值;()
除葉結(jié)點(即順序集結(jié)點)無子女外,對于其他結(jié)點,若有個鍵值,則有個子女;()
所有葉結(jié)點都處于樹的同一級上,即樹始終保持平衡。值一般根據(jù)塊的大小確定,使得樹的結(jié)點最大不超過一個塊,即一個結(jié)點占一個塊()。優(yōu)點:所有記錄都具有相同的訪問次數(shù)(即樹的高度記錄本身訪問的次數(shù)),(若,樹的高度為,則至少可表示個記錄)。缺點:索引維護需要代價,當(dāng)記錄更新引起索引變化時,最差的情況可能從底層一直影響到根結(jié)點,即整個樹的變動。第六章
查詢處理和優(yōu)化
.代數(shù)優(yōu)化.物理優(yōu)化.規(guī)則優(yōu)化.代價估算優(yōu)化
代數(shù)優(yōu)化例
設(shè)有(供應(yīng)商),(零件),(供應(yīng)關(guān)系)三個關(guān)系,關(guān)系模式如下:(,,)(,,,)(,,,)設(shè)有查詢:
,,
‘’‘’>;代數(shù)優(yōu)化的大致過程:.以子句對應(yīng)投影操作,以子句對應(yīng)笛卡兒乘積,以子句對應(yīng)選擇操作,生成原始查詢樹。.應(yīng)用變換原則()、()、()、(),盡可能將選擇條件移向樹葉方向。.應(yīng)用連接、笛卡兒乘積的結(jié)合律,按照小關(guān)系先做的原則,重新安排連接(笛卡兒乘積)的次序。.如果笛卡兒乘積后還須按連接條件進行選擇操作,可將兩者組合成連接操作。.對每個葉結(jié)點添加必要的投影操作,以消除對查詢無用的屬性。
依賴于存取路徑的規(guī)則優(yōu)化
選擇操作的實現(xiàn)和優(yōu)化.相關(guān)因素
選擇條件
可用的存取路徑
選取的元組數(shù)在整個關(guān)系中所占的比例有關(guān).實現(xiàn)方法()
對于小關(guān)系,不必考慮其他存取路徑,直接用順序掃描。例如對于六個物理塊大小的關(guān)系,如果順序搜索,則平均的次數(shù)為,不值得采用其他存取路徑。()
如果無索引或散列等存取路徑可用,或估計中選的元組數(shù)在關(guān)系中占有較大的比例(例如大于%)且有關(guān)屬性上無族集索引,則用順序掃描。()
對于主鍵的等值條件,最多只有一個元組可以滿足此條件,應(yīng)優(yōu)先采用主鍵上的索引或散列。()
對于非主鍵的等值條件,要估計中選的元組數(shù)在關(guān)系中所占的比例。如果比例較小(例如小于%),可以用無序索引,否則只能用簇集索引或順序掃描。()
對于范圍條件,一般先通過索引找到范圍的邊界,再通過索引的順序集沿相應(yīng)方向按索,例如對于條件>,可先找到=的順序集結(jié)點,再沿順序集向右搜索。若中選的元組數(shù)在關(guān)系中所占比例較大,且無有關(guān)屬性的簇集索引,則宜采用順序掃描。例如對于條件>,因為大學(xué)生絕大部分是大于歲的。()
對于用連接的合取選擇條件。若有相應(yīng)的多屬性索引,則優(yōu)先采用多屬性索引。否則,可檢查諸合取條件中有無多個可用二次索引的,若有,則用預(yù)查找法處理。即通過二次索引找出滿足各合取條件的集合,再求這些集合的交集。然后取出交集中所對應(yīng)的元組.并在取這些元組的同時,用合取條件中的其余條件檢查。凡能滿足所有其余條件的元組,即為所選擇的元組。如果上述途徑都不可行,但合取條件中有個別條件具有規(guī)則()、()、()中所述的存取路徑,則可用此存取路徑選擇滿足此條件的元組,再將這些元組用合取條件中的其他條件篩選。若在諸合取的條件中,沒有一個具有合適的存取路徑.那只有用順序掃描。()
對于用連接的析取選擇條件,尚無好的優(yōu)化方法,只能按其中各個條件分別選出一個元組集,再求這些元組集的并。眾所周知,并是開銷大的操作,而且在連接的諸條件中,只要有一個條件無合適的存取路徑,就不得不采用順序掃描來處理這種查詢。因此,在查詢語句中,應(yīng)盡量避免采用析取選擇條件。()
有些選擇操作只要訪問索引就可得到結(jié)果,例如查詢索引屬性的最大值、最小值、平均值等。在此情況下,應(yīng)優(yōu)先利用索引、避免訪問數(shù)據(jù)。
連接操作的實現(xiàn)和優(yōu)化.
嵌套循環(huán)()法
外關(guān)系()內(nèi)關(guān)系().
利用索引或散列尋找匹配元組法.
排序歸并()法下面是選用連接方法的啟發(fā)式規(guī)則。()
如果兩個關(guān)系都已按連接屬性排序,則優(yōu)先用排序歸并法。如果兩個關(guān)系中已有一個關(guān)系按連接屬性排序,另一個關(guān)系很小,也可考慮對此未排序的關(guān)系按連接屬性排序,再用排序歸并法連接。()
如果兩個關(guān)系中有一個關(guān)系在連接屬性上有索引(特別是簇集索引)或散列,則可令另一關(guān)系為外關(guān)系,順序掃描,并利用內(nèi)關(guān)系上的索引或散列尋找其匹配元組,以代替多遍掃描。()
如果應(yīng)用上述兩規(guī)則的條件都不具備,且兩個關(guān)系都比較小,可以應(yīng)用嵌套循環(huán)法。()
如果()、()、()規(guī)則都不適用,可用散列連接法。
投影操作的實現(xiàn)
集合操作的實現(xiàn)
組合操作第七章
事務(wù)管理恢復(fù)事務(wù)管理并發(fā)控制
恢復(fù)引論.
單純以后備復(fù)本為基礎(chǔ)的恢復(fù)技術(shù).
以后備復(fù)本和運行記錄(或)為基礎(chǔ)的恢復(fù)技術(shù)運行記錄包括:()
前象()——()
后象()——()
事務(wù)狀態(tài)————.
基于多復(fù)本的恢復(fù)技術(shù)
多服務(wù)器:.雙機熱備份.雙機.
磁盤陣列.
等
運行記錄的結(jié)構(gòu).
().
().
前象文件.
后象文件措施:.
不保留已提交事務(wù)的前象.
有選擇地保留后象.
合并后象
更新事務(wù)的執(zhí)行與恢復(fù)更新事務(wù)在執(zhí)行時應(yīng)遵守下列兩條規(guī)則:.提交規(guī)則().先記后寫規(guī)則()方案:.
后象在事務(wù)提交前完全寫入數(shù)據(jù)庫其步驟如下:()
→()
→ *先記后寫規(guī)則*()
→ *在提交前,后象完全寫入,滿足提交規(guī)則*()
→()
從中刪除.
后象在事務(wù)提交后才寫入數(shù)據(jù)庫其步驟如下:()
→()
→ *提交規(guī)則*()
→()
→()
從中刪除.后象在事務(wù)提交前后寫入數(shù)據(jù)庫其步驟如下:()
→()
、→ *提交規(guī)則及先記后寫規(guī)則*()
→(部分寫入)()
→()
→(繼續(xù)完成)()
從中刪除
易地更新恢復(fù)技術(shù)設(shè)有數(shù)據(jù)庫為:{,……,……}()
取到內(nèi)存,并讀取[];()
按[]找到,并取到內(nèi)存中(為所用的的內(nèi)存版本表示為,見圖);()
按[]取的第頁至內(nèi)存,并在內(nèi)存中更新其內(nèi)容,設(shè)更新后的為’;()
寫入’至數(shù)據(jù)庫的一個新地方,設(shè)其在磁盤上的地址為(’);()
在內(nèi)存中,以(’)加取代[],因而在內(nèi)存中形成的新版本;()
寫入至數(shù)據(jù)庫的一個新地方,設(shè)其在磁盤上的地址為();()
再取至內(nèi)存;()
以()取代[];()
在原地址寫回,事務(wù)提交。易地更新恢復(fù)技術(shù)的限制和缺點
消息的處理消息管理()
失效的類型及恢復(fù)的對策.
事務(wù)失效措施:
丟棄該事務(wù)的消息隊列;
如果需要,進行操作;
從刪除該事務(wù)的,釋放該事務(wù)所占的資源。.
系統(tǒng)失效措施:
重新啟動操作系統(tǒng)和;
恢復(fù)數(shù)據(jù)庫至一致狀態(tài)(對末提交的事務(wù)進行操作,對已提交的事務(wù)進行操作)。檢查點()取的過程如下:
暫停事務(wù)的執(zhí)行
寫入上一個以后所提交的事務(wù)留在內(nèi)存中的后象
在運行記錄的提交事務(wù)表中記下檢查點
恢復(fù)事務(wù)的執(zhí)行。.
介質(zhì)失效措施:
修復(fù)系統(tǒng),必要時更換磁盤;
如果系統(tǒng)(操作系統(tǒng)和)崩潰,重新啟動系統(tǒng);
加載最近后備復(fù)本;
用運行記錄中的后象,重做取最近后備復(fù)本以后提交的所有事務(wù)。
并發(fā)控制引論
數(shù)據(jù)庫系統(tǒng)中的并發(fā)串行訪問交叉并發(fā)并發(fā)訪問同時并發(fā)
并發(fā)的目的.改善系統(tǒng)的資源利用率.改善短事務(wù)的響應(yīng)時間
并發(fā)引起的問題.丟失更新()寫—寫沖突().讀臟數(shù)據(jù)()讀—寫沖突().讀值不可復(fù)現(xiàn)()讀—寫沖突()
并發(fā)控制的正確性準則操作順序安排的原則是:既要交叉執(zhí)行,以充分利用系統(tǒng)的資源;又要避免訪問沖突?!?)…()…()…目標等價()沖突等價()
沖突的操作:()和()以及()和()≠不沖突的操作:()和()以及()和()≠可串行化()()()()()→()()()()→()()()()’
:在一般中都是以可串行化作為并發(fā)控制的正確性準則(沖突可串行化)。
加鎖協(xié)議
鎖鎖:既用于寫操作,也用于讀操作。連鎖卷回()
兩段封鎖協(xié)議定義在一個事務(wù)中,如果加鎖動作都在所有釋放鎖動作之前,則稱此事務(wù)為兩段事務(wù)()。上述的加鎖限制稱為兩段封鎖協(xié)議(,簡稱協(xié)議)。定義一個事務(wù)如果遵守先加鎖,后操作的原則,則此事務(wù)稱為合式()事務(wù)。定理如果所有事務(wù)都是合式、兩段事務(wù),則它們的任何調(diào)度都是可串行化的。嚴格的協(xié)議()
(,)鎖鎖()用于讀訪問鎖()用于寫訪問活鎖():
(,,)鎖活鎖():
死鎖的檢測、處理和防止死鎖():對付死鎖無非兩種辦法:一是檢測死鎖,發(fā)現(xiàn)死鎖后處理死鎖;二是防止死鎖。
死鎖的檢測和處理
.
超時法
.
等待圖法()()其中,是結(jié)點的集合,={是數(shù)據(jù)庫系統(tǒng)中當(dāng)前運行的事務(wù),=,…,}是邊的集合,={()等待≠}對死鎖一般作如下處理:
在循環(huán)等待的事務(wù)中,選一個事務(wù)作為犧牲者(),給其他事務(wù)“讓路”;
卷回犧牲的事務(wù),釋放其獲得的鎖及其他資源;
將釋放的鎖讓給等待它的事務(wù)。被犧牲事務(wù)的選擇原則:
選擇最遲交付的事務(wù)作為犧牲者
選擇獲得鎖最少的事務(wù)作為犧牲者
選擇卷回代價最小的事務(wù)作為犧牲者
死鎖的防止時間標記(簡稱時標):隨時間增長的正整數(shù)。系統(tǒng)啟動時,,每當(dāng)一個新事務(wù)開始運行時,,并把此時的賦予該事務(wù),作為該事務(wù)的時標。設(shè)有兩個事務(wù)和,如()<(),則表示早于,也就是比“年老”,或者說比“年輕”。.
等待—死亡()策略設(shè)持有某數(shù)據(jù)對象的鎖,當(dāng)申請同一數(shù)據(jù)對象的鎖而發(fā)生沖突時,則按如下的規(guī)則處理:()<();{;**();}.
擊傷—等待()策略()>();{;**();}
多粒度封鎖
基于時間標記的并發(fā)控制技術(shù)
基本的時間標記協(xié)議事務(wù)的時間標記:()數(shù)據(jù)的時間標記:
讀時間標記
寫時間標記
.
事務(wù)讀數(shù)據(jù)
();()≥*符合時間標記協(xié)議,()即為讀取值*((),);*已有比年輕的事務(wù)寫入,違反時間標記協(xié)議,應(yīng)卷回*();.
事務(wù)寫數(shù)據(jù)()≥()≥*符合時間標記協(xié)議*{();();}*違反時間標記協(xié)議,應(yīng)卷回*();
多版本并發(fā)控制技術(shù)
樂觀并發(fā)控制技術(shù)樂觀法()悲觀法().
讀階段().
檢驗階段().
寫階段()檢驗,設(shè)是已提交或正在檢驗的任一事務(wù),如果對所有,滿足下列三個條件之一,則檢驗通過,可進人寫階段;否則,須卷回并重新啟動。()
在進入讀階段之前就已完成寫階段()的讀數(shù)據(jù)集與的寫數(shù)據(jù)集的交集為空集,而且在完成寫階段之后才進人寫階段()
的讀數(shù)據(jù)集和寫數(shù)據(jù)集都與的寫數(shù)據(jù)集不相交書后習(xí)題:.如果把策略修改為:如果()>()則等待否則,卷回,井以原來的()重新啟動。請回答以下問題:()此策略能否避免死鎖?()此策略有何主要問題?()如何改進此策略,消除其存在的問題?()請將改進后的策略與標準的和策略比較。第八章
數(shù)據(jù)庫的安全和完整性約束數(shù)據(jù)庫的破壞一般來自下列四個方面:()系統(tǒng)故障;()并發(fā)所引起的數(shù)據(jù)不一致;()人為的破壞,例如數(shù)據(jù)被不該知道的人訪問,甚至被篡改或破壞;()輸入或更新數(shù)據(jù)庫的數(shù)據(jù)有誤,更新事務(wù)未遵守保持數(shù)據(jù)庫一致性的原則。
數(shù)據(jù)庫的安全安全的操作系統(tǒng)是數(shù)據(jù)庫安全的前提。
視圖定義和查詢修改
訪問控制數(shù)據(jù)庫用戶按其訪問權(quán)力的大小,一般可分為以下三類。.
一般數(shù)據(jù)庫用戶在中,這種用戶稱為“具有特權(quán)的用戶”。這種用戶可以與數(shù)據(jù)庫聯(lián)系,并具有下列特權(quán):()按照授權(quán)可以查詢或更新數(shù)據(jù)庫中的數(shù)據(jù);()可以創(chuàng)建視圖或定義數(shù)據(jù)的別名。.
具有支配部分數(shù)據(jù)庫資源特權(quán)的數(shù)據(jù)庫用戶在中,這種用戶稱為“具有特權(quán)的用戶”,除具有一般數(shù)據(jù)庫用戶所擁有的所有特權(quán)外,還有下列特權(quán):()可以創(chuàng)建表、索引和簇集;()可以授予或收回其他數(shù)據(jù)庫用戶對其所創(chuàng)建的數(shù)據(jù)對象的訪問權(quán);()有權(quán)對其所創(chuàng)建的數(shù)據(jù)對象跟蹤審查()(有關(guān)跟蹤審查的內(nèi)容將在稍后介紹)。.
具有特權(quán)的數(shù)據(jù)庫用戶擁有支配整個數(shù)據(jù)庫資源的特權(quán),這種用戶除具有上述兩種用戶所擁有的一切特權(quán)外,還有下列特權(quán):()有權(quán)訪問數(shù)據(jù)庫中的任何數(shù)據(jù);()不但可以授予或收回數(shù)據(jù)庫用戶對數(shù)據(jù)對象的訪問權(quán),還可以批準或收回數(shù)據(jù)庫用戶;()可以為定義別名,是所有數(shù)據(jù)庫用戶的總稱;()有權(quán)對數(shù)據(jù)庫進行調(diào)整、重組或重構(gòu);()有權(quán)控制整個數(shù)據(jù)庫的跟蹤審查。
.
.
〈特權(quán)類型〉[{,〈特權(quán)類型〉}]〈用戶標識符〉[〈口令〉];〈特權(quán)類型〉::=例@;例;;
〈特權(quán)類型〉[{,〈特權(quán)類型〉}]〈用戶標識符〉;〈特權(quán)〉〈表名〉〈受權(quán)者〉[{,〈受權(quán)者〉}][];〈特權(quán)〉::=〈操作〉[{,〈操作〉}]〈操作〉::=[(〈準許修改的屬性表〉)]〈準許修改的屬性表〉::=〈屬性名〉[{,〈屬性名〉}]〈受權(quán)者〉::=〈用戶標識符〉
〈特權(quán)〉〈表名〉〈受權(quán)者〉[{,〈受權(quán)者〉}];設(shè)有用戶、、和,有一張表,下面是一連串授權(quán)過程:授權(quán)給::;授權(quán)給::;授權(quán)給::;收回授給的特權(quán);:;此語句的作用不僅收回授予的特權(quán)(即),而且還收回授予、授予的這種特權(quán)。
,(,),;
數(shù)據(jù)加密
跟蹤審查,,,;即對表的每次成功的選擇、增、刪、改操作都作跟蹤審查記錄。;
統(tǒng)計數(shù)據(jù)庫的安全
完整性約束
完整性約束的類型固有約束靜態(tài)約束隱含約束顯式約束動態(tài)約束
完整性約束的說明
用過程說明約束
用斷言說明約束余額約束儲蓄賬:余額≥;
用觸發(fā)子表示約束<條件><動作>;
余額約束儲蓄賬:余額<卷回事務(wù),通知帳戶;
子句
完整性約束的實施第九章
分布式數(shù)據(jù)庫管理系統(tǒng)
分布式數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)(,簡稱)有以下三個特點:()
數(shù)據(jù)是分布的,因此它不同于通過計算機網(wǎng)共享的集中式數(shù)據(jù)庫系統(tǒng);()
分布的數(shù)據(jù)是相互有關(guān)的,一般是一個單位或多個有關(guān)單位的數(shù)據(jù),因此它不同于由網(wǎng)絡(luò)互連的多個獨立數(shù)據(jù)庫系統(tǒng);()
數(shù)據(jù)由統(tǒng)一管理,因此它不同于一般的分布式文件系統(tǒng)。分布式數(shù)據(jù)庫有下列四個優(yōu)點:()
有利于改善性能()
可擴充性好()
可用性好()
自治性好的缺點:()
異構(gòu)()
分布設(shè)計
數(shù)據(jù)分布策略
數(shù)據(jù)分布的目的.
提高訪問的局部性().
分擔(dān)負荷目的不同,數(shù)據(jù)庫服務(wù)器的位置、客戶機與其連接的方式均不同。數(shù)據(jù)分布的方式.
劃分式().
全重復(fù)式().
部分重復(fù)式()
關(guān)系的分割分布單位:.
關(guān)系.
裂片()分割方式:
水平分割
垂直分割
混合分割分割準則:)
)
)
數(shù)據(jù)分布帶來的問題.保持多復(fù)本—致性.保持分布一致性.全局查詢的處理.分布事務(wù)的管理
分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
數(shù)據(jù)目錄的分布及管理
數(shù)據(jù)目錄分布的策略.
集中式().
擴展的集中式(()).
全重復(fù)式().
部分重復(fù)式().
用緩存提高目錄讀速度()
分布式數(shù)據(jù)庫系統(tǒng)中的命名.
全局名空間().
層次名空間
查詢分解和優(yōu)化
分布式數(shù)據(jù)庫系統(tǒng)中的恢復(fù)技術(shù)
兩步提交協(xié)議
三步提交協(xié)議
分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)控制
分步式數(shù)據(jù)庫系統(tǒng)中的兩步封鎖.寫全鎖()寫全鎖的加鎖協(xié)議如下:
讀:在任一復(fù)本上加鎖
寫:在所有復(fù)本上加鎖
保持所有鎖到全局事務(wù)結(jié)束().多數(shù)封鎖()加鎖協(xié)議如下:
讀:對過半數(shù)的復(fù)本上加鎖
寫:對過半數(shù)的復(fù)本上加鎖
保持所有鎖到全局事務(wù)結(jié)束().中取封鎖()加鎖協(xié)議如下:
寫:對個復(fù)本中的個復(fù)本上加鎖>
讀:對個復(fù)本中的個復(fù)本上加鎖
保持所有鎖到全局事務(wù)結(jié)束().主結(jié)點法
全局死鎖的檢測第十章
數(shù)據(jù)依賴和關(guān)系模式的規(guī)范化關(guān)系模式設(shè)計中的一些語義問題():→(){{}→,→,→}計算機系要通知教師準備給學(xué)生補考,可以“查詢計算機系所開課程的不及格學(xué)生的學(xué)號、不及格課程號以及任課教師的姓名”:,,
‘’‘’;問題:.?dāng)?shù)據(jù)冗余太大.更新異常():
:分解——關(guān)系模式規(guī)范化:(,,)(,)(,)
,,,,’’’’;函數(shù)依賴{,…}
(,…),若[][],則[][],→:若,則→→若→,→則?()(,…),且≠,如→,且‘,使得’→,則稱,否則,。{,}{,}
(,…),,,且≠≠,若→,→,→,則稱。邏輯蘊涵是的的集合,→是的一個,若一關(guān)系模式滿足,則必然滿足→,稱邏輯蘊涵→:╞→
函數(shù)依賴集合所邏輯蘊涵的函數(shù)依賴的全體稱為的閉包,記為,即{→╞→}’::若,則→。:若→,且,則→。:若→,→,則→。合并規(guī)則:{→,→}╞→引理公理是正確的(),即如果成立,則由根據(jù)公理所推導(dǎo)的函數(shù)依賴總是成立的。引理下列三條推理規(guī)則是正確的:()
:{→,→}╞→()
:{→,→}╞→()
:如果→且,則→成立。結(jié)論:由分解規(guī)則,若→{,…},則→(…);由合并規(guī)則,若→(…),則→{,…},故→{,…}→(…)
設(shè),則屬性集關(guān)于集的閉包{∈,且→可由’導(dǎo)出}引理→可由’導(dǎo)出。定理’是正確的、完備的()。{∈,且→∈}或{∈,且╞→}{→→可由’從導(dǎo)出}算法求::方法:按下列方法依次求(),(),……(),……()
初始化:(),;()
求{()()(→∈∧()∧∈)}()
()∪()()
()()?()
不等,,返回()。()
相等,()例設(shè)={→,→,→,→,→,→,→,→},計算()。解:()找左部為的子集的函數(shù)依賴,只有→()∪找左部為的子集的函數(shù)依賴,有→,→()()∪找左部為的子集的函數(shù)依賴,有→,→,→,→,→,→()()∪()算法改進:.若(),則迭代結(jié)束,.在每次迭代中,用過的可不必再選出來,因其對結(jié)果已不再增加屬性。、,若,則稱等價。引理,引理任一函數(shù)依賴集總可以為一右部恒為單屬性的函數(shù)依賴集所覆蓋。函數(shù)依賴集如果滿足下列條件,則稱為極小函數(shù)依賴集或最小覆蓋。()中每個函數(shù)依賴的右部為單屬性。()中不存在這樣的函數(shù)依賴→,使得(→)與等價。()在中也不存在這樣的→,使得(→)∪(→)與等價,式中。定理任一函數(shù)依賴集都與一最小函數(shù)依賴集’等價?!Q為的最小覆蓋。多值依賴→→→→設(shè)、是關(guān)系模式的屬性集,如果對于的任何值,都有如下性質(zhì),則稱滿足→→。如果中存在兩個元組、,使得[]=[]則中必然存在兩個元組、,使得[][][]=[][][]且[]=[][][]且[]=[]連接依賴例設(shè)有一關(guān)系(,,),表示供應(yīng)商號,表示零件號,表示工程號。表示供應(yīng)關(guān)系,即某供應(yīng)商供應(yīng)某零件給某工程。如果此關(guān)系的語義滿足下列條件:=[,][][,]關(guān)系模式的分解及其問題設(shè)有一關(guān)系模式(),若用一關(guān)系模式的集合{(),(),…()}來取代,其中,=,則稱此關(guān)系模式的集合為的一個分解,以ρ={,,…}表示。在屬性集()上的投影定義為關(guān)系模式的分解主要有兩種準則:()
只滿足無損分解要求。()
既滿足無損分解要求,又滿足保持依賴要求。關(guān)系(),={→,→},則分解ρ{(),()}算法檢驗一個分解是否無損分解。:關(guān)系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省廣州市白云區(qū)2023-2024學(xué)年五年級下學(xué)期語文期末試卷(含答案)
- 2025年度品牌形象設(shè)計委托合同協(xié)議書范本
- 2025年智能設(shè)備采購合同范本
- 2025年內(nèi)蒙古勞動合同書模板
- 2025電子產(chǎn)品租賃合同模板
- 2025租賃合同違約金條款
- 2025授權(quán)代理的合同范本協(xié)議
- 2025年簽訂服務(wù)合同的關(guān)鍵注意事項
- 2025汽車購買合同協(xié)議書
- 2025碩士勞動合同爭議調(diào)解
- 廣州市黃埔區(qū)教育局招聘事業(yè)編制教職員考試真題2024
- 國際經(jīng)濟學(xué)(下冊國際金融)克魯格曼-中文答案
- 2025年寧夏銀川市唐徠中學(xué)南校區(qū)中考一模英語試題(原卷版+解析版)
- 鄉(xiāng)村民宿開發(fā)管理運營手冊
- 殯葬服務(wù)筆試題庫及答案
- 2025年光大銀行校園招聘筆試參考題庫(帶答案)
- 中醫(yī)康復(fù)理療師職業(yè)指導(dǎo)試題及答案
- 全過程工程咨詢投標方案(技術(shù)方案)
- 研究生教育高質(zhì)量發(fā)展新動能推動方案
- 寧波十校2025屆高三3月聯(lián)考語文試卷(含答案解析)
- 在線網(wǎng)課學(xué)習(xí)課堂《人工智能(北理 )》單元測試考核答案
評論
0/150
提交評論