軟件設計師教程之數(shù)據(jù)庫技術基礎_第1頁
軟件設計師教程之數(shù)據(jù)庫技術基礎_第2頁
軟件設計師教程之數(shù)據(jù)庫技術基礎_第3頁
軟件設計師教程之數(shù)據(jù)庫技術基礎_第4頁
軟件設計師教程之數(shù)據(jù)庫技術基礎_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、軟件設計師教程之數(shù)據(jù)庫技術基礎數(shù)據(jù)庫技術基礎數(shù)據(jù)庫技術基礎 2 n數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)n數(shù)據(jù)管理技術的發(fā)展數(shù)據(jù)管理技術的發(fā)展nDBMS的功能的功能nDBMS的特征的特征n數(shù)據(jù)庫的三級模式結構數(shù)據(jù)庫的三級模式結構2022-3-273一、數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)n1、數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)(DBMSDBMS):是位于):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶和應用程序提供訪問軟件,為用戶和應用程序提供訪問DBDB的方法,包括的方法,包括DBDB的建立、查詢、更新的建立、查詢、更新及各種數(shù)據(jù)控制。及各種數(shù)據(jù)控制。 n2 2、數(shù)

2、據(jù)庫(、數(shù)據(jù)庫(DBDB):是統(tǒng)一管理的相關):是統(tǒng)一管理的相關數(shù)據(jù)的集合。數(shù)據(jù)的集合。 4二、數(shù)據(jù)管理技術的發(fā)展 n發(fā)展經(jīng)過三個階段:發(fā)展經(jīng)過三個階段:n人工管理階段人工管理階段n文件系統(tǒng)階段文件系統(tǒng)階段u三個缺陷:三個缺陷:數(shù)據(jù)的冗余性、數(shù)據(jù)不數(shù)據(jù)的冗余性、數(shù)據(jù)不一致性、數(shù)據(jù)聯(lián)系弱。一致性、數(shù)據(jù)聯(lián)系弱。 n數(shù)據(jù)庫階段數(shù)據(jù)庫階段u采用復雜的數(shù)據(jù)模型表示數(shù)據(jù)結構、采用復雜的數(shù)據(jù)模型表示數(shù)據(jù)結構、有較高的數(shù)據(jù)獨立性。有較高的數(shù)據(jù)獨立性。 5三、 DBMS的功能n數(shù)據(jù)定義數(shù)據(jù)定義n數(shù)據(jù)庫操作功能(檢索和更新)數(shù)據(jù)庫操作功能(檢索和更新)n數(shù)據(jù)庫運行管理(數(shù)據(jù)庫的恢復、并數(shù)據(jù)庫運行管理(數(shù)據(jù)庫的恢復

3、、并發(fā)性、完整性、安全性)發(fā)性、完整性、安全性)n數(shù)據(jù)組織、存儲和管理數(shù)據(jù)組織、存儲和管理n數(shù)據(jù)庫的建立和維護數(shù)據(jù)庫的建立和維護n其他功能其他功能 6四、 DBMS的特征n特征特征u數(shù)據(jù)結構化且統(tǒng)一管理數(shù)據(jù)結構化且統(tǒng)一管理u較高的數(shù)據(jù)獨立性較高的數(shù)據(jù)獨立性u數(shù)據(jù)控制功能數(shù)據(jù)控制功能 nRDBMSnOODBSnORDBS7五、數(shù)據(jù)庫的三級模式結構 n1、外模式:又稱子模式、用戶模式,是用戶和數(shù)據(jù)庫、外模式:又稱子模式、用戶模式,是用戶和數(shù)據(jù)庫系統(tǒng)的接口,是用戶用到的那部分數(shù)據(jù)的描述。系統(tǒng)的接口,是用戶用到的那部分數(shù)據(jù)的描述。n概念模式:又稱模式,是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯概念模式:又稱模式,是

4、數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結構的描述。結構的描述。n內(nèi)模式:又稱存儲模式,是數(shù)據(jù)庫在物理存儲方面的描述。內(nèi)模式:又稱存儲模式,是數(shù)據(jù)庫在物理存儲方面的描述。n2、兩級映象、兩級映象模式模式/內(nèi)模式映象,外模式內(nèi)模式映象,外模式/模式映象。模式映象。n3、兩級數(shù)據(jù)獨立性、兩級數(shù)據(jù)獨立性 物理數(shù)據(jù)獨立性,物理數(shù)據(jù)獨立性,邏輯數(shù)據(jù)獨立性。8n數(shù)據(jù)模型的基本概念數(shù)據(jù)模型的基本概念n數(shù)據(jù)模型的三要素問題數(shù)據(jù)模型的三要素問題n實體聯(lián)系模型(實體聯(lián)系模型(ER圖)圖)n層次模型層次模型n網(wǎng)狀模型網(wǎng)狀模型n關系模型關系模型9n1、數(shù)據(jù)描述的三個領域、數(shù)據(jù)描述的三個領域u現(xiàn)實世界:存在與人們頭腦以外客觀世界?,F(xiàn)

5、實世界:存在與人們頭腦以外客觀世界。u信息世界:現(xiàn)實世界在人們頭腦中的反映。信息世界:現(xiàn)實世界在人們頭腦中的反映。u機器世界:信息世界的信息在機器世界中以數(shù)據(jù)形式機器世界:信息世界的信息在機器世界中以數(shù)據(jù)形式存儲。存儲。n2、信息世界和機器世界術語的關系、信息世界和機器世界術語的關系: 信息世界信息世界 機器世界機器世界 實體實體 記錄記錄 屬性屬性 字段字段 實體集實體集 文件文件 實體標識符實體標識符關鍵碼關鍵碼一、數(shù)據(jù)模型的基本概念10二、數(shù)據(jù)模型的三要素問題n數(shù)據(jù)庫的邏輯結構,與硬件、數(shù)據(jù)庫的邏輯結構,與硬件、DBMSDBMS有關,有三部分構成:有關,有三部分構成:u數(shù)據(jù)結構數(shù)據(jù)結構u

