軟件設(shè)計(jì)師教程之?dāng)?shù)據(jù)庫技術(shù)基礎(chǔ)_第1頁
軟件設(shè)計(jì)師教程之?dāng)?shù)據(jù)庫技術(shù)基礎(chǔ)_第2頁
軟件設(shè)計(jì)師教程之?dāng)?shù)據(jù)庫技術(shù)基礎(chǔ)_第3頁
軟件設(shè)計(jì)師教程之?dāng)?shù)據(jù)庫技術(shù)基礎(chǔ)_第4頁
軟件設(shè)計(jì)師教程之?dāng)?shù)據(jù)庫技術(shù)基礎(chǔ)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件設(shè)計(jì)師教程宋安平上海大學(xué)計(jì)算機(jī)學(xué)院Apsong@021-563316722004年10月24日GGG1數(shù)據(jù)庫技術(shù)基礎(chǔ)基本概念數(shù)據(jù)模型關(guān)系代數(shù)關(guān)系數(shù)據(jù)庫SQL語言關(guān)系數(shù)據(jù)庫規(guī)范化數(shù)據(jù)庫的控制功能

2第一節(jié)基本概念

數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)管理技術(shù)的發(fā)展DBMS的功能DBMS的特征數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)2023/1/43一、數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)1、數(shù)據(jù)庫管理系統(tǒng)(DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶和應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。2、數(shù)據(jù)庫(DB):是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。4二、數(shù)據(jù)管理技術(shù)的發(fā)展發(fā)展經(jīng)過三個(gè)階段:人工管理階段文件系統(tǒng)階段三個(gè)缺陷:數(shù)據(jù)的冗余性、數(shù)據(jù)不一致性、數(shù)據(jù)聯(lián)系弱。數(shù)據(jù)庫階段采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu)、有較高的數(shù)據(jù)獨(dú)立性。

5三、DBMS的功能數(shù)據(jù)定義數(shù)據(jù)庫操作功能(檢索和更新)數(shù)據(jù)庫運(yùn)行管理(數(shù)據(jù)庫的恢復(fù)、并發(fā)性、完整性、安全性)數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)庫的建立和維護(hù)其他功能6四、DBMS的特征特征數(shù)據(jù)結(jié)構(gòu)化且統(tǒng)一管理較高的數(shù)據(jù)獨(dú)立性數(shù)據(jù)控制功能

RDBMSOODBSORDBS7五、數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)1、外模式:又稱子模式、用戶模式,是用戶和數(shù)據(jù)庫系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。概念模式:又稱模式,是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。內(nèi)模式:又稱存儲(chǔ)模式,是數(shù)據(jù)庫在物理存儲(chǔ)方面的描述。2、兩級(jí)映象模式/內(nèi)模式映象,外模式/模式映象。3、兩級(jí)數(shù)據(jù)獨(dú)立性物理數(shù)據(jù)獨(dú)立性,邏輯數(shù)據(jù)獨(dú)立性。8第二節(jié)數(shù)據(jù)模型

數(shù)據(jù)模型的基本概念數(shù)據(jù)模型的三要素問題實(shí)體聯(lián)系模型(ER圖)層次模型網(wǎng)狀模型關(guān)系模型91、數(shù)據(jù)描述的三個(gè)領(lǐng)域現(xiàn)實(shí)世界:存在與人們頭腦以外客觀世界。信息世界:現(xiàn)實(shí)世界在人們頭腦中的反映。機(jī)器世界:信息世界的信息在機(jī)器世界中以數(shù)據(jù)形式存儲(chǔ)。2、信息世界和機(jī)器世界術(shù)語的關(guān)系:

信息世界 機(jī)器世界 實(shí)體 記錄 屬性 字段 實(shí)體集 文件 實(shí)體標(biāo)識(shí)符 關(guān)鍵碼一、數(shù)據(jù)模型的基本概念10二、數(shù)據(jù)據(jù)模型的的三要素素問題數(shù)據(jù)庫的的邏輯結(jié)結(jié)構(gòu),與與硬件、、DBMS有關(guān),有有三部分分構(gòu)成::數(shù)據(jù)結(jié)構(gòu)構(gòu)數(shù)據(jù)操作作數(shù)據(jù)完整整性四種數(shù)據(jù)據(jù)模型::層次模型型網(wǎng)狀模型型關(guān)系模型型面向?qū)ο笙竽P?1三、實(shí)體體聯(lián)系模模型(ER圖)實(shí)體的聯(lián)聯(lián)系有兩兩類一類是實(shí)實(shí)體內(nèi)部部(屬性性之間))的聯(lián)系系(第5節(jié)討論))一類是實(shí)實(shí)體集內(nèi)內(nèi)部(實(shí)實(shí)體和實(shí)實(shí)體之間間)的聯(lián)聯(lián)系(本本節(jié)討論論)實(shí)體間的的聯(lián)系有有三種::兩個(gè)實(shí)體體集中各各實(shí)體之之間的聯(lián)聯(lián)系:一一對(duì)一((1:1)、一對(duì)多((1:N)、多對(duì)對(duì)多((M:N)三個(gè)實(shí)體體集中各各實(shí)體之之間的聯(lián)聯(lián)系。同一實(shí)體體集內(nèi)部部各實(shí)體體之間的的聯(lián)系。。12三、實(shí)體體聯(lián)系模模型(續(xù)續(xù))屬性:簡(jiǎn)單屬性性和復(fù)合合屬性單值屬性性和多值值屬性NULL屬性派生屬性性E-R方法擴(kuò)充的E-R模型弱實(shí)體超類和子類13四、層次模型型創(chuàng)始:1968年美國IBM公司的IMS系統(tǒng)數(shù)據(jù)結(jié)構(gòu):樹樹結(jié)構(gòu)特點(diǎn):數(shù)據(jù)聯(lián)聯(lián)系通過指針針實(shí)現(xiàn)缺點(diǎn):不能直直接表示多對(duì)對(duì)多14五、網(wǎng)狀模型型創(chuàng)始:1969年CODASYL的DBTG報(bào)告數(shù)據(jù)結(jié)構(gòu):有有向圖結(jié)構(gòu)特點(diǎn):數(shù)據(jù)聯(lián)聯(lián)系通過指針針實(shí)現(xiàn)缺點(diǎn):結(jié)構(gòu)復(fù)復(fù)雜15六、關(guān)系模型型創(chuàng)始:1970年E.F.Codd提出關(guān)系模型型數(shù)據(jù)結(jié)構(gòu):二二維表特點(diǎn):表間公公共屬性缺點(diǎn):效率低低16第三節(jié)關(guān)系代數(shù)關(guān)系模型的基基本概念關(guān)系代數(shù)擴(kuò)充的關(guān)系代代數(shù)17一、關(guān)系模型型的基本概念念屬性和域?qū)傩裕好枋鰧?shí)實(shí)體的特征域:屬性的取取值范圍笛卡爾積和和關(guān)系18一、關(guān)系模模型的基本本概念(續(xù)續(xù))術(shù)語超鍵:在關(guān)關(guān)系中能惟惟一標(biāo)識(shí)元組的屬性性集稱為關(guān)系模型的的超鍵。候選鍵:不不含有多余余屬性的超鍵稱為候選鍵。主鍵:用戶戶選作元組標(biāo)識(shí)的一個(gè)個(gè)候選鍵稱為主鍵。主屬性:包包含在任何何候選鍵中中的屬性。。外鍵:該屬性不是本本關(guān)系的主鍵,正好好是另外一一個(gè)關(guān)系的的主鍵,則則該屬性稱為本本關(guān)系的外鍵。全碼:所有有屬性組是是這個(gè)關(guān)系系模式的候候選碼。19一、關(guān)系模模型的基本本概念(續(xù)續(xù))關(guān)系的3種類型基本本關(guān)關(guān)系系查詢?cè)儽肀硪晥D圖關(guān)系系數(shù)數(shù)據(jù)據(jù)庫庫模模式式完整整性性約約束束實(shí)體體完完整整性性參照照完完整整性性用戶戶定定義義完完整整性性20二、、關(guān)關(guān)系系代代數(shù)數(shù)關(guān)系系運(yùn)運(yùn)算算理理論論分分為為關(guān)關(guān)系系代代數(shù)數(shù)和和關(guān)關(guān)系系演演算算兩兩種種關(guān)系系代代數(shù)數(shù)是是由由一一組組以以關(guān)關(guān)系系作作為為運(yùn)運(yùn)算算對(duì)對(duì)象象的的特特定定的的運(yùn)運(yùn)算算符符組組成成常用用的的運(yùn)運(yùn)算算為為九九種種::并并、、交交、、差差、、笛笛卡卡爾爾積積、、聯(lián)聯(lián)接接、、自自然然聯(lián)聯(lián)接接、、投投影影、、選選擇擇、、除除運(yùn)運(yùn)算算等等,,其其中中五五種種為為基基本本運(yùn)運(yùn)算算::并并、、交交、、笛笛卡卡爾爾積積、、投投影影、、選選擇擇運(yùn)運(yùn)算算。。21二、、關(guān)關(guān)系系代代數(shù)數(shù)((續(xù)續(xù)1)關(guān)系代代數(shù)的的五種種基本本運(yùn)算算設(shè)有兩兩個(gè)關(guān)關(guān)系R和S具有相相同的的關(guān)系系模式式。并(∪∪)R∪S≡{t∣∣t∈∈R∨∨t∈∈S},t為元組組變量量,R和S結(jié)構(gòu)相相同差(-)R-S≡{t∣t∈R∧t?S},t為元組變量,R和S結(jié)構(gòu)相同。笛卡爾積(Χ)RΧS≡{t∣t=〈tr,ts〉∧tr∈R∧ts∈S}投影(Π)Πi1,…,im(R)≡{t∣t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}選擇(σ)σF(R)≡{t∣t∈R∧F(t)∈true},F是由邏輯運(yùn)算符和比較運(yùn)算符連接運(yùn)算對(duì)象構(gòu)成的表達(dá)式。22二、關(guān)關(guān)系代代數(shù)((續(xù)續(xù)2)關(guān)系代代數(shù)的的四種種組合合運(yùn)算算交R∩S≡R-(R-S)或R∩S≡S-(S-R)聯(lián)接R?S≡σσAθB(RΧS)其中中A是R的AθB屬性,,B是S的屬性性。自然聯(lián)聯(lián)接R?S≡ΠΠ去掉S中公共共屬性性(σ公共屬屬性上上值相相等(RΧS))除R÷S可以視視為笛笛卡爾爾積的的逆運(yùn)運(yùn)算。。23三、擴(kuò)擴(kuò)充的的關(guān)系系代數(shù)數(shù)廣義投投影外聯(lián)接接左外聯(lián)聯(lián)接右外聯(lián)聯(lián)接全外聯(lián)接接外部并并24第四節(jié)節(jié)關(guān)系數(shù)數(shù)據(jù)庫庫SQL語言SQL數(shù)據(jù)庫庫體系系結(jié)構(gòu)構(gòu)SQL的基本本組成成SQL數(shù)據(jù)定定義SQL數(shù)據(jù)查查詢SQL數(shù)據(jù)更更新嵌入式式SQL25一、SQL數(shù)據(jù)庫庫體系系結(jié)構(gòu)構(gòu)1、SQL發(fā)展1986年10月,ANSI頒布美美國標(biāo)標(biāo)準(zhǔn)的的SQL語言,,1987年6月,ISO采納為為國際際標(biāo)準(zhǔn)準(zhǔn),1992年推出出SQL2,1999年推出出SQL3,本章章介紹紹SQL2。2、SQL數(shù)據(jù)庫庫的體體系結(jié)結(jié)構(gòu)SQL數(shù)據(jù)庫庫的體體系結(jié)結(jié)構(gòu)基基本上上也是是三級(jí)級(jí)結(jié)構(gòu)構(gòu)。SQL數(shù)據(jù)庫是是表的匯匯集,表表或是基基本表,,或是視視圖,基基本表是是實(shí)際存存儲(chǔ)在數(shù)數(shù)據(jù)庫中中的表,,而視圖圖是若干干基本表表或其它它視圖構(gòu)構(gòu)成的表表的定義義。一個(gè)個(gè)基本表表可以跨跨一個(gè)或或多個(gè)存存儲(chǔ)文件件,一個(gè)個(gè)存儲(chǔ)文文件也可可以放一一個(gè)或多多個(gè)基本本表。用用戶可以以用SQL語句對(duì)視圖和和基本表進(jìn)行行查詢等操作作。26二、SQL的基本組成SQL分四部分:數(shù)據(jù)定義DDL:CREATE,DROP,ALTER數(shù)據(jù)操縱DML:SELECT,INSERT,DELETE,UPDATE數(shù)據(jù)控制DCL:GRANT,REVOKE嵌入式SQL27三、SQL數(shù)據(jù)定義SQL數(shù)據(jù)定義部分分包括對(duì)SQL模式、基本表表、視圖和索索引的創(chuàng)建和和撤消操作。。(1)SQL模式的創(chuàng)建和和撤消SQL模式的創(chuàng)建::CREATESCHEMA模式名AUTHORIZATION用戶名SQL模式的撤消::DROPSCHEMA模式名[CASCADE|RESTRICT](2)基本表的創(chuàng)創(chuàng)建、修改和和撤消基本表的創(chuàng)建建:CREATETABLE基本表名(列列名類型……完整性約束……)類型為為基本數(shù)據(jù)類類型,完整性性約束有三個(gè)個(gè)子句:主鍵鍵子句(PRIMARYKEY)、檢查子句句(CHECK)、外鍵子句句(FOREIGNKEY)?;颈淼男薷母模篈LTERTABLE基本表名ADD列名類型ALTERTABLE基本表名DROP列名[CASCADE|RESTRICT]基本表的撤消消:DROPTABLE基本表名[CASCADE|RESTRICT]28三、SQL數(shù)據(jù)定義(續(xù)續(xù))SQL數(shù)據(jù)定義部分分包括對(duì)SQL模式、基本表表、視圖和索索引的創(chuàng)建和和撤消操作。。(3)視圖的創(chuàng)建建和撤消視圖的創(chuàng)建:CREATEVIEW視圖名(列名名表)ASSELECT查詢語句視圖的撤消::DROPVIEW視圖名(4)索引的創(chuàng)建建和撤消索引的創(chuàng)建:CREATE[UNIQUE]INDEX索引名ON基本表名(列列名表)索引的撤消::DROPINDEX索引名29四、SQL數(shù)據(jù)查詢SELECT語句的完整句句法:SELECT[DISTINCT]目標(biāo)列的列名名或列表達(dá)式式序列FROM基本表和視圖圖序列[WHERE行條件表達(dá)式式][GROUPBY列名序列[HAVING組條件表達(dá)式式]][ORDERBY列名[ASC|DESC]…]30五、SQL數(shù)據(jù)更新SQL的數(shù)據(jù)更新包包括:數(shù)據(jù)插插入、刪除和和修改。(1)數(shù)據(jù)插入單元組值的插入:INSERTINTO基本表名(列列名表)VALUES(元組值)多元組值的插入:INSERTINTO基本表名(列列名表)(TABLE(元組值),(元組值),…)查詢結(jié)果的插入:INSERTINTO基本表名(列列名表)SELECT查詢語句(2)數(shù)據(jù)刪除DELETEFROM基本表名[WHERE條件表達(dá)式](3)數(shù)據(jù)修改UPDATE基本表名SET列名=值表達(dá)式[,列名=值表達(dá)式…][WHERE條件表達(dá)式]31五、SQL的訪問控制SQL中的用戶權(quán)限限及操作六類權(quán)限:SELECT,INSERT,DELETE,UPDATE,REFERENCES,USAGE。授權(quán)(GRADE)語句:將關(guān)關(guān)系和視圖操操作權(quán)授予特特定用戶GRANT<權(quán)限表>ON<數(shù)據(jù)庫元素>TO<用戶名表>[WITHGRANTOPTION];回收(REVOKE)語句:回收收已授給某用用戶的權(quán)限。。REVOKE<權(quán)限表>ON<數(shù)據(jù)庫元素>FROM<用戶名表>;32六、嵌入式SQL(1)SQL語言的運(yùn)行環(huán)環(huán)境SQL語言有兩種使使用方式:交交互式SQL和嵌入式SQL。SQL語言和宿主語語言(高級(jí)語語言)在數(shù)據(jù)據(jù)類型上有很很大的差別。。嵌入式SQL的實(shí)現(xiàn)有兩種種處理方式::擴(kuò)充宿主語語言的編譯程程序和預(yù)處理理方式。SQL語句與宿主語語言程序間信信息的傳遞是是通過共享變變量實(shí)現(xiàn)的。。(2)嵌入式SQL的使用規(guī)定在程序中要區(qū)區(qū)分SQL語句與宿主語語言語句,所所有SQL語句前必須加加上前綴“EXECSQL”和結(jié)束標(biāo)志志“;”。允許嵌入的的SQL語句引用的的程序變量量(共享變變量)。SQL的集合處理理方式與宿宿主語言單單記錄處理理方式之間間的協(xié)調(diào)用用游標(biāo)(CURSOR)機(jī)制。與與游標(biāo)有關(guān)關(guān)的語句有有四個(gè):游游標(biāo)定義((DECLARE)、打開((OPEN)、推進(jìn)((FETCH)、關(guān)閉((CLOSE)。33六、嵌入式式(3)嵌嵌入入式式SQL的使使用用技技術(shù)術(shù)SQLDDL語句句只只要要加加上上前前綴綴標(biāo)標(biāo)識(shí)識(shí)“EXECSQL”和結(jié)結(jié)束束標(biāo)標(biāo)識(shí)識(shí)“ENDEXEC”,就就能能使使用用。。SQLDML語句句使使用用時(shí)時(shí)有有兩兩種種技技術(shù)術(shù)::不涉涉及及游游標(biāo)標(biāo)的的SQLDML語句句如果果是是INSERT、DELETE和UPDATE語句句,,加加上上前前綴綴標(biāo)標(biāo)識(shí)識(shí)“EXECSQL”和結(jié)結(jié)束束標(biāo)標(biāo)識(shí)識(shí)“ENDEXEC”,就就能能嵌嵌入入在在宿宿主主語語言言程程序序中中使使用用。。對(duì)對(duì)于于SELECT語句句,,如如果果查查詢?cè)兘Y(jié)結(jié)果果是是單單元元組組時(shí)時(shí),,也也可可以以嵌嵌入入在在宿宿主主語語言言程程序序中中使使用用。。涉及及游游標(biāo)標(biāo)的的SQLDML語句當(dāng)SELECT語句查詢結(jié)果果是多個(gè)元組組時(shí),一定要要用游標(biāo)機(jī)制制把多個(gè)元組組一次傳送給給宿主語言程程序中使用。。對(duì)游標(biāo)指向元元組時(shí),可以以進(jìn)行修改和和刪除操作。。34第五節(jié)關(guān)系數(shù)據(jù)庫規(guī)規(guī)范化函數(shù)依賴規(guī)范化模式分解及其其特性35一、函數(shù)依賴賴函數(shù)依賴(FD)的定義設(shè)有關(guān)系模式式R(A1,A2,…,An),X,Y是U的子集,r是R的任一具體關(guān)關(guān)系,如果果對(duì)r的任意兩個(gè)元元組t1,t2,由t1[X]=t2[X]導(dǎo)致t1[Y]=t2[Y],則稱X函數(shù)決定Y,記為X→Y。非平凡的函數(shù)數(shù)依賴平凡的函數(shù)依依賴完全函數(shù)依賴賴部分函數(shù)依賴賴傳遞函數(shù)依賴賴36一、函數(shù)依賴賴(續(xù))鍵設(shè)有關(guān)系模式式R(A1,A2,…,An),F(xiàn)是R的一個(gè)個(gè)函數(shù)數(shù)依賴賴集,,X是{A1,A2,…,An}的一個(gè)個(gè)子集集。如如果①X→A1A2…An∈F+,且②不存存在X真子集集Y,使得得Y→A1A2…An成立,,則稱稱X是R的候選選鍵。。包含在在任何何一個(gè)個(gè)候選選鍵中中的屬屬性稱稱為主主屬性性不包含含在任任何一一個(gè)候候選鍵鍵中的的屬性性稱為為非主主屬性性。37一、函函數(shù)依依賴((續(xù)續(xù))多值依依賴MVD多值依依賴::設(shè)R(U)是屬屬性集集U上的一一個(gè)關(guān)關(guān)系模模式,,X,Y是U的子集集,若若對(duì)R(U)的任任一關(guān)關(guān)系r,對(duì)于于X的一個(gè)個(gè)給定定的值值存在在著Y的一組組值與與其對(duì)對(duì)應(yīng),,同時(shí)時(shí)Y的這組組值又又不以以任何何方式式與U-X-Y中的書書香相相關(guān),,那么么稱Y多值依依賴于于X,記X→Y。38一、函函數(shù)依依賴((續(xù)續(xù))函數(shù)依依賴的的推理理規(guī)則則設(shè)有關(guān)關(guān)系模模式R(A1,A2,…,An)和屬屬性集集U=A1A2…An,X,Y,Z,W是U的一個(gè)子集集,F(xiàn)是R的一個(gè)函數(shù)數(shù)依賴集,,推理規(guī)則則如下:自反律:如如果Y?X?U,則X→Y在R上成立。增廣律:如如果X→Y為F所蘊(yùn)涵,Z?U,則XZ→YZ在R上成立。傳遞律:如如果X→Y和Y→Z在R上成立,則則X→Z在R上成立。FD的其它三個(gè)個(gè)推理規(guī)則則:合并律:如如果X→Y和X→Z成立,則X→YZ也成立。偽傳遞律::如果X→Y和WY→Z成立,則WX→Z也成立。分解律:如如果X→Y和Z?Y,則X→Z成立。39二、規(guī)范化化第一范式1NF如果關(guān)系模模式R的所有的屬屬性的值域域中每一個(gè)個(gè)值都是不不可分解的的值,則稱稱R是屬于1NF。第二范式2NF如果關(guān)系模模式R為1NF,并且R中的每一個(gè)個(gè)非主屬性性完全函數(shù)數(shù)依賴于R的某個(gè)候選選鍵,則稱稱R是屬于2NF。第三范式3NF如果關(guān)系模模式R為2NF,并且R中的每一個(gè)個(gè)非主屬性性都不傳遞遞依賴于R的候選鍵,,則稱R是屬于3NF。40二、規(guī)范化化(續(xù))巴克斯范式式BCNF如果關(guān)系模模式R為1NF,并且R中的每一個(gè)個(gè)屬性都不不傳遞依賴賴于R的候選鍵,,則稱R是屬于BCNF。第四范式4NF關(guān)系模式R,D是一個(gè)多值值依賴集,,如果D中存在一個(gè)個(gè)非平凡的的多值依賴賴X→→Y,并且X必是R的碼,那么么稱R是4NF。41三、模式分分解及其特特性無損聯(lián)結(jié)設(shè)有關(guān)系模模式R,分解成關(guān)關(guān)系模式={R1,R2,…,RK},F(xiàn)是R其中m(r)=∏R1(r)?∏R2(r)?…?∏Rk(r)稱為關(guān)系r的投影聯(lián)結(jié)變換。保持函數(shù)依賴的分解設(shè)F是屬性集U上的一個(gè)函數(shù)依賴集,Z是U上的一個(gè)子集,F(xiàn)在Z上的一個(gè)投影定義為:∏Z(F)={X→Y∣X→Y∈F+且XY?Z}設(shè)關(guān)系模式R的一個(gè)分解為={R1,R2,…,RK},F(xiàn)是R的一個(gè)函數(shù)依賴集,如果F+=(U∏Ri

(F))則稱分解保持函數(shù)依賴。42三、模式式分解及及其特性性(續(xù)))無損聯(lián)結(jié)結(jié)的測(cè)試試:關(guān)系模式式R,F(xiàn)是R的一個(gè)函函數(shù)依賴賴集,R分解成關(guān)關(guān)系模式式={R1,R2,…,RK},判斷是否是無無損聯(lián)結(jié)結(jié)的方法法:構(gòu)造一張張K行N列的表格格,每列列對(duì)應(yīng)一一個(gè)屬性性Aj,每行對(duì)對(duì)應(yīng)一個(gè)個(gè)模式Ri,如果Aj在Ri中,那么么在表格格的交叉叉處填上上aj,否則填填上bij。反復(fù)檢查查F中的每一一個(gè)函數(shù)數(shù)依賴,,并修改改表格中中的元素素。若表格中中有一行行是全a,則是無無損聯(lián)結(jié)結(jié),否則則不是。。如果R分解成關(guān)關(guān)系模式式={R1,R2},分解是否是無無損聯(lián)結(jié)結(jié)的充分分必要條條件為::R1∩R2→(R1―R2)或R1∩R2→(R2―R1)43第六節(jié)節(jié)數(shù)據(jù)庫庫的控控制功功能事務(wù)管管理數(shù)據(jù)庫庫的備備份與與恢復(fù)復(fù)并發(fā)控控制安全性性和授授權(quán)44一、、事事務(wù)務(wù)管管理理事務(wù)務(wù)的的概概念念事務(wù)務(wù)是是由由若若干干數(shù)數(shù)據(jù)據(jù)庫庫操操作作組組成成的的一一個(gè)個(gè)邏邏輯輯工工作作單單位位,,是是一一個(gè)個(gè)不不可可分分割割的的工工作作單單位位。。事事務(wù)務(wù)是是DBS的主主要要處處理理對(duì)對(duì)象象,,事事務(wù)務(wù)在在DBS中的的地地位位類類似似進(jìn)進(jìn)程程在在OS中的的地地位位。。一一個(gè)個(gè)應(yīng)應(yīng)用用程程序序可可以以包包括括多多個(gè)個(gè)事事務(wù)務(wù)。。事務(wù)務(wù)以以BEGINTRANSACTION語句句的的成成功功執(zhí)執(zhí)行行開開始始,,以以COMMIT或ROLLBACK語句句的的成成功功執(zhí)執(zhí)行行結(jié)結(jié)束束。。COMMIT(提交))語句表表示一事事務(wù)的全全部操作作都已成成功,它它對(duì)DB的所有更更新可真真正寫到到DB中。ROLLBACK(回退)45一、事務(wù)務(wù)管理((續(xù)))事務(wù)有四四個(gè)重要要性質(zhì)::原子性性、一致致性、隔隔離性和和持久性性。通常常稱為“ACID性質(zhì)”。原子性((atomicity):事事務(wù)對(duì)數(shù)數(shù)據(jù)庫的的更新要要么全部部起作用用,要么一致性(consistency):事務(wù)將數(shù)據(jù)庫從一個(gè)一致性狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)一致性狀態(tài)。 程序員(正確地編寫事務(wù))DBMS的完整性子系統(tǒng) 隔離性(isolation

):事務(wù)相互隔離,在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),任一事務(wù)的更新操作在該事務(wù)成功提交前對(duì)其他事務(wù)都是不可見的。 DBMS的并發(fā)控制子系統(tǒng) 持久性(durability):事務(wù)一旦成功提交,其對(duì)數(shù)據(jù)庫的更新就永久有效,不會(huì)因系統(tǒng)崩潰等而丟失。 DBMS的恢復(fù)管理子系統(tǒng)

46二、數(shù)據(jù)據(jù)庫的備備份與恢恢復(fù)數(shù)據(jù)庫備備份的必必要性非預(yù)期事事務(wù)故障障:運(yùn)算算錯(cuò)誤、、數(shù)據(jù)錯(cuò)錯(cuò)誤、死死鎖等,,故障事事務(wù)夭折折可預(yù)期事事務(wù)故障障:在事事務(wù)中可可預(yù)期出出錯(cuò)的地地方所加加的ROLLBACK語句系統(tǒng)故障障:硬硬件、系系統(tǒng)軟件件出錯(cuò),,停電等等,事務(wù)務(wù)執(zhí)行被被打斷,,內(nèi)存中中數(shù)據(jù)被被破壞介質(zhì)故障障:磁磁頭、磁磁盤控制制器或磁磁盤損壞壞,盤上上數(shù)據(jù)丟丟失,病病毒破壞壞等,DB遭破壞計(jì)算機(jī)病病毒47二、數(shù)據(jù)據(jù)庫的備備份與恢恢復(fù)數(shù)據(jù)庫恢恢復(fù)的基基本策略略和實(shí)現(xiàn)現(xiàn)方法恢復(fù)的的基本本策略略:冗冗余((數(shù)據(jù)據(jù)重復(fù)復(fù)存儲(chǔ)儲(chǔ))實(shí)現(xiàn)方方法::備份定期對(duì)對(duì)數(shù)據(jù)據(jù)庫復(fù)復(fù)制或或轉(zhuǎn)儲(chǔ)儲(chǔ)(靜靜態(tài)轉(zhuǎn)轉(zhuǎn)儲(chǔ)和和動(dòng)態(tài)態(tài)轉(zhuǎn)儲(chǔ)儲(chǔ),海海量轉(zhuǎn)轉(zhuǎn)儲(chǔ)和和增量量轉(zhuǎn)儲(chǔ)儲(chǔ))。。日志執(zhí)行事事務(wù)時(shí)時(shí),記記錄其其開始始、結(jié)結(jié)束和和對(duì)DB的每次次更新新操作作。48二、數(shù)數(shù)據(jù)庫庫的備備份與與恢復(fù)復(fù)數(shù)據(jù)庫庫恢復(fù)復(fù)的基基本策策略和和實(shí)現(xiàn)現(xiàn)方法法恢復(fù)出出故障障時(shí)利利用備備份和和日志志進(jìn)行行恢復(fù)復(fù)。事務(wù)故故障::對(duì)故故障事事務(wù)作作撤消消(UNDO)操作作系統(tǒng)故故障::重啟啟DBMS,利用用日志志:對(duì)未完完成事事務(wù)做做撤消消(UNDO)操作作對(duì)已已提交交但其其更新新結(jié)果果尚留留在系系統(tǒng)緩緩沖區(qū)區(qū)的事事務(wù)作作重做做(REDO)操作作,重新執(zhí)執(zhí)行故故障發(fā)發(fā)生時(shí)時(shí)未完完成的的事務(wù)務(wù)。介質(zhì)故故障::重裝裝最新新的備備份,,利用用日志志對(duì)此此備份份以來來的全全部成成功事事務(wù)進(jìn)進(jìn)行REDO操作,,以使使DB恢復(fù)到到故障障發(fā)生生前的的正確確狀態(tài)態(tài)。49二、數(shù)數(shù)據(jù)庫庫的備備份與與恢復(fù)復(fù)數(shù)據(jù)庫庫鏡像像在現(xiàn)有有的SQL標(biāo)準(zhǔn)中中,沒沒有顯顯式的的事務(wù)務(wù)開始始語句句(今今后的的SQL標(biāo)準(zhǔn)中中將包包含BEGINTRANSACTION),當(dāng)當(dāng)程序序中沒沒有事事務(wù)存存在而而執(zhí)行行一個(gè)個(gè)能啟啟動(dòng)事事務(wù)的的SQL語句時(shí)時(shí)就是是一個(gè)個(gè)事務(wù)務(wù)的開開始。。SQL中的COMMIT或ROLLBACK都意味味著一一個(gè)事事務(wù)結(jié)結(jié)束,,但支支持SQL的不同同DBMS有些差差異。。50三、并并發(fā)控控制為了充充分利利用數(shù)數(shù)據(jù)庫庫這個(gè)個(gè)共享享資源源,DBMS允許多多個(gè)事事務(wù)并并發(fā)地地存取取數(shù)據(jù)據(jù)庫。。如果不不對(duì)并并發(fā)操操作進(jìn)進(jìn)行恰恰當(dāng)?shù)牡目刂浦?,可可能?dǎo)導(dǎo)致如如下的的數(shù)據(jù)據(jù)不一一致性性問題題:丟失更更新問問題::一事事務(wù)所所作的的更新新操作作因另另一事事務(wù)的的操作作而丟丟失。。讀“臟臟數(shù)據(jù)據(jù)”問問題::又稱稱為未未提交交依賴賴,指指一事事務(wù)取取用了了別的的事務(wù)務(wù)未提提交隨隨后又又被撤撤消的的數(shù)據(jù)據(jù)。不一致致分析析問題題:指指事務(wù)務(wù)從數(shù)數(shù)據(jù)庫庫中讀讀取了了處于于不一一致狀狀態(tài)的的數(shù)據(jù)據(jù),并并因此此進(jìn)行行了不51三、并并發(fā)控控制封鎖是是實(shí)現(xiàn)現(xiàn)并發(fā)發(fā)控制制的重重要技技術(shù)。。所謂謂封鎖鎖,是是指事事務(wù)向向系統(tǒng)統(tǒng)發(fā)出出對(duì)某某數(shù)據(jù)據(jù)對(duì)象象加鎖鎖的請(qǐng)請(qǐng)求,,以取取得對(duì)對(duì)該對(duì)對(duì)象一一定的的控制制權(quán)。。基本本的封封鎖有有兩類類:排它型型封鎖鎖(寫寫鎖,,X封鎖):一一個(gè)事務(wù)對(duì)對(duì)數(shù)據(jù)對(duì)象象加了X鎖后,在它它釋放X鎖之前不允允許其他事事務(wù)再對(duì)該該數(shù)據(jù)對(duì)象象加任何鎖鎖。共享型鎖((讀鎖,S封鎖):一個(gè)事務(wù)務(wù)對(duì)數(shù)據(jù)對(duì)對(duì)象加了S鎖后,允許許其他事務(wù)務(wù)再對(duì)該數(shù)數(shù)據(jù)對(duì)象加加S鎖,但在它它釋放S鎖之前不允允許其他事事務(wù)加X鎖。52三、并發(fā)控控制封鎖協(xié)議PX協(xié)議主要內(nèi)內(nèi)容是:事事務(wù)若要更更新數(shù)據(jù),,則必須先先提出對(duì)此此數(shù)據(jù)對(duì)象象的X封鎖請(qǐng)求;;事務(wù)如果果未獲準(zhǔn)X封鎖,那么么進(jìn)入等待待狀態(tài),直直至獲準(zhǔn)在在此數(shù)據(jù)對(duì)對(duì)象上的X封鎖,才能能繼續(xù)執(zhí)行行。PX協(xié)議可以解解決因多事事務(wù)同時(shí)更更新同一數(shù)數(shù)據(jù)對(duì)象而而引起的更更新丟失問問題。PS協(xié)議主要內(nèi)內(nèi)容是:事事務(wù)若要存存取數(shù)據(jù),,則必須先先提出對(duì)此此數(shù)據(jù)對(duì)象象的S封鎖請(qǐng)求;;事務(wù)如果果未獲準(zhǔn)S封鎖,那么么進(jìn)入等待待狀態(tài),直直至獲準(zhǔn)在在此數(shù)據(jù)對(duì)對(duì)象上S封鎖,才能能繼續(xù)執(zhí)行行;事務(wù)在在更新數(shù)據(jù)據(jù)前必須先先將它在該該數(shù)據(jù)對(duì)象象上的S封鎖鎖升升級(jí)級(jí)((UPGRADE)為為X封鎖鎖。。53三、、并并發(fā)發(fā)控控制制活鎖鎖和和死死鎖鎖恰當(dāng)當(dāng)?shù)氐剡\(yùn)運(yùn)用用封封鎖鎖技技術(shù)術(shù),,可可以以保保證證并并發(fā)發(fā)調(diào)調(diào)度度的的正正確確性性、、有有效效地地避避免免數(shù)數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論