6、數(shù)據(jù)操作數(shù)據(jù)操作u數(shù)據(jù)完整性數(shù)據(jù)完整性n四種數(shù)據(jù)模型:四種數(shù)據(jù)模型: u層次模型層次模型u網(wǎng)狀模型網(wǎng)狀模型u關系模型關系模型u面向對象模型面向對象模型11三、實體聯(lián)系模型(ER圖) n 實體的聯(lián)系有兩類實體的聯(lián)系有兩類u一類是實體內(nèi)部(屬性之間)的聯(lián)系(第一類是實體內(nèi)部(屬性之間)的聯(lián)系(第5 5節(jié)討節(jié)討論)論)u一類是實體集內(nèi)部(實體和實體之間)的聯(lián)系一類是實體集內(nèi)部(實體和實體之間)的聯(lián)系(本節(jié)討論)(本節(jié)討論)n 實體間的聯(lián)系有三種:實體間的聯(lián)系有三種:u兩個實體集中各實體之間的聯(lián)系:一對一(兩個實體集中各實體之間的聯(lián)系:一對一(1 1:1 1)、)、 一對多一對多 (1 1:N N)、

7、多對多)、多對多 (M M:N N) u三個實體集中各實體之間的聯(lián)系。三個實體集中各實體之間的聯(lián)系。u同一實體集內(nèi)部各實體之間的聯(lián)系。同一實體集內(nèi)部各實體之間的聯(lián)系。 12三、實體聯(lián)系模型(續(xù)) n 屬性:屬性:u簡單屬性和復合屬性簡單屬性和復合屬性u單值屬性和多值屬性單值屬性和多值屬性uNULL屬性屬性u派生屬性派生屬性n E-R方法方法n 擴充的擴充的E-R 模型模型 u弱實體弱實體u超類和子類超類和子類 13四、層次模型n創(chuàng)始:創(chuàng)始:19681968年美國年美國IBMIBM公司的公司的IMSIMS系統(tǒng)系統(tǒng)n數(shù)據(jù)結構:樹結構數(shù)據(jù)結構:樹結構n特點:數(shù)據(jù)聯(lián)系通過指針實現(xiàn)特點:數(shù)據(jù)聯(lián)系通過指針

8、實現(xiàn)n缺點:不能直接表示多對多缺點:不能直接表示多對多14五、網(wǎng)狀模型n創(chuàng)始:創(chuàng)始:19691969年年CODASYLCODASYL的的DBTGDBTG報告報告n數(shù)據(jù)結構:有向圖結構數(shù)據(jù)結構:有向圖結構 n特點:數(shù)據(jù)聯(lián)系通過指針實現(xiàn)特點:數(shù)據(jù)聯(lián)系通過指針實現(xiàn)n缺點:結構復雜缺點:結構復雜15六、關系模型n創(chuàng)始:創(chuàng)始:19701970年年E.F. CoddE.F. Codd提出關系模型提出關系模型 n數(shù)據(jù)結構:二維表數(shù)據(jù)結構:二維表 n特點:表間公共屬性特點:表間公共屬性 n缺點:效率低缺點:效率低16n關系模型的基本概念關系模型的基本概念n關系代數(shù)關系代數(shù)n擴充的關系代數(shù)擴充的關系代數(shù)17一、

9、關系模型的基本概念 n屬性和域屬性和域u屬性:描述實體的特征屬性:描述實體的特征u域:屬性的取值范圍域:屬性的取值范圍n笛卡爾積和關系笛卡爾積和關系18一、關系模型的基本概念(續(xù)) n術語術語u超鍵:在關系中能惟一標識超鍵:在關系中能惟一標識元組的屬性集稱元組的屬性集稱為為關系模型的超鍵。關系模型的超鍵。u候選鍵:不含有多余候選鍵:不含有多余屬性屬性的超鍵的超鍵稱為稱為候選鍵。候選鍵。u主鍵:用戶選作主鍵:用戶選作元組元組標識的一個候選鍵標識的一個候選鍵稱為稱為主鍵。主鍵。u主屬性:包含在任何候選鍵中的屬性。主屬性:包含在任何候選鍵中的屬性。u外鍵:該外鍵:該屬性不是本關系的屬性不是本關系的主

10、鍵,正好是另主鍵,正好是另外一個關系的主鍵,則該外一個關系的主鍵,則該屬性稱為本關系的屬性稱為本關系的外鍵。外鍵。u全碼:所有屬性組是這個關系模式的候選碼。全碼:所有屬性組是這個關系模式的候選碼。19一、關系模型的基本概念(續(xù)) n關系的關系的3 3種類型種類型u基本關系基本關系u查詢表查詢表u視圖視圖n關系數(shù)據(jù)庫模式關系數(shù)據(jù)庫模式n完整性約束完整性約束u實體完整性實體完整性u參照完整性參照完整性u用戶定義完整性用戶定義完整性20二、關系代數(shù) n關系運算理論分為關系代數(shù)和關系演算兩關系運算理論分為關系代數(shù)和關系演算兩種種n關系代數(shù)是由一組以關系作為運算對象的關系代數(shù)是由一組以關系作為運算對象的

11、特定的運算符組成特定的運算符組成n常用的運算為九種:并、交、差、笛卡爾常用的運算為九種:并、交、差、笛卡爾積、聯(lián)接、自然聯(lián)接、投影、選擇、除運積、聯(lián)接、自然聯(lián)接、投影、選擇、除運算等,其中五種為基本運算:并、交、笛算等,其中五種為基本運算:并、交、笛卡爾積、投影、選擇運算??柗e、投影、選擇運算。 21二、關系代數(shù) (續(xù)1)n關系代數(shù)的五種基本運算關系代數(shù)的五種基本運算n設有兩個關系設有兩個關系R R和和S S具有相同的關系模式。具有相同的關系模式。u并(并() RSttRtS,tRSttRtS,t為元組變量,為元組變量,R R和和S S結構相結構相同。同。u差(差(- -) R-SttRtR

12、-SttRt S,tS,t為元組變量,為元組變量,R R和和S S結構相同。結構相同。u笛卡爾積(笛卡爾積() RStt=RStt=t tr r,t,ts sttr rRtRts sSSu投影投影() () i1i1, , ,imim(R)tt=(R)tt=t ti1i1, ,t,timimt t1 1, ,t,tk kRRu選擇選擇() () F F(R) ttRF(t)true,F(R) ttRF(t)true,F是由邏輯運是由邏輯運算符和比較運算符連接運算對象構成的表達式。算符和比較運算符連接運算對象構成的表達式。22二、關系代數(shù) (續(xù)2)n關系代數(shù)的四種組合運算關系代數(shù)的四種組合運算u

13、交交RSR-(R-S) RSR-(R-S) 或或RSS-(S-R)RSS-(S-R)u聯(lián)接聯(lián)接R R S SABAB(RSRS)其中)其中A A是是R R的的 ABAB屬性,屬性,B B是是S S的屬性。的屬性。u自然聯(lián)接自然聯(lián)接R R S S去掉去掉S S中公共屬性中公共屬性(公共屬性公共屬性上值相等上值相等(RSRS)u除除R RS S 可以視為笛卡爾積的逆運算??梢砸暈榈芽柗e的逆運算。23三、擴充的關系代數(shù) n廣義投影廣義投影n外聯(lián)接外聯(lián)接u左外聯(lián)接左外聯(lián)接u右外聯(lián)接右外聯(lián)接u全外聯(lián)接全外聯(lián)接n外部并外部并 24nSQL數(shù)據(jù)庫體系結構數(shù)據(jù)庫體系結構nSQL的基本組成的基本組成nSQL數(shù)

14、據(jù)定義數(shù)據(jù)定義nSQL數(shù)據(jù)查詢數(shù)據(jù)查詢nSQL數(shù)據(jù)更新數(shù)據(jù)更新n嵌入式嵌入式 SQL25一、SQL數(shù)據(jù)庫體系結構 n1 1、SQLSQL發(fā)展發(fā)展n19861986年年1010月,月,ANSIANSI頒布美國標準的頒布美國標準的SQLSQL語言,語言,19871987年年6 6月,月,ISOISO采采納為國際標準納為國際標準,19921992年推出年推出SQL2SQL2,19991999年推出年推出SQL3SQL3,本章介,本章介紹紹SQL2SQL2。n2、 SQLSQL數(shù)據(jù)庫的體系結構數(shù)據(jù)庫的體系結構nSQLSQL數(shù)據(jù)庫的體系結構基本上也是三級結構。數(shù)據(jù)庫的體系結構基本上也是三級結構。SQLS

15、QL數(shù)據(jù)庫是表數(shù)據(jù)庫是表的匯集,表或是基本表,或是視圖,基本表是實際存儲在數(shù)的匯集,表或是基本表,或是視圖,基本表是實際存儲在數(shù)據(jù)庫中的表,而視圖是若干基本表或其它視圖構成的表的定據(jù)庫中的表,而視圖是若干基本表或其它視圖構成的表的定義。一個基本表可以跨一個或多個存儲文件,一個存儲文件義。一個基本表可以跨一個或多個存儲文件,一個存儲文件也可以放一個或多個基本表。用戶可以用也可以放一個或多個基本表。用戶可以用SQLSQL語句對視圖和基語句對視圖和基本表進行查詢等操作。本表進行查詢等操作。26二、SQL的基本組成nSQLSQL分四部分:分四部分:u數(shù)據(jù)定義數(shù)據(jù)定義DDLDDL:CREATECREAT

16、E,DROPDROP,ALTERALTERu數(shù)據(jù)操縱數(shù)據(jù)操縱DMLDML:SELECTSELECT,INSERTINSERT,DELETEDELETE,UPDATEUPDATEu數(shù)據(jù)控制數(shù)據(jù)控制DCLDCL:GRANTGRANT,REVOKEREVOKEu嵌入式嵌入式SQLSQL27三、SQL數(shù)據(jù)定義nSQLSQL數(shù)據(jù)定義部分包括對數(shù)據(jù)定義部分包括對SQLSQL模式、基本表、視圖和索引的創(chuàng)建模式、基本表、視圖和索引的創(chuàng)建和撤消操作。和撤消操作。u(1 1)SQLSQL模式的創(chuàng)建和撤消模式的創(chuàng)建和撤消SQLSQL模式的創(chuàng)建:模式的創(chuàng)建:CREATE SCHEMA CREATE SCHEMA 模式

17、名模式名 AUTHORIZATION AUTHORIZATION 用戶名用戶名SQLSQL模式的撤消:模式的撤消:DROP SCHEMA DROP SCHEMA 模式名模式名 CASCADE|RESTRICTCASCADE|RESTRICTu(2 2)基本表的創(chuàng)建、修改和撤消)基本表的創(chuàng)建、修改和撤消基本表的創(chuàng)建:基本表的創(chuàng)建:CREATE TABLECREATE TABLE基本表名(列名基本表名(列名 類型類型完整性約束完整性約束) 類型為基本數(shù)據(jù)類型,完整性約束有三個子句:主鍵子句類型為基本數(shù)據(jù)類型,完整性約束有三個子句:主鍵子句(PRIMARY KEYPRIMARY KEY)、檢查子句(

18、)、檢查子句(CHECKCHECK)、外鍵子句()、外鍵子句(FOREIGN KEYFOREIGN KEY)。)?;颈淼男薷模夯颈淼男薷模篈LTER TABLEALTER TABLE基本表名基本表名 ADDADD列名列名 類型類型 ALTER TABLEALTER TABLE基本表名基本表名 DROP DROP 列名列名CASCADE|RESTRICT CASCADE|RESTRICT 基本表的撤消:基本表的撤消:DROP TABLEDROP TABLE基本表名基本表名CASCADE|RESTRICTCASCADE|RESTRICT28三、SQL數(shù)據(jù)定義(續(xù))nSQLSQL數(shù)據(jù)定義部分包括

19、對數(shù)據(jù)定義部分包括對SQLSQL模式、基本表、視圖和模式、基本表、視圖和索引的創(chuàng)建和撤消操作。索引的創(chuàng)建和撤消操作。u(3 3)視圖的創(chuàng)建和撤消)視圖的創(chuàng)建和撤消視圖的創(chuàng)建視圖的創(chuàng)建: CREATE VIEW : CREATE VIEW 視圖名(列名表)視圖名(列名表)AS AS SELECT SELECT 查詢語句查詢語句視圖的撤消:視圖的撤消:DROP VIEW DROP VIEW 視圖名視圖名 u(4 4)索引的創(chuàng)建和撤消)索引的創(chuàng)建和撤消索引的創(chuàng)建索引的創(chuàng)建: CREATE UNIQUEINDEX: CREATE UNIQUEINDEX索引名索引名 ON ON 基本基本表名(列名表)表

20、名(列名表)索引的撤消:索引的撤消:DROP INDEX DROP INDEX 索引名索引名29四、SQL數(shù)據(jù)查詢nSELECTSELECT語句的完整句法:語句的完整句法:uSELECT DISTINCTSELECT DISTINCT目標列的列名或列表達式序列目標列的列名或列表達式序列uFROM FROM 基本表和視圖基本表和視圖序列序列uWHERE WHERE 行條件表達式行條件表達式 uGROUP BY GROUP BY 列名序列列名序列 HAVING HAVING 組條件表達式組條件表達式uORDER BY ORDER BY 列名列名ASC|DESCASC|DESC 30五、SQL數(shù)據(jù)更

21、新nSQLSQL的數(shù)據(jù)更新包括:數(shù)據(jù)插入、刪除和修改。的數(shù)據(jù)更新包括:數(shù)據(jù)插入、刪除和修改。u(1 1)數(shù)據(jù)插入)數(shù)據(jù)插入單元組值的單元組值的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)基本表名(列名表)VALUESVALUES(元組值)元組值)多元組值的多元組值的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)(基本表名(列名表)(TABLETABLE(元組元組值),值),(元組值),元組值),)查詢結果的查詢結果的插入:插入:INSERT INTOINSERT INTO基本表名(列名表)基本表名(列名表)SELECT SELECT 查

22、詢語句查詢語句u(2 2)數(shù)據(jù)刪除)數(shù)據(jù)刪除DELETE FROM DELETE FROM 基本表名基本表名 WHERE WHERE 條件表達式條件表達式 u(3 3)數(shù)據(jù)修改)數(shù)據(jù)修改UPDATEUPDATE基本表名基本表名 SET SET 列名列名= =值值表達式表達式 ,列名列名= =值值表達式表達式 WHERE WHERE 條件表達式條件表達式 31五、SQL的訪問控制nSQLSQL中的用戶權限及操作中的用戶權限及操作u六類權限:六類權限:SELECTSELECT,INSERTINSERT,DELETEDELETE,UPDATEUPDATE,REFERENCESREFERENCES,U

23、SAGEUSAGE。u授權(授權(GRADEGRADE)語句:將關系和視圖操作權授予特定用)語句:將關系和視圖操作權授予特定用戶戶 GRANT ON TO WITH GRANT OPTION;u回收(回收(REVOKEREVOKE)語句:回收已授給某用戶的權限。)語句:回收已授給某用戶的權限。 REVOKE ON FROM ;32六、嵌入式 SQLn (1 1) SQLSQL語言的運行環(huán)境語言的運行環(huán)境uSQLSQL語言有兩種使用方式:交互式語言有兩種使用方式:交互式SQLSQL和嵌入式和嵌入式SQLSQL。uSQLSQL語言和宿主語言(高級語言)在數(shù)據(jù)類型上有很大的差別。語言和宿主語言(高級

24、語言)在數(shù)據(jù)類型上有很大的差別。u嵌入式嵌入式SQLSQL的實現(xiàn)有兩種處理方式:擴充宿主語言的編譯程序和的實現(xiàn)有兩種處理方式:擴充宿主語言的編譯程序和預處理方式。預處理方式。uSQLSQL語句與宿主語言程序間信息的傳遞是通過共享變量實現(xiàn)的。語句與宿主語言程序間信息的傳遞是通過共享變量實現(xiàn)的。n(2 2)嵌入式)嵌入式SQLSQL的使用規(guī)定的使用規(guī)定u在程序中要區(qū)分在程序中要區(qū)分SQLSQL語句與宿主語言語句,所有語句與宿主語言語句,所有SQLSQL語句前必須加上前綴語句前必須加上前綴“EXEC SQLEXEC SQL”和結束標志和結束標志“;”。u允許嵌入的允許嵌入的SQLSQL語句引用的程序

25、變量(共享變量)。語句引用的程序變量(共享變量)。uSQLSQL的集合處理方式與宿主語言單記錄處理方式之間的協(xié)調(diào)用游標的集合處理方式與宿主語言單記錄處理方式之間的協(xié)調(diào)用游標(CURSORCURSOR)機制。與游標有關的語句有四個:游標定義)機制。與游標有關的語句有四個:游標定義(DECLAREDECLARE)、打開()、打開(OPENOPEN)、推進()、推進(FETCHFETCH)、關閉()、關閉(CLOSECLOSE)。)。33六、嵌入式 SQL(續(xù))n (3 3)嵌入式)嵌入式SQLSQL的使用技術的使用技術uSQL DDLSQL DDL語句只要加上前綴標識語句只要加上前綴標識“EXEC

26、 SQLEXEC SQL”和結束和結束標識標識“END EXECEND EXEC”,就能使用。,就能使用。uSQL DMLSQL DML語句使用時有兩種技術:語句使用時有兩種技術:不涉及游標的不涉及游標的SQL DMLSQL DML語句語句如果是如果是INSERTINSERT、DELETEDELETE和和UPDATEUPDATE語句,加上前綴標識語句,加上前綴標識“EXEC SQLEXEC SQL”和結束標識和結束標識“END EXECEND EXEC”,就能嵌入在宿,就能嵌入在宿主語言程序中使用。對于主語言程序中使用。對于SELECTSELECT語句,如果查詢結果語句,如果查詢結果是單元組時

27、,也可以嵌入在宿主語言程序中使用。是單元組時,也可以嵌入在宿主語言程序中使用。涉及游標的涉及游標的SQL DMLSQL DML語句語句當當SELECTSELECT語句查詢結果是多個元組時,一定要用游標語句查詢結果是多個元組時,一定要用游標機制把多個元組一次傳送給宿主語言程序中使用。機制把多個元組一次傳送給宿主語言程序中使用。u對游標指向元組時,可以進行修改和刪除操作。對游標指向元組時,可以進行修改和刪除操作。34n函數(shù)依賴函數(shù)依賴n規(guī)范化規(guī)范化n模式分解及其特性模式分解及其特性35一、函數(shù)依賴 n函數(shù)依賴(函數(shù)依賴(FDFD)的定義)的定義n設有關系模式設有關系模式R R(A A1 1,A A

28、2 2,A An n),),X X,Y Y是是U U的的子集,子集,r r是是R R的任一具體關系的任一具體關系 ,如果對,如果對r r的任意兩的任意兩個元組個元組t t1 1,t t2 2,由,由t t1 1 X=t X=t2 2XX導致導致t t1 1 Y=t Y=t2 2YY,則稱則稱X X函數(shù)決定函數(shù)決定Y Y,記為,記為XYXY。 n非平凡的函數(shù)依賴非平凡的函數(shù)依賴n平凡的函數(shù)依賴平凡的函數(shù)依賴n完全函數(shù)依賴完全函數(shù)依賴n部分函數(shù)依賴部分函數(shù)依賴n傳遞函數(shù)依賴傳遞函數(shù)依賴36一、函數(shù)依賴 (續(xù))n鍵鍵n 設有關系模式設有關系模式R R(A A1 1,A A2 2,A An n),),

29、F F是是R R的一的一個函數(shù)依賴集,個函數(shù)依賴集,X X是是 A A1 1,A A2 2,A An n 的一個子的一個子集。如果集。如果uXAXA1 1A A2 2A An n F F+ +,且,且u不存在不存在X X真子集真子集Y Y,使得,使得YAYA1 1A A2 2A An n 成立,則稱成立,則稱X X是是R R的候選鍵。的候選鍵。n包含在任何一個候選鍵中的屬性稱為主屬性包含在任何一個候選鍵中的屬性稱為主屬性n不包含在任何一個候選鍵中的屬性稱為非主屬性。不包含在任何一個候選鍵中的屬性稱為非主屬性。37一、函數(shù)依賴 (續(xù))n多值依賴多值依賴MVDMVDn多值依賴:設多值依賴:設R R

30、(U U)是屬性集)是屬性集U U上的一個關系模上的一個關系模式,式,X X,Y Y是是U U的子集,若對的子集,若對R R(U U)的任一關系)的任一關系r r,對于對于X X的一個給定的值存在著的一個給定的值存在著Y Y的一組值與其對應,的一組值與其對應,同時同時Y Y的這組值又不以任何方式與的這組值又不以任何方式與U-X-YU-X-Y中的書香中的書香相關,那么稱相關,那么稱Y Y多值依賴于多值依賴于X X,記,記XYXY。38一、函數(shù)依賴 (續(xù))n函數(shù)依賴的推理規(guī)則函數(shù)依賴的推理規(guī)則n設有關系模式設有關系模式R R(A A1 1,A A2 2,A An n)和屬性集)和屬性集U= AU=

31、 A1 1A A2 2A An n,X X,Y Y,Z Z,W W是是U U的一個子集,的一個子集,F(xiàn) F是是R R的一個函數(shù)依賴集,推理規(guī)則如下:的一個函數(shù)依賴集,推理規(guī)則如下:u自反律:如果自反律:如果Y Y X X U U,則,則XYXY在在R R上成立。上成立。u增廣律:如果增廣律:如果XYXY為為F F所蘊涵,所蘊涵,Z Z U U,則,則XZYZXZYZ在在R R上成立。上成立。u傳遞律:如果傳遞律:如果XYXY和和YZYZ在在R R上成立,則上成立,則XZXZ在在R R上成立。上成立。nFDFD的其它三個推理規(guī)則:的其它三個推理規(guī)則:u合并律:如果合并律:如果XYXY和和XZXZ

32、成立,則成立,則XYZXYZ也成立。也成立。u偽傳遞律:如果偽傳遞律:如果XYXY和和WYZWYZ成立,則成立,則WXZWXZ也成立。也成立。u分解律:如果分解律:如果XYXY和和Z ZYY,則,則XZXZ成立。成立。39二、規(guī)范化n第一范式第一范式1NF1NFu如果關系模式如果關系模式R R的所有的屬性的值域中每一的所有的屬性的值域中每一個值都是不可分解的值,則稱個值都是不可分解的值,則稱R R是屬于是屬于1NF1NF。n第二范式第二范式2NF2NFu如果關系模式如果關系模式R R為為1NF1NF,并且,并且R R中的每一個非中的每一個非主屬性完全函數(shù)依賴于主屬性完全函數(shù)依賴于R R的某個候

33、選鍵,則的某個候選鍵,則稱稱R R是屬于是屬于2NF2NF。n第三范式第三范式3NF3NFu如果關系模式如果關系模式R R為為2NF2NF,并且,并且R R中的每一個非中的每一個非主屬性都不傳遞依賴于主屬性都不傳遞依賴于R R的候選鍵,則稱的候選鍵,則稱R R是是屬于屬于3NF3NF。40二、規(guī)范化(續(xù))n巴克斯范式巴克斯范式BCNFBCNFu如果關系模式如果關系模式R R為為1NF1NF,并且,并且R R中的每一個屬中的每一個屬性都不傳遞依賴于性都不傳遞依賴于R R的候選鍵,則稱的候選鍵,則稱R R是屬是屬于于BCNFBCNF。n第四范式第四范式4NF4NFu關系模式關系模式R R,D D是

34、一個多值依賴集,如果是一個多值依賴集,如果D D中中存在一個非平凡的多值依賴存在一個非平凡的多值依賴XYXY,并且,并且X X必是必是R R的碼,那么稱的碼,那么稱R R是是4NF4NF。 41三、模式分解及其特性n無損聯(lián)結無損聯(lián)結u設有關系模式設有關系模式R R,分解成關系模式,分解成關系模式 =R=R1 1,R R2 2,R RK K ,F(xiàn) F是是R R的一個函的一個函數(shù)依賴集。如果對數(shù)依賴集。如果對R R中滿足中滿足F F的每一個關系的每一個關系r r都有:都有:r=r=R1R1(r r)R2R2(r r)RkRk(r r) 則稱這個分解則稱這個分解 是無損聯(lián)結分解。是無損聯(lián)結分解。u其

35、中其中m m (r r)=R1R1(r r)R2R2(r r)RkRk(r r) 稱為關系稱為關系r r的投的投影聯(lián)結變換。影聯(lián)結變換。n保持函數(shù)依賴的分解保持函數(shù)依賴的分解u設設F F是屬性集是屬性集U U上的一個函數(shù)依賴集,上的一個函數(shù)依賴集,Z Z是是 U U上的一個子集,上的一個子集,F(xiàn) F在在Z Z上上的一個投影定義為:的一個投影定義為:Z Z(F F)= XYXY F= XYXY F+ +且且XYXY Z Zu設關系模式設關系模式R R的一個分解為的一個分解為 =R=R1 1,R R2 2,R RK K ,F(xiàn) F是是R R的一個函數(shù)依賴的一個函數(shù)依賴集,如果集,如果uF F+ +=

36、 =( U U RiRi (F F)u則稱分解則稱分解 保持函數(shù)依賴。保持函數(shù)依賴。42三、模式分解及其特性(續(xù))n無損聯(lián)結的測試:無損聯(lián)結的測試:n關系模式關系模式R R,F(xiàn) F是是R R的一個函數(shù)依賴集,的一個函數(shù)依賴集,R R分解成關系分解成關系模式模式 =R=R1 1,R R2 2,R RK K ,判斷,判斷 是否是無損聯(lián)結的是否是無損聯(lián)結的方法:方法:u構造一張構造一張K K行行N N列的表格,每列對應一個屬性列的表格,每列對應一個屬性A Aj j,每行,每行對應一個模式對應一個模式R Ri i,如果,如果A Aj j 在在R Ri i中,那么在表格的交叉中,那么在表格的交叉處填上處

37、填上ajaj,否則填上,否則填上bijbij。u反復檢查反復檢查F F中的每一個函數(shù)依賴,并修改表格中的元中的每一個函數(shù)依賴,并修改表格中的元素。素。u若表格中有一行是全若表格中有一行是全a a,則是無損聯(lián)結,否則不是。,則是無損聯(lián)結,否則不是。n如果如果R R分解成關系模式分解成關系模式 =R=R1 1,R R2 2 ,分解,分解 是否是無是否是無損聯(lián)結的充分必要條件為:損聯(lián)結的充分必要條件為:uR R1 1RR2 2(R R1 1RR2 2)或)或R R1 1RR2 2(R R2 2RR1 1) 43n事務管理事務管理n數(shù)據(jù)庫的備份與恢復數(shù)據(jù)庫的備份與恢復n并發(fā)控制并發(fā)控制n安全性和授權安

38、全性和授權44一、事務管理 n事務的概念事務的概念u事務是由若干數(shù)據(jù)庫操作組成的一個邏輯工作單事務是由若干數(shù)據(jù)庫操作組成的一個邏輯工作單位,是一個不可分割的工作單位。事務是位,是一個不可分割的工作單位。事務是DBSDBS的主的主要處理對象,事務在要處理對象,事務在DBSDBS中的地位類似進程在中的地位類似進程在OSOS中中的地位。一個應用程序可以包括多個事務。的地位。一個應用程序可以包括多個事務。u事務以事務以BEGIN TRANSACTIONBEGIN TRANSACTION語句的成功執(zhí)行開始,語句的成功執(zhí)行開始,以以COMMITCOMMIT或或ROLLBACKROLLBACK語句的成功執(zhí)行

39、結束。語句的成功執(zhí)行結束。COMMITCOMMIT(提交)語句表示一事務的全部操作都已(提交)語句表示一事務的全部操作都已成功,它對成功,它對DBDB的所有更新可真正寫到的所有更新可真正寫到DBDB中。中。ROLLBACKROLLBACK(回退)語句表示事務沒有成功地完成(回退)語句表示事務沒有成功地完成全部操作,系統(tǒng)將撤消該事務對全部操作,系統(tǒng)將撤消該事務對DBDB已作的更新。已作的更新。 45一、事務管理 (續(xù))n事務有四個重要性質:原子性、一致性、隔離性和持久性。通常事務有四個重要性質:原子性、一致性、隔離性和持久性。通常稱為稱為“ACID性質性質”。u原子性(原子性(atomicity

40、):):事務對數(shù)據(jù)庫的更新要么全部起作用,事務對數(shù)據(jù)庫的更新要么全部起作用,要么完全不起作用。要么完全不起作用。DBMSDBMS的事務管理子系統(tǒng)的事務管理子系統(tǒng)u一致性(一致性(consistency):事務將數(shù)據(jù)庫從一個一致性狀態(tài)轉變?yōu)榱恚菏聞諏?shù)據(jù)庫從一個一致性狀態(tài)轉變?yōu)榱硪粋€一致性狀態(tài)。一個一致性狀態(tài)。程序員(正確地編寫事務)程序員(正確地編寫事務)DBMSDBMS的完整的完整性子系統(tǒng)性子系統(tǒng)u隔離性(隔離性(isolation ):事務相互隔離,在多個事務并發(fā)執(zhí)行時,任一事):事務相互隔離,在多個事務并發(fā)執(zhí)行時,任一事務的更新操作在該事務成功提交前對其他事務都是不可見的。務的更新操作

41、在該事務成功提交前對其他事務都是不可見的。DBMSDBMS的的并發(fā)控制子系統(tǒng)并發(fā)控制子系統(tǒng)u持久性(持久性(durability):事務一旦成功提交,其對數(shù)據(jù)庫的更新就):事務一旦成功提交,其對數(shù)據(jù)庫的更新就永久有效,不會因系統(tǒng)崩潰等而丟失。永久有效,不會因系統(tǒng)崩潰等而丟失。DBMSDBMS的恢復管理子系統(tǒng)的恢復管理子系統(tǒng) 46二、數(shù)據(jù)庫的備份與恢復n數(shù)據(jù)庫備份的必要性數(shù)據(jù)庫備份的必要性u非預期事務故障:運算錯誤、數(shù)據(jù)錯誤、死鎖非預期事務故障:運算錯誤、數(shù)據(jù)錯誤、死鎖等,故障事務夭折等,故障事務夭折u可預期事務故障:在事務中可預期出錯的地方可預期事務故障:在事務中可預期出錯的地方所加的所加的R

42、OLLBACKROLLBACK語句語句u系統(tǒng)故障:系統(tǒng)故障:硬件、系統(tǒng)軟件出錯,停電等,硬件、系統(tǒng)軟件出錯,停電等,事務執(zhí)行被打斷,內(nèi)存中數(shù)據(jù)被破壞事務執(zhí)行被打斷,內(nèi)存中數(shù)據(jù)被破壞u介質故障:介質故障:磁頭、磁盤控制器或磁盤損壞,磁頭、磁盤控制器或磁盤損壞,盤上數(shù)據(jù)丟失,病毒破壞等,盤上數(shù)據(jù)丟失,病毒破壞等,DBDB遭破壞遭破壞u計算機病毒計算機病毒47二、數(shù)據(jù)庫的備份與恢復n數(shù)據(jù)庫恢復的基本策略和實現(xiàn)方法數(shù)據(jù)庫恢復的基本策略和實現(xiàn)方法 u恢復的基本策略:冗余(數(shù)據(jù)重復存儲)恢復的基本策略:冗余(數(shù)據(jù)重復存儲)u實現(xiàn)方法:實現(xiàn)方法:u備份備份 定期對數(shù)據(jù)庫復制或轉儲(靜態(tài)轉儲和定期對數(shù)據(jù)庫復制

43、或轉儲(靜態(tài)轉儲和動態(tài)轉儲,海量轉儲和增量轉儲)。動態(tài)轉儲,海量轉儲和增量轉儲)。u日志日志 執(zhí)行事務時,記錄其開始、結束和對執(zhí)行事務時,記錄其開始、結束和對DBDB的每次更新操作。的每次更新操作。48二、數(shù)據(jù)庫的備份與恢復n數(shù)據(jù)庫恢復的基本策略和實現(xiàn)方法數(shù)據(jù)庫恢復的基本策略和實現(xiàn)方法 u恢復恢復 出故障時利用備份和日志進行恢復。出故障時利用備份和日志進行恢復。u事務故障:對故障事務作撤消(事務故障:對故障事務作撤消(UNDOUNDO)操作)操作u系統(tǒng)故障:重啟系統(tǒng)故障:重啟DBMSDBMS,利用日志:,利用日志:對未完成事務對未完成事務做撤消(做撤消(UNDOUNDO)操作對已提交但其更新結

44、果尚)操作對已提交但其更新結果尚留在系統(tǒng)緩沖區(qū)的事務作重做(留在系統(tǒng)緩沖區(qū)的事務作重做(REDOREDO)操作,)操作,重新執(zhí)行故障發(fā)生時未完成的事務。重新執(zhí)行故障發(fā)生時未完成的事務。u介質故障:重裝最新的備份,利用日志對此備份以來介質故障:重裝最新的備份,利用日志對此備份以來的全部成功事務進行的全部成功事務進行REDOREDO操作,以使操作,以使DBDB恢復到故障發(fā)恢復到故障發(fā)生前的正確狀態(tài)。生前的正確狀態(tài)。49二、數(shù)據(jù)庫的備份與恢復n數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像 u在現(xiàn)有的在現(xiàn)有的SQLSQL標準中,沒有顯式的事務開標準中,沒有顯式的事務開始語句(今后的始語句(今后的SQLSQL標準中將包含標準中

45、將包含BEGIN BEGIN TRANSACTIONTRANSACTION),當程序中沒有事務存在),當程序中沒有事務存在而執(zhí)行一個能啟動事務的而執(zhí)行一個能啟動事務的SQLSQL語句時就是語句時就是一個事務的開始。一個事務的開始。SQLSQL中的中的COMMITCOMMIT或或ROLLBACKROLLBACK都意味著一個事務結束,但支持都意味著一個事務結束,但支持SQLSQL的不同的不同DBMSDBMS有些差異。有些差異。50三、并發(fā)控制n為了充分利用數(shù)據(jù)庫這個共享資源,為了充分利用數(shù)據(jù)庫這個共享資源,DBMSDBMS允許多個事務并發(fā)地存取數(shù)據(jù)庫。允許多個事務并發(fā)地存取數(shù)據(jù)庫。n如果不對并發(fā)操

46、作進行恰當?shù)目刂疲赡苋绻粚Σl(fā)操作進行恰當?shù)目刂?,可能導致如下的?shù)據(jù)不一致性問題:導致如下的數(shù)據(jù)不一致性問題:u丟失更新問題:一事務所作的更新操作因另丟失更新問題:一事務所作的更新操作因另一事務的操作而丟失。一事務的操作而丟失。u讀讀“臟數(shù)據(jù)臟數(shù)據(jù)”問題:又稱為未提交依賴,指問題:又稱為未提交依賴,指一事務取用了別的事務未提交隨后又被撤消一事務取用了別的事務未提交隨后又被撤消的數(shù)據(jù)。的數(shù)據(jù)。u不一致分析問題:指事務從數(shù)據(jù)庫中讀取了不一致分析問題:指事務從數(shù)據(jù)庫中讀取了處于不一致狀態(tài)的數(shù)據(jù),并因此進行了不一處于不一致狀態(tài)的數(shù)據(jù),并因此進行了不一致的分析。致的分析。 51三、并發(fā)控制n封鎖是實

47、現(xiàn)并發(fā)控制的重要技術。所謂封封鎖是實現(xiàn)并發(fā)控制的重要技術。所謂封鎖,是指事務向系統(tǒng)發(fā)出對某數(shù)據(jù)對象加鎖,是指事務向系統(tǒng)發(fā)出對某數(shù)據(jù)對象加鎖的請求,以取得對該對象一定的控制權。鎖的請求,以取得對該對象一定的控制權。基本的封鎖有兩類:基本的封鎖有兩類:u排它型封鎖(寫鎖,排它型封鎖(寫鎖,X X封鎖):一個事務對封鎖):一個事務對數(shù)據(jù)對象加了數(shù)據(jù)對象加了X X鎖后,在它釋放鎖后,在它釋放X X鎖之前不允鎖之前不允許其他事務再對該數(shù)據(jù)對象加任何鎖。許其他事務再對該數(shù)據(jù)對象加任何鎖。u共享型鎖(讀鎖,共享型鎖(讀鎖,S S封鎖)封鎖) :一個事務對數(shù):一個事務對數(shù)據(jù)對象加了據(jù)對象加了S S鎖后,允許其

48、他事務再對該數(shù)鎖后,允許其他事務再對該數(shù)據(jù)對象加據(jù)對象加S S鎖,但在它釋放鎖,但在它釋放S S鎖之前不允許其鎖之前不允許其他事務加他事務加X X鎖。鎖。 52三、并發(fā)控制n封鎖協(xié)議封鎖協(xié)議 uPX協(xié)議主要內(nèi)容是:事務若要更新數(shù)據(jù),則協(xié)議主要內(nèi)容是:事務若要更新數(shù)據(jù),則必須先提出對此數(shù)據(jù)對象的必須先提出對此數(shù)據(jù)對象的X封鎖請求;事務封鎖請求;事務如果未獲準如果未獲準X封鎖,那么進入等待狀態(tài),直至封鎖,那么進入等待狀態(tài),直至獲準在此數(shù)據(jù)對象上的獲準在此數(shù)據(jù)對象上的X封鎖,才能繼續(xù)執(zhí)行。封鎖,才能繼續(xù)執(zhí)行。PX協(xié)議可以解決因多事務同時更新同一數(shù)據(jù)協(xié)議可以解決因多事務同時更新同一數(shù)據(jù)對象而引起的更新丟失問題。對象而引起的更新丟失問題。 uPSPS協(xié)議主要內(nèi)容是:事務若要存取數(shù)據(jù),則必協(xié)議主要內(nèi)容是:事務若要存取數(shù)據(jù),則

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論