數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩508頁(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)介

第八章數(shù)據(jù)庫(kù)保護(hù)周愛(ài)武安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院第八章數(shù)據(jù)庫(kù)保護(hù)安全性完整性并發(fā)控制數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)復(fù)制與鏡像概述數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)由DBMS統(tǒng)一管理和控制。DBMS必須提供數(shù)據(jù)的安全性、完整性、并發(fā)控制和數(shù)據(jù)庫(kù)恢復(fù)等數(shù)據(jù)保護(hù)功能,以保證數(shù)據(jù)的安全可靠和正確有效。數(shù)據(jù)庫(kù)保護(hù)功能的幾個(gè)方面:數(shù)據(jù)的安全性數(shù)據(jù)的完整性并發(fā)控制數(shù)據(jù)庫(kù)恢復(fù)8.1安全性數(shù)據(jù)庫(kù)的安全性

——

保護(hù)數(shù)據(jù)庫(kù),防止非法使用造成的數(shù)據(jù)泄露、更改或破壞。安全性控制的一般方法用戶DBMSOSDB用戶標(biāo)識(shí)和鑒定存取控制OS安全保護(hù)密碼存儲(chǔ)安全模型一、用戶標(biāo)識(shí)和鑒定用戶標(biāo)識(shí)和鑒定是系統(tǒng)提供的最外層的安全保護(hù)措施幾種用戶標(biāo)識(shí)和鑒定的方法:

利用用戶的物理特征

利用用戶持有的證件

利用用戶知道的能證明身份的約定如:口令,簡(jiǎn)單易行,被廣泛使用,但易被竊取另一種更有效的口令:用戶訪問(wèn)數(shù)據(jù)庫(kù)時(shí),系統(tǒng)提供一個(gè)隨機(jī)數(shù),用戶按自己約定的函數(shù)進(jìn)行計(jì)算,系統(tǒng)根據(jù)結(jié)果正確與否鑒定用戶身份。例:T(x)=x的各位數(shù)字的平方和+訪問(wèn)時(shí)間

二、存取控制獲得上機(jī)權(quán)的用戶,系統(tǒng)要根據(jù)事先對(duì)用戶定義好的存取權(quán)限執(zhí)行存取控制,保證用戶只能訪問(wèn)他有權(quán)存取的數(shù)據(jù)。存取權(quán)限的兩個(gè)要素——

數(shù)據(jù)對(duì)象和操作類(lèi)型

關(guān)系系統(tǒng)中的存取權(quán)限存取控制(續(xù))可定義的數(shù)據(jù)對(duì)象的范圍授權(quán)——

對(duì)存取權(quán)限的定義。DBMS提供相應(yīng)的授權(quán)控制語(yǔ)句,這些授權(quán)定義經(jīng)編譯后存放在數(shù)據(jù)字典中。

授權(quán)粒度是衡量授權(quán)機(jī)制是否靈活的重要標(biāo)志。合法性檢查——DBMS根據(jù)數(shù)據(jù)字典中存放的存取權(quán)限對(duì)操作的合法性進(jìn)行檢查,超出權(quán)限的拒絕執(zhí)行。

_常用的方法:口令方式對(duì)用戶規(guī)定存取級(jí)別使用日志監(jiān)視數(shù)據(jù)庫(kù)活動(dòng)授權(quán)機(jī)制和合法權(quán)檢查機(jī)制一起組成DBMS的安全子系統(tǒng)。三、安全保護(hù)的目標(biāo)進(jìn)行存取權(quán)限的控制,不僅可以通過(guò)授權(quán)和收回權(quán)力實(shí)現(xiàn),還可以通過(guò)定義用戶視圖提供一定的安全保護(hù)。在實(shí)際應(yīng)用中視圖機(jī)制和授權(quán)機(jī)制配合使用,先用視圖機(jī)制屏蔽一些保密數(shù)據(jù),然后在視圖上面再進(jìn)一步定義存取權(quán)限。保護(hù)措施越全面越復(fù)雜,系統(tǒng)開(kāi)銷(xiāo)越大,用戶使用也越復(fù)雜,因此要權(quán)衡利弊。安全保護(hù)的目標(biāo)

——企圖破壞安全的人所花費(fèi)的代價(jià)應(yīng)遠(yuǎn)遠(yuǎn)超過(guò)他們得到的利益。四、SQL-Server數(shù)據(jù)庫(kù)的安全機(jī)制SQL-Server對(duì)用戶訪問(wèn)控制分兩個(gè)階段:

(1)安全帳戶認(rèn)證用戶登錄系統(tǒng)的管理

——WindowsNT或SQL-Server對(duì)用戶登錄進(jìn)行認(rèn)證,認(rèn)證成功可連接到SQL-Server數(shù)據(jù)庫(kù),否則服務(wù)器拒絕用戶的連接請(qǐng)求。

(2)訪問(wèn)權(quán)限確定用戶使用數(shù)據(jù)庫(kù)對(duì)象的管理

——

用戶登錄成功后,系統(tǒng)按用戶帳號(hào)判斷是否具有對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán),確認(rèn)訪問(wèn)許可才能訪問(wèn)指定的數(shù)據(jù)庫(kù)對(duì)象。安全帳戶認(rèn)證三種認(rèn)證模式(安全模式)(1)標(biāo)準(zhǔn)安全模式——SQL-Server認(rèn)證機(jī)制使用非信任連接,用SQL的Login帳號(hào)和口令登錄。(2)集成安全模式——WindowsNT認(rèn)證機(jī)制使用信任連接,NT用戶就是SQL-Server用戶,用NT的Login帳號(hào)和口令登錄。(3)混合安全模式允許用戶使用標(biāo)準(zhǔn)安全模式或集成安全模式,用哪種取決于用戶應(yīng)用程序所要求的連接類(lèi)型。

注意:在NT上運(yùn)行必須指定系統(tǒng)使用的認(rèn)證模式。安全帳戶認(rèn)證(續(xù)一)Login管理——SQL-Server服務(wù)器登錄管理在SQL-Server服務(wù)器上建立登錄標(biāo)識(shí)兩種途徑:(1)授權(quán)NT用戶或用戶組

——通過(guò)sp-grantlogin或管理工具授權(quán)訪問(wèn)(2)創(chuàng)建新的SQL-Server登錄標(biāo)識(shí)(Login帳戶)

——通過(guò)sp-addlogin創(chuàng)建兩個(gè)SQL-Server默認(rèn)的Login帳戶sa

系統(tǒng)管理員,在系統(tǒng)上和數(shù)據(jù)庫(kù)中有全部的權(quán)限BUILTIN\Administrators

為NT管理員提供,在系統(tǒng)上和數(shù)據(jù)庫(kù)中有全部的權(quán)限。安全帳戶認(rèn)證(續(xù)二)角色(Role)管理角色——

數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限的管理單位,其成員繼承角色所擁有的訪問(wèn)權(quán)限。使用角色有利于訪問(wèn)權(quán)限的集中設(shè)置,可簡(jiǎn)化管理工作。

注意:管理員和數(shù)據(jù)庫(kù)所有者在設(shè)置訪問(wèn)權(quán)限時(shí),先建立角色,并將訪問(wèn)權(quán)限集中授予角色,再把需要擁有這一權(quán)限的用戶加入到角色中,這些用戶便繼承了角色的訪問(wèn)權(quán)限。分類(lèi):固定服務(wù)器角色——

系統(tǒng)提供,作用于整個(gè)服務(wù)器一級(jí)固定數(shù)據(jù)庫(kù)角色——

系統(tǒng)提供,作用于單個(gè)數(shù)據(jù)庫(kù)一級(jí)用戶自定義的數(shù)據(jù)庫(kù)角色特殊的數(shù)據(jù)庫(kù)角色public

——每個(gè)數(shù)據(jù)庫(kù)都包含,數(shù)據(jù)庫(kù)用戶自動(dòng)屬于該角色,且不能被刪除。SQL-Server7.0開(kāi)始將用戶組的概念改為角色安全帳戶認(rèn)證(續(xù)三)

數(shù)據(jù)庫(kù)用戶管理

用戶帳戶是基于數(shù)據(jù)庫(kù)使用的名稱(chēng),是登錄標(biāo)識(shí)即Login帳戶在某數(shù)據(jù)庫(kù)中的用戶名稱(chēng)(該名稱(chēng)可以與登錄標(biāo)識(shí)不同,默認(rèn)時(shí),兩者相同)。一個(gè)Login帳戶可使用一個(gè)指定的用戶帳戶或一個(gè)默認(rèn)的用戶帳戶訪問(wèn)數(shù)據(jù)庫(kù)。在一個(gè)數(shù)據(jù)庫(kù)上增加用戶帳戶,通過(guò)sp-grantdbaccess或管理工具,并設(shè)置該數(shù)據(jù)庫(kù)用戶所屬哪個(gè)(些)角色。

注意:每個(gè)數(shù)據(jù)庫(kù)有若干角色三種特殊的數(shù)據(jù)庫(kù)用戶——具有特殊的權(quán)限和作用數(shù)據(jù)庫(kù)所有者dbo、數(shù)據(jù)對(duì)象所有者、guest用戶其中g(shù)uest用戶允許那些沒(méi)有用戶帳戶的Login帳戶訪問(wèn)數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限的確定權(quán)限種類(lèi)語(yǔ)句權(quán)限——決定用戶能否操作DB和創(chuàng)建DB對(duì)象對(duì)象權(quán)限——決定用戶能否對(duì)DB對(duì)象執(zhí)行操作固定角色隱含的權(quán)限

——SQL-Server預(yù)定義的固定角色和數(shù)據(jù)庫(kù)對(duì)象所有者均有各自隱含的權(quán)限權(quán)限的設(shè)置使用語(yǔ)句設(shè)置權(quán)限:GRANT、DENY、REVOKE

使用管理工具設(shè)置權(quán)限SQLSERVER訪問(wèn)權(quán)限管理語(yǔ)句權(quán)限管理對(duì)用戶執(zhí)行語(yǔ)句或命令的權(quán)限的管理對(duì)象權(quán)限管理Sa、dbo、dboo對(duì)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象操作權(quán)限的控制權(quán)限就是用戶對(duì)數(shù)據(jù)庫(kù)及其對(duì)象的使用權(quán)限或權(quán)利數(shù)據(jù)庫(kù)擁有者用戶數(shù)據(jù)庫(kù)對(duì)象用戶各級(jí)別用戶權(quán)限的包含關(guān)系一般用戶系統(tǒng)管理員注意:有些權(quán)限不可轉(zhuǎn)授(創(chuàng)建用戶)SQLSERVER授權(quán)語(yǔ)句格式語(yǔ)句授權(quán):GRANT{ALL|statement_list}TO{PUBLIC|name_list}GRANTCREATEDATABASETOzhang對(duì)象授權(quán):GRANT{ALL|permission_list}ON{table_name[(column_list)]|view_name[(column_list)]|stored_procedure_name|extended_stored_procedure_name}TO{PUBLIC|name_list}GRANTSELECTONTITLESTOxu,li,zhangGRANTSELECT,INSERT,DELETEONstudentTOxu,li,zhangSQLSERVER收回授權(quán)語(yǔ)句格式收回語(yǔ)句授權(quán)REVOKE{ALL|statement_list}FROM{PUBLIC|name_list}REVOKECREATEDATABASEFROMzhang收回對(duì)象授權(quán)REVOKE{ALL|permission_list}ON{table_name[(column_list)]|view_name[(column_list)]|stored_procedure_name|extended_stored_procedure_name}FROM{PUBLIC|name_list}REVOKESELECTONTITLESFROMxu,li,zhangREVOKESELECT,INSERT,DELETEONstudentFROMzhang8.2完整性數(shù)據(jù)庫(kù)的完整性

——

指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫(kù)保護(hù)的兩個(gè)不同方面:安全性是防止非法用戶惡意破壞和非法存取數(shù)據(jù);完整性是防止合法用戶使用不合語(yǔ)義的數(shù)據(jù)。完整性實(shí)現(xiàn)的兩個(gè)方面:完整性約束條件是語(yǔ)義的體現(xiàn),作為模式的一部分完整性檢查機(jī)制即:DBMS提供一種完整性檢查機(jī)制檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否滿足規(guī)定的約束條件。一、完整性約束條件完整性約束條件作用的對(duì)象分三種粒度:列級(jí)——

約束其取值類(lèi)型、范圍、精度、排序等元組級(jí)——

對(duì)記錄中各字段間的聯(lián)系的約束關(guān)系級(jí)——

對(duì)若干記錄間、關(guān)系集合上及關(guān)系集合之間的聯(lián)系的約束對(duì)象狀態(tài)分為:靜態(tài)對(duì)象、動(dòng)態(tài)對(duì)象靜態(tài)對(duì)象約束——是反映數(shù)據(jù)庫(kù)狀態(tài)的合理性的約束;動(dòng)態(tài)對(duì)象約束——是反映數(shù)據(jù)庫(kù)狀態(tài)變遷的約束。完整性約束條件分為六類(lèi)六類(lèi)完整性約束條件的含義二、完整性控制DBMS完整性控制機(jī)制應(yīng)具有的功能:定義功能,即提供定義完整性約束條件的機(jī)制檢查功能,即檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件;保證功能,若發(fā)現(xiàn)違背約束條件,則采取一定的動(dòng)作來(lái)保證數(shù)據(jù)的完整性。立即執(zhí)行約束——檢查功能在一條語(yǔ)句執(zhí)行完后立即進(jìn)行延遲執(zhí)行約束——檢查功能延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后再進(jìn)行最重要的完整性約束:實(shí)體完整性、參照完整性

其他完整性約束條件可歸入用戶定義的完整性三、SQL-Server數(shù)據(jù)庫(kù)的完整性策略SQL-Server中的三種數(shù)據(jù)完整性:域完整性實(shí)體完整性參照完整性(用戶定義完整性)保證數(shù)據(jù)完整性的方法約束(Constraint)默認(rèn)(Default)和規(guī)則(Rule)觸發(fā)器(Trigger)約束類(lèi)型定義約束SQL-Server中定義約束使用下列語(yǔ)句:CREATETABLE創(chuàng)建表時(shí)定義約束ALTERTABLE在已有的表中增加約束列級(jí)約束——

把約束放在一列上表級(jí)約束——

把約束放在若干列上一般格式

CREATETABLE表名(列定義[,列定義]...[其它參數(shù)])

ALTERTABLE表名[ADD(列定義[,列定義]...)]

其中

列定義:列名類(lèi)型[列約束1,…,列約束n]

其它參數(shù):

表級(jí)約束1,…,表級(jí)約束n定義列約束列級(jí)約束的定義格式

[CONSTRAINT

約束名]{PRIMARYKEY[CLUSTERED|NOTCLUSTERED]——主碼約束

|UNIQUE[CLUSTERED|NOTCLUSTERED]——唯一約束

|[FOREIGNKEY]REFERENCES

參照表[(參照列)]

——外碼約束

|DEFAULT

常量表達(dá)式——默認(rèn)約束

|CHECK(邏輯表達(dá)式)——檢查約束}定義表約束表級(jí)約束的定義格式

[CONSTRAINT

約束名]{{PRIMARYKEY|UNIQUE}[CLUSTERED|NOTCLUSTERED][(列[,…n])]——主碼或唯一約束

|[FOREIGNKEY][(列[,…n])]REFERENCES參照表[(參照列[,…n])——外碼約束

|CHECK(邏輯表達(dá)式)——檢查約束}定義約束實(shí)例CREATETABLEstudent

(SNOintNOTNULLCONSTRAINTStu_idPRIMARYKEY,Snamechar(10)NOTNULL,Sageint,Sphonechar(13)CONSTRAINTP_noCHECK(P_noLIKE

‘(0551)[0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)

)定義外部碼約束ALTERTABLE[dbo].[sc]DROPCONSTRAINTFK_sc_cGOALTERTABLE[dbo].[sc]DROPCONSTRAINTFK_sc_sGOifexists(select*fromsysobjectswhereid=object_id(N'[dbo].[c]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[c]GOifexists(select*fromsysobjectswhereid=object_id(N'[dbo].[s]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[s]GOifexists(select*fromsysobjectswhereid=object_id(N'[dbo].[sc]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[sc]GOCREATETABLE[dbo].[c]( [cno][char](10)NOTNULL, [cname][char](10)NOTNULL, [pcno][char](10)NULL)ON[PRIMARY]GOCREATETABLE[dbo].[s]( [sno][char](10)NOTNULL, [sname][char](10)NOTNULL, [sex][char](2)NOTNULL, [age][decimal](18,0)NULL)ON[PRIMARY]GOCREATETABLE[dbo].[sc]( [sno][char](10)NOTNULL, [cno][char](10)NOTNULL, [g][decimal](18,0)NULL)ON[PRIMARY]GOALTERTABLE[dbo].[c]WITHNOCHECKADD CONSTRAINT[PK_c]PRIMARYKEYNONCLUSTERED ([cno])ON[PRIMARY]GOALTERTABLE[dbo].[s]WITHNOCHECKADD CONSTRAINT[PK_s]PRIMARYKEYNONCLUSTERED ([sno])ON[PRIMARY]GOALTERTABLE[dbo].[sc]WITHNOCHECKADD CONSTRAINT[PK_sc]PRIMARYKEYNONCLUSTERED ([sno],[cno] )ON[PRIMARY]GOALTERTABLE[dbo].[sc]ADD CONSTRAINT[FK_sc_c]FOREIGNKEY ([cno] )REFERENCES[dbo].[c]([cno] ), CONSTRAINT[FK_sc_s]FOREIGNKEY ( [sno] )REFERENCES[dbo].[s]( [sno] )GO默認(rèn)和規(guī)則默認(rèn)(Default)在創(chuàng)建表時(shí),通過(guò)使用列級(jí)DEFAULT約束說(shuō)明創(chuàng)建一種數(shù)據(jù)庫(kù)對(duì)象,通過(guò)系統(tǒng)存儲(chǔ)過(guò)程綁定到列上,也可綁定到用戶自定義的類(lèi)型上。

CREATEDEFAULT默認(rèn)名AS常量表達(dá)式規(guī)則(Rule)也是一種數(shù)據(jù)庫(kù)對(duì)象,同樣通過(guò)系統(tǒng)存儲(chǔ)過(guò)程綁定到列上,也可綁定到用戶自定義的類(lèi)型上。

CREATERULE規(guī)則名AS條件表達(dá)式

注意:默認(rèn)和規(guī)則對(duì)象創(chuàng)建后可以反復(fù)使用,也可取消ifexists(select*fromsysobjectswhereid=object_id(N'[dbo].[age_rule]')andOBJECTPROPERTY(id,N'IsRule')=1)droprule[dbo].[age_rule]GOcreaterule[age_rule]as@age>15and@age<30GO存儲(chǔ)過(guò)程定義存儲(chǔ)過(guò)程是經(jīng)過(guò)預(yù)編譯的T-SQL語(yǔ)句的集合。存放在數(shù)據(jù)庫(kù)中。分類(lèi)系統(tǒng)存儲(chǔ)過(guò)程用戶存儲(chǔ)過(guò)程目的:充分發(fā)揮數(shù)據(jù)庫(kù)服務(wù)器的功能,盡量減少網(wǎng)絡(luò)上的阻塞。是對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)功能的有力擴(kuò)充。存儲(chǔ)過(guò)程示例CREATEPROCEDURESP_GETEMP(@SALARY)ASIF@SALARY=NULLBEGIN PRINT“必須輸入數(shù)值作為參數(shù)!”ENDRETURN13IFNOTEXISTS(SELECT*FROMEMPLOYEEWHERESALARY>@SALARY)BEGIN PRINT“沒(méi)有滿足條件的記錄!”ENDRETURN–13SELECT*FROMEMPLOYEEWHERESALARY>@SALARYReptq1(pubs)CREATEPROCEDUREreptq1ASselectpub_id,title_id,price,pubdatefromtitleswherepriceisNOTNULLorderbypub_idCOMPUTEavg(price)BYpub_idCOMPUTEavg(price)reptq2(pubs)CREATEPROCEDUREreptq2ASselecttype,pub_id,titles.title_id,au_ord,Name=substring(au_lname,1,15),ytd_salesfromtitles,authors,titleauthorwheretitles.title_id=titleauthor.title_idANDauthors.au_id=titleauthor.au_idANDpub_idisNOTNULLorderbypub_id,typeCOMPUTEavg(ytd_sales)BYpub_id,typeCOMPUTEavg(ytd_sales)BYpub_idreptq3(pubs)CREATEPROCEDUREreptq3@lolimitmoney,@hilimitmoney,@typechar(12)ASselectpub_id,type,title_id,pricefromtitleswhereprice>@lolimitANDprice<@hilimitANDtype=@typeORtypeLIKE'%cook%'orderbypub_id,typeCOMPUTEcount(title_id)BYpub_id,type必須先寫(xiě)日志文件,后寫(xiě)數(shù)據(jù)庫(kù)。觸發(fā)器觸發(fā)器(Trigger)

——

一種特殊類(lèi)型的存儲(chǔ)過(guò)程(事件觸發(fā)),被看作一種高級(jí)的保證數(shù)據(jù)完整性的方法。觸發(fā)器的執(zhí)行在特定的表上定義,與表密不可分,保護(hù)表中的數(shù)據(jù)。當(dāng)有操作針對(duì)觸發(fā)器表時(shí),該表相應(yīng)的觸發(fā)器就自動(dòng)觸發(fā)執(zhí)行。觸發(fā)器有三種類(lèi)型:

插入類(lèi)觸發(fā)器、刪除類(lèi)觸發(fā)器、更新類(lèi)觸發(fā)器

用途:維護(hù)行級(jí)數(shù)據(jù)完整性,可以包含復(fù)雜的過(guò)程邏輯,強(qiáng)制比CHECK約束更復(fù)雜的數(shù)據(jù)完整性。一個(gè)表上,每種類(lèi)型的觸發(fā)器只能定義一個(gè),最多三個(gè)。觸發(fā)器(續(xù))觸發(fā)器的應(yīng)用(只能建立在基本表上)可以通過(guò)級(jí)聯(lián)的方式對(duì)相關(guān)的表進(jìn)行修改可以禁止或撤消違反參照完整性的修改實(shí)現(xiàn)更加復(fù)雜的限制建立觸發(fā)器語(yǔ)句CREATETRIGGER<觸發(fā)器名>ON<表名>FOR{INSERT|DELETE|UPDATE}AS[IFUPDATE(列名)]<SQL語(yǔ)句>觸發(fā)器之例(插入觸發(fā)器)CREATETRIGGERtitle_triggerONtitlesFORINSERTASPRINT”插入一個(gè)新的titles記錄?!庇|發(fā)器之例(刪除觸發(fā)器)CREATETRIGGERw_del_triggerONwarehouseFORDELETEASDELETEEMPLOYEEFROMEMPLOYEEe,deleteddWHEREe.whno=d.whnoCREATETRIGGERS_del_triggerONSFORDELETEASDELETESCFROMSC,deleteddWHERESC.Sno=d.Sno觸發(fā)器之例(插入觸發(fā)器)CREATETRIGGERe_ins_triggerONEMPLOYEEFORINSERTASIF(SELECTCOUNT(*)FROMwarehousew,insertediWHEREw.whno=i.whno)=0BEGIN RAISERROR“非法倉(cāng)庫(kù)號(hào)!”

ROLLBACKTRANSACTION END觸發(fā)器之例(更新觸發(fā)器)CREATETRIGGERE_upd_triggerONEMPLOYEEFORUPDATEASDECLARE@WH_NOCHAR(4)IFUPDATE(WHNO)BEGINIF(SELECTCOUNT(*)FROMwarehousew,insertediWHEREw.whno=i.whno)=0BEGIN RAISERROR“非法倉(cāng)庫(kù)號(hào)!”

ROLLBACKTRANSACTION END

觸發(fā)器之例(更新觸發(fā)器)ELSEBEGIN SELECT@WH_NO=WHNO IF@WH_NO=“WH2” UPDATEEMPLOYEE SETSALARY=SALARY*1.1 FROMEMPLOYEEE,INSERTEDI WHEREE.EMP_ID=I.EMP_IDENDEND8.3并發(fā)控制一、DB恢復(fù)和并發(fā)控制的單位—事務(wù)Transaction)事務(wù)由一組動(dòng)作組成,可以定義為或全部被執(zhí)行或全部不被執(zhí)行的一組操作序列。是一個(gè)不可分割的工作單位,一條或一組SQL語(yǔ)句事務(wù)的四個(gè)屬性(ACID特性):原子性——

事務(wù)是不可分的原子工作一致性——

事務(wù)必須使DB從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)隔離性——

事務(wù)的執(zhí)行不被其它事務(wù)干擾持續(xù)性——

即永久性,事務(wù)一旦提交,DB中數(shù)據(jù)的改變就應(yīng)該是永久的定義事務(wù)SQL中定義事務(wù)的語(yǔ)句:BEGINTRANSACTION事務(wù)開(kāi)始COMMIT提交事務(wù)ROLLBACK撤消事務(wù)(回滾)SQL-Server提供的的事務(wù)控制語(yǔ)句:BEGINTRANSACTION事務(wù)開(kāi)始COMMITTRANSACTION提交事務(wù)ROLLBACKTRANSACTION撤消事務(wù)SAVETRANSACTION在事務(wù)中設(shè)保存點(diǎn)二、并發(fā)操作與數(shù)據(jù)的不一致性例:飛機(jī)訂票系統(tǒng)中的訂票事務(wù)

設(shè)訂票數(shù)據(jù)庫(kù)為:R(座位號(hào),已售標(biāo)志,訂票人)組成事務(wù)的兩個(gè)動(dòng)作:查找、登記兩個(gè)訂票點(diǎn)同時(shí)訂票,構(gòu)成并發(fā)事務(wù),可能的順序是:甲查找:找到未出售的A座位號(hào);乙查找:找到未出售的A座位號(hào);甲登記:做A座位已售標(biāo)記,填寫(xiě)訂票人王;乙登記:做A座位已售標(biāo)記,填寫(xiě)訂票人李;導(dǎo)致一票兩售情況。數(shù)據(jù)的不一致性并發(fā)操作帶來(lái)的三類(lèi)數(shù)據(jù)的不一致性

(1)丟失修改兩個(gè)事務(wù)讀入同一數(shù)據(jù)并修改,前一個(gè)修改丟失。

(2)不可重讀某事務(wù)兩次讀取同樣的數(shù)據(jù)結(jié)果不一樣。

(3)污讀讀“臟”數(shù)據(jù),即讀入了已被撤消的不正確的數(shù)據(jù)。數(shù)據(jù)的不一致性實(shí)例丟失修改例

T1:讀A=16T2:讀A=16 T1:A←A-1,寫(xiě)回A=15T2:A←A-1,寫(xiě)回A=15數(shù)據(jù)的不一致性實(shí)例不可重讀例

T1:檢索讀A=50,讀B=100,求和=150T2:更新讀B=100,B←B+20,寫(xiě)回B=120T1:驗(yàn)算讀A=50,讀B=120,求和=170(錯(cuò))污讀例

T1:更新讀C=100,C←C2,寫(xiě)回C=200T2:檢索讀C=200T1:撤消ROLLBACK,恢復(fù)C=100

解決的辦法(1)通過(guò)調(diào)度

正確安排并發(fā)諸事務(wù)中各操作的順序,避免上述的數(shù)據(jù)不一致,這種安排稱(chēng)為調(diào)度。如飛機(jī)訂票調(diào)整順序?yàn)椋杭撞檎?;甲登記;乙查找;乙登記?/p>

(2)采用封鎖機(jī)制

如飛機(jī)訂票:事務(wù)甲LockR事務(wù)乙LockR

查找查找登記登記

UnlockRUnlockR并發(fā)操作的調(diào)度系統(tǒng)對(duì)并發(fā)事務(wù)中并行操作的不同調(diào)度會(huì)產(chǎn)生不同結(jié)果:

例:事務(wù)T1:讀B;A=B+1;寫(xiě)回A;事務(wù)T2:讀A;B=A+1;寫(xiě)回B;設(shè)A初值為10,B初值為2,四種不同的調(diào)度策略:串行調(diào)度1:按先做T1后做T2的順序執(zhí)行執(zhí)行結(jié)果為:A=3;B=4

串行調(diào)度2:按先做T2后做T1的順序執(zhí)行執(zhí)行結(jié)果為:A=12;B=11

并行調(diào)度1、并行調(diào)度2:T1、T2交錯(cuò)執(zhí)行,結(jié)果不確定

讀B=2AB+1回寫(xiě)A=3讀A=10BA+1回寫(xiě)B(tài)=11事務(wù)T1事務(wù)T2讀B=2AB+1回寫(xiě)A=3等待等待等待讀A=3BA+1回寫(xiě)B(tài)=4事務(wù)T1事務(wù)T2不可串行化的調(diào)度可串行化的調(diào)度可串行性不同的調(diào)度策略會(huì)產(chǎn)生不同結(jié)果,哪些正確?

一個(gè)事務(wù)正?;蝾A(yù)想的運(yùn)行結(jié)果是:

——

運(yùn)行過(guò)程中沒(méi)有其它事務(wù)在同時(shí)運(yùn)行所得到的結(jié)果。因此,串行調(diào)度策略一定是正確的。

結(jié)論:幾個(gè)事務(wù)并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與某一串行執(zhí)行結(jié)果相同。我們稱(chēng)這種并發(fā)調(diào)度策略為可串行化(serializable)的調(diào)度

可串行性(serializability)

是并行事務(wù)正確性的唯一準(zhǔn)則。為保證并發(fā)操作的正確性,DBMS的并發(fā)控制機(jī)制必須提供一定的手段保證調(diào)度的可串行化。

三、封鎖封鎖——事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象操作前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后,事務(wù)T對(duì)該對(duì)象就有了一定的控制,在事務(wù)T釋放它的鎖之前,其它事務(wù)不能更新此對(duì)象。封鎖粒度——

封鎖對(duì)象的大小。

封鎖對(duì)象可以是:屬性值、元組、關(guān)系、索引項(xiàng)、索引、數(shù)據(jù)庫(kù)等邏輯單元;頁(yè)、塊等物理單元。

注意:封鎖粒度與系統(tǒng)的并發(fā)度和并發(fā)控制的開(kāi)銷(xiāo)密切相關(guān),關(guān)系如下:封鎖粒度大并發(fā)度小開(kāi)銷(xiāo)小封鎖粒度小并發(fā)度高開(kāi)銷(xiāo)大并發(fā)控制的重要技術(shù)

基本的封鎖類(lèi)型兩種基本的封鎖類(lèi)型

排它鎖(eXclusivelockX鎖)

——

寫(xiě)鎖,獨(dú)占性,即若事務(wù)T對(duì)數(shù)據(jù)對(duì)象R加了X鎖,則除T外其它事務(wù)一概不能使用R(包括讀和修改),直到T釋放X鎖。共享鎖(SharelockS鎖)

——

讀鎖,共享性,即若事務(wù)T對(duì)數(shù)據(jù)對(duì)象R加了S鎖,則T只能讀R,不能修改R,其它事務(wù)仍可以對(duì)R加S鎖,但不能加X(jué)鎖,直到T釋放R上的S鎖。封鎖類(lèi)型的相容矩陣

三級(jí)封鎖協(xié)議保證數(shù)據(jù)處理一致性的封鎖協(xié)議——三級(jí)封鎖協(xié)議

(1)一級(jí)封鎖協(xié)議事務(wù)T在修改數(shù)據(jù)R前必須加X(jué)鎖,直到整個(gè)事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括:commit、rollback

既防止丟失修改,又保證事務(wù)T是可恢復(fù)的

(2)二級(jí)封鎖協(xié)議在一級(jí)封鎖協(xié)議的內(nèi)容上,事務(wù)T在讀取數(shù)據(jù)R前必須對(duì)R加S鎖,讀完后釋放。除防止丟失修改,還防止讀入“臟”數(shù)據(jù)(3)三級(jí)封鎖協(xié)議在一級(jí)封鎖協(xié)議的內(nèi)容上,事務(wù)T在讀取數(shù)據(jù)R前必須對(duì)R加S鎖,直到整個(gè)事務(wù)結(jié)束才釋放。除防止丟失修改、防止讀入“臟”數(shù)據(jù),進(jìn)一步保證了數(shù)據(jù)的可重讀。不同級(jí)別的封鎖協(xié)議√√√√√√√√√√√

兩段鎖協(xié)議保證并行調(diào)度可串行性的封鎖協(xié)議——兩段鎖協(xié)議兩段鎖協(xié)議規(guī)定:

在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫(xiě)操作之前,事務(wù)首先要獲得對(duì)該數(shù)據(jù)的封鎖;而且在釋放一個(gè)封鎖之后,事務(wù)不再獲得任何其他封鎖。其“兩段”的含義是:事務(wù)分為兩個(gè)階段

第一階段是獲得封鎖,稱(chēng)擴(kuò)展階段;第二階段是釋放封鎖。稱(chēng)收縮階段。如:前一個(gè)封鎖序列遵循兩段鎖協(xié)議lockA...lockB…lockC…unlockB…unlockA…unlockClockA...unlockA…lockB…lockC…unlockC…unlockB所有遵循兩段鎖協(xié)議的事務(wù),其并發(fā)執(zhí)行的結(jié)果一定正確。充分條件

四、活鎖和死鎖活鎖“永遠(yuǎn)”等待避免活鎖的簡(jiǎn)單方法:先來(lái)先服務(wù)即排隊(duì)等待死鎖循環(huán)等待解決死鎖的方法:

1.預(yù)防死鎖

(1)一次封鎖法——每個(gè)事務(wù)一次將所要的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。

(2)順序封鎖法——所有事務(wù)按預(yù)先規(guī)定的封鎖順序?qū)?shù)據(jù)對(duì)象實(shí)行封鎖。

2.

診斷與解除死鎖——不采用任何措施預(yù)防死鎖,而是通過(guò)某種方法診斷,一旦發(fā)現(xiàn)系統(tǒng)中存在死鎖,選擇等待圈中處理死鎖代價(jià)最小的事務(wù),將其撤銷(xiāo),釋放所持資源。死鎖活鎖五、SQL-Server的封鎖機(jī)制SQL-Server使用鎖定資源的方法控制用戶并發(fā)操作。鎖定的資源粒度包括:

RID(行標(biāo)識(shí)符)、鍵值、頁(yè)面、區(qū)域、表、數(shù)據(jù)庫(kù)鎖定模式共享鎖、更新鎖、排它(獨(dú)占)鎖、結(jié)構(gòu)鎖、意向鎖死鎖的處理自動(dòng)定期搜索和處理死鎖。當(dāng)搜索到鎖定請(qǐng)求環(huán)時(shí),按死鎖優(yōu)先級(jí),結(jié)束一個(gè)代價(jià)最低的事務(wù),回滾被中斷的事務(wù),向應(yīng)用程序返回1205號(hào)錯(cuò)誤,而未被中斷的事務(wù)繼續(xù)運(yùn)行。

設(shè)定死鎖優(yōu)先級(jí);

設(shè)定鎖定請(qǐng)求狀態(tài)的最長(zhǎng)等待時(shí)間。8.4數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)恢復(fù)——由于硬件或軟件的故障數(shù)據(jù)庫(kù)遭到破壞后,將數(shù)據(jù)庫(kù)還原到某種邏輯一致的狀態(tài)的功能稱(chēng)為數(shù)據(jù)庫(kù)恢復(fù)。恢復(fù)的手段:數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)、登記日志文件、在事務(wù)執(zhí)行中設(shè)置檢查點(diǎn)等。一、故障的種類(lèi)1)事務(wù)內(nèi)部故障2)系統(tǒng)故障(軟故障)3)介質(zhì)故障(硬故障)4)計(jì)算器病毒各類(lèi)故障對(duì)數(shù)據(jù)庫(kù)的影響:數(shù)據(jù)庫(kù)本身被破壞數(shù)據(jù)庫(kù)處于不一致?tīng)顟B(tài)二、恢復(fù)技術(shù)恢復(fù)就是利用存儲(chǔ)在系統(tǒng)其他地方的冗余數(shù)據(jù)來(lái)修復(fù)數(shù)據(jù)庫(kù)中被破壞的或不正確的數(shù)據(jù)。恢復(fù)機(jī)制涉及的兩個(gè)關(guān)鍵問(wèn)題:如何建立冗余數(shù)據(jù)?如何利用這些冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫(kù)恢復(fù)?數(shù)據(jù)庫(kù)恢復(fù)的基本技術(shù)——

轉(zhuǎn)儲(chǔ)、日志文件數(shù)據(jù)轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ)——

將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到另一存儲(chǔ)設(shè)備(磁帶、磁盤(pán))上保存起來(lái)的過(guò)程。這些備用的數(shù)據(jù)文本稱(chēng)為后援副本。一旦系統(tǒng)發(fā)生故障,數(shù)據(jù)庫(kù)遭到破壞,將后援副本重新裝入,把數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)。正常運(yùn)行恢復(fù)TaTbTf故障點(diǎn)轉(zhuǎn)儲(chǔ)重裝后援副本運(yùn)行事務(wù)重新運(yùn)行事務(wù)數(shù)據(jù)轉(zhuǎn)儲(chǔ)(續(xù))轉(zhuǎn)儲(chǔ)周期:月/次、周/次、天/次注意:轉(zhuǎn)儲(chǔ)非常耗費(fèi)時(shí)間、資源,不能頻繁進(jìn)行。轉(zhuǎn)儲(chǔ)的分類(lèi)

轉(zhuǎn)儲(chǔ)的兩種狀態(tài):靜態(tài)轉(zhuǎn)儲(chǔ)、動(dòng)態(tài)轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ)的兩種方式:海量轉(zhuǎn)儲(chǔ)、增量轉(zhuǎn)儲(chǔ)因此,轉(zhuǎn)儲(chǔ)方法分為四類(lèi):靜態(tài)海量轉(zhuǎn)儲(chǔ)靜態(tài)增量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ)的優(yōu)缺點(diǎn):恢復(fù)方法簡(jiǎn)單可靠系統(tǒng)開(kāi)銷(xiāo)大,不能經(jīng)常進(jìn)行登記日志文件日志文件

——

記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件。日志記錄的主要內(nèi)容:事務(wù)標(biāo)識(shí)、操作類(lèi)型、操作對(duì)象、更新前數(shù)據(jù)的舊值、更新后數(shù)據(jù)的新值以及恢復(fù)過(guò)程用的其它輔助信息登記日志文件的原則:嚴(yán)格按照并行事務(wù)執(zhí)行的時(shí)間次序登記;用轉(zhuǎn)儲(chǔ)和日志文件恢復(fù)數(shù)據(jù)庫(kù)正常運(yùn)行恢復(fù)TaTbTf故障點(diǎn)轉(zhuǎn)儲(chǔ)重裝后援副本運(yùn)行事務(wù)利用日志文件恢復(fù)事務(wù)登記日志文件登記日志文件繼續(xù)運(yùn)行事務(wù)的恢復(fù)步驟:找出故障發(fā)生時(shí)已結(jié)束和未結(jié)束的事務(wù);對(duì)未結(jié)束的事務(wù)UNDO(撤銷(xiāo)),對(duì)已結(jié)束的事務(wù)REDO(重做)。例:時(shí)間Tc檢查點(diǎn)Tf故障點(diǎn)

T1T2T3T4T5UNDOUNDOREDOREDO8.5數(shù)據(jù)庫(kù)復(fù)制與數(shù)據(jù)庫(kù)鏡象數(shù)據(jù)庫(kù)復(fù)制

——復(fù)制主要用于分布式結(jié)構(gòu)的數(shù)據(jù)庫(kù)中,它在多個(gè)場(chǎng)地保留多個(gè)數(shù)據(jù)庫(kù)副本,是使數(shù)據(jù)庫(kù)更具容錯(cuò)性。

DBMS采用一定的手段保證用戶對(duì)DB的修改及時(shí)反映到所有副本上。數(shù)據(jù)庫(kù)鏡象

——

解決介質(zhì)故障。根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤(pán)上,每當(dāng)數(shù)據(jù)庫(kù)更新時(shí),DBMS會(huì)自動(dòng)把更新后的數(shù)據(jù)復(fù)制過(guò)去,自動(dòng)保證鏡象數(shù)據(jù)與主數(shù)據(jù)的一致性。出現(xiàn)故障不必關(guān)閉系統(tǒng)和重裝數(shù)據(jù)副本。本章小結(jié)安全性完整性并發(fā)控制數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)復(fù)制與鏡像本章作業(yè)P2555,6,12,14《數(shù)據(jù)庫(kù)系統(tǒng)概論》P2611、3、4、5、6、7、8 P2802、3、4、5、6、13、14 P3001、7、8、9 P3131、2、3、6第二章數(shù)據(jù)模型與概念模型概述數(shù)據(jù)模型的三要素現(xiàn)實(shí)世界的數(shù)據(jù)描述E-R方法概念數(shù)據(jù)模型(略)數(shù)據(jù)模型2.1概述

客觀事物→數(shù)據(jù)庫(kù)系統(tǒng)中的形式化的結(jié)構(gòu)數(shù)據(jù)?

數(shù)據(jù)模型(DataModel)

數(shù)據(jù)庫(kù)系統(tǒng)中用于提供信息表示和操作手段的工具。

對(duì)現(xiàn)實(shí)世界中的數(shù)據(jù)和信息進(jìn)行抽象、表示和處理的工具。三個(gè)要求:

較真實(shí)地模擬現(xiàn)實(shí)世界

容易為人所理解便于在計(jì)算機(jī)上實(shí)現(xiàn)2.1概述(續(xù))數(shù)據(jù)模型按應(yīng)用目的分兩個(gè)層次:

E-R模型——

用E-R圖描述現(xiàn)實(shí)世界的信息結(jié)構(gòu)(概念數(shù)據(jù)模型——

信息模型,按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì))數(shù)據(jù)模型——

按計(jì)算機(jī)觀點(diǎn)對(duì)數(shù)據(jù)建模,主要用于DBMS的實(shí)現(xiàn)數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心和基礎(chǔ)。2.2數(shù)據(jù)模型的三要素?cái)?shù)據(jù)結(jié)構(gòu)——描述系統(tǒng)的靜態(tài)特性

是所研究的對(duì)象類(lèi)型的集合數(shù)據(jù)庫(kù)由這些對(duì)象組成,包括:與數(shù)據(jù)類(lèi)型、內(nèi)容、性質(zhì)有關(guān)的對(duì)象;與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象數(shù)據(jù)操作——描述系統(tǒng)的動(dòng)態(tài)特性

指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作集合,包括操作和操作規(guī)則要定義操作的確切含義、符號(hào)、規(guī)則以及實(shí)現(xiàn)操作的語(yǔ)言2.2數(shù)據(jù)模型的三要素(續(xù))數(shù)據(jù)的約束條件——保證數(shù)據(jù)的正確、有效、相容

指一組完整性規(guī)則的集合即數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約、依存規(guī)則以及語(yǔ)義約束條件

通常按數(shù)據(jù)結(jié)構(gòu)的類(lèi)型命名數(shù)據(jù)模型2.3現(xiàn)實(shí)世界的數(shù)據(jù)描述

三個(gè)世界:現(xiàn)實(shí)世界——

信息世界——

機(jī)器世界現(xiàn)實(shí)世界信息世界

概念數(shù)據(jù)模型機(jī)器世界DBMS支持的數(shù)據(jù)模型加工轉(zhuǎn)換認(rèn)識(shí)抽象現(xiàn)實(shí)世界的基本概念實(shí)體/個(gè)體(Entity)客觀存在并且可以相互區(qū)別的事物實(shí)體的特征(EntityCharacteristic)實(shí)體都具有某些特征實(shí)體集/總體(EntitySet)具有相同特征的實(shí)體的集合聯(lián)系(Relationship)實(shí)體集內(nèi)部的聯(lián)系和實(shí)體集之間的聯(lián)系信息世界(概念模型)的基本概念實(shí)體(Entity)——對(duì)象的實(shí)例客觀存在并且可以相互區(qū)別的事物屬性(Attribute)實(shí)體所具有的某一方面的特征的抽象表示碼(Key)唯一標(biāo)識(shí)實(shí)體的屬性或?qū)傩越M域(Domain)屬性的取值范圍實(shí)體型(EntityType)——對(duì)象用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體實(shí)體集(EntitySet)同型實(shí)體的集合聯(lián)系(Relationship)實(shí)體集內(nèi)部的聯(lián)系和實(shí)體集之間的聯(lián)系機(jī)器世界數(shù)據(jù)項(xiàng)Item記錄Record記錄型RecordType文件File關(guān)鍵字key數(shù)據(jù)模型三個(gè)世界術(shù)語(yǔ)對(duì)照客觀事物之間的聯(lián)系

現(xiàn)實(shí)世界的事物之間是彼此有聯(lián)系的,這種聯(lián)系反映在信息世界中為兩類(lèi):

實(shí)體內(nèi)部的聯(lián)系

各種實(shí)體之間的聯(lián)系

兩個(gè)實(shí)體之間的聯(lián)系分三類(lèi):

1:1一對(duì)一聯(lián)系

1:n(n>0)一對(duì)多聯(lián)系

m:n(n,m>0)多對(duì)多聯(lián)系一對(duì)一聯(lián)系如果實(shí)體集A與實(shí)體集B之間存在聯(lián)系,并且對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱(chēng)實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系。例:班級(jí)與班長(zhǎng)一對(duì)多聯(lián)系如果實(shí)體集A與實(shí)體集B之間存在聯(lián)系,并且對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n(n>=0)個(gè)實(shí)體與之聯(lián)系,反之對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多有一個(gè)實(shí)體與之聯(lián)系,則稱(chēng)實(shí)體集A與實(shí)體集B具有一對(duì)多聯(lián)系。例:班級(jí)與學(xué)生班主任與學(xué)生多對(duì)多聯(lián)系如果實(shí)體集A與實(shí)體集B之間存在聯(lián)系,并且對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n(n>=0)個(gè)實(shí)體與之聯(lián)系,反之對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有n(n>=0)個(gè)實(shí)體與之聯(lián)系,則稱(chēng)實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系。例:學(xué)生與教師學(xué)生與課程供應(yīng)商、項(xiàng)目、零件2.4實(shí)體-聯(lián)系方法(E-R方法)實(shí)體聯(lián)系方法(Entity-RelationshipApproach)

——用E-R圖描述現(xiàn)實(shí)世界的信息結(jié)構(gòu)(也稱(chēng)E-R模型,概念模型)E-R圖中的符號(hào)及含義表示實(shí)體型

表示實(shí)體之間的聯(lián)系

表示實(shí)體或聯(lián)系的屬性實(shí)體名聯(lián)系名屬性名E-R圖示例

兩個(gè)實(shí)體型(集)之間的聯(lián)系領(lǐng)導(dǎo)班級(jí)1:1聯(lián)系1:n聯(lián)系m:n聯(lián)系班長(zhǎng)n班級(jí)課程學(xué)生學(xué)生選課組成111mn三個(gè)(兩個(gè)以上)實(shí)體型(集)之間聯(lián)系項(xiàng)目n供應(yīng)商零件供應(yīng)pm供應(yīng)量三個(gè)(兩個(gè)以上)實(shí)體型(集)之間聯(lián)系(續(xù))教員n課程參考書(shū)講授pm同一實(shí)體型(集)內(nèi)部的聯(lián)系n職工領(lǐng)導(dǎo)1實(shí)體型及屬性圖學(xué)生學(xué)號(hào)姓名性別年齡某工廠庫(kù)存管理概念模型實(shí)體:倉(cāng)庫(kù)、職工、供應(yīng)商、零件、項(xiàng)目管理語(yǔ)義一個(gè)倉(cāng)庫(kù)有多名職工,每個(gè)職工只在一個(gè)倉(cāng)庫(kù)工作一個(gè)倉(cāng)庫(kù)可以存放多種零件,一種零件可在多個(gè)倉(cāng)庫(kù)存放一個(gè)供應(yīng)商可以供應(yīng)多個(gè)項(xiàng)目多種零件,每個(gè)項(xiàng)目可以使用多個(gè)供應(yīng)商供應(yīng)的多種零件,每種零件可以由多個(gè)供應(yīng)商供應(yīng),在多個(gè)項(xiàng)目中使用

供應(yīng)商項(xiàng)目零件倉(cāng)庫(kù)職工庫(kù)存供應(yīng)工作領(lǐng)導(dǎo)商號(hào)名稱(chēng)地址電話帳號(hào)工號(hào)庫(kù)號(hào)面積電話姓名年齡職稱(chēng)供應(yīng)量庫(kù)存量描述單價(jià)項(xiàng)目號(hào)預(yù)算開(kāi)工日期零件號(hào)名稱(chēng)規(guī)格n1mnnnmp1

某工廠庫(kù)存管理E-R圖

供應(yīng)商項(xiàng)目零件倉(cāng)庫(kù)職工庫(kù)存供應(yīng)工作領(lǐng)導(dǎo)供應(yīng)量庫(kù)存量n1mnnnmp1

某工廠庫(kù)存管理E-R圖(簡(jiǎn))概念數(shù)據(jù)模型中的基本聯(lián)系

常見(jiàn)的聯(lián)系類(lèi)型1:n,m:n聯(lián)系類(lèi)型取決于現(xiàn)實(shí)世界的管理方法(語(yǔ)義)例:倉(cāng)庫(kù)與零部件(內(nèi)容見(jiàn)下頁(yè))

1:11:mm:n相同實(shí)體,不同語(yǔ)義,不同的設(shè)計(jì)結(jié)果倉(cāng)庫(kù)號(hào)城市面積WH1北京500WH2上海450WH3廣州200WH4重慶300倉(cāng)庫(kù)文件實(shí)例部件號(hào)部件名稱(chēng)P1顯示卡P2聲卡P3CPUP4內(nèi)存條零部件文件實(shí)例倉(cāng)庫(kù)號(hào)部件號(hào)數(shù)量WH1P1100WH2P2120WH3P3180WH4P4200庫(kù)存文件(一對(duì)一)合并后(一對(duì)一)倉(cāng)庫(kù)號(hào)城市面積部件號(hào)部件名稱(chēng)數(shù)量WH1北京500P1顯示卡100WH2上海450P2聲卡120WH3廣州200P3CPU180WH4重慶300P4內(nèi)存條200倉(cāng)庫(kù)號(hào)部件號(hào)數(shù)量WH1P1100WH1P2120WH2P3180WH2P4200庫(kù)存文件(一對(duì)多)錯(cuò)誤合并后(一對(duì)多)倉(cāng)庫(kù)號(hào)城市面積部件號(hào)部件名稱(chēng)數(shù)量WH1北京500P1顯示卡100WH1北京500P2聲卡120WH2上海450P3CPU180WH2上海450P4內(nèi)存條200WH3廣州200WH4重慶300

信息重復(fù)存儲(chǔ),操作異常正確合并后(一對(duì)多)倉(cāng)庫(kù)號(hào)部件號(hào)部件名稱(chēng)數(shù)量WH1P1顯示卡100WH1P2聲卡120WH2P3CPU180WH2P4內(nèi)存條200

只合并零部件與庫(kù)存文件倉(cāng)庫(kù)號(hào)部件號(hào)數(shù)量WH1P1100WH1P2120WH2P3180WH2P4200WH3P1150WH4P1180WH4P2200WH4P3100WH4P4140庫(kù)存(多對(duì)多)不能合并理解和轉(zhuǎn)換多對(duì)多聯(lián)系多對(duì)多聯(lián)系轉(zhuǎn)換為一對(duì)多聯(lián)系(現(xiàn)在的數(shù)據(jù)庫(kù)系統(tǒng)不直接支持多對(duì)多聯(lián)系)方法:一個(gè)多對(duì)多聯(lián)系→兩個(gè)(多個(gè))一對(duì)多聯(lián)系引入中間實(shí)體例:學(xué)生、課程:m:n

增加“選課”實(shí)體課程學(xué)生選修1n選課1課程學(xué)生選課mn倉(cāng)庫(kù)W零件PW-IP-I庫(kù)存1m1n零件倉(cāng)庫(kù)庫(kù)存mn概念數(shù)據(jù)模型—實(shí)例企業(yè)“庫(kù)存—訂購(gòu)”數(shù)據(jù)庫(kù)實(shí)體:倉(cāng)庫(kù)、器件、職工、供應(yīng)商、訂單管理模式(語(yǔ)義)E-R圖層次模型和網(wǎng)狀模型統(tǒng)稱(chēng)非關(guān)系模型2.5數(shù)據(jù)模型三種常用的數(shù)據(jù)模型(又稱(chēng)傳統(tǒng)的數(shù)據(jù)模型)層次模型(HierachicalModel)網(wǎng)狀模型(NetworkModel)關(guān)系模型(RelationalModel)層次模型非關(guān)系模型中數(shù)據(jù)結(jié)構(gòu)的單位:基本層次聯(lián)系兩個(gè)記錄以及它們之間的一對(duì)多(包括一對(duì)一)的聯(lián)系用樹(shù)型結(jié)構(gòu)表示各類(lèi)實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型。即:是滿足下列條件的“基本層次聯(lián)系”的集合

1.有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親結(jié)點(diǎn),該結(jié)點(diǎn)為根;

2.其它結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn)。多對(duì)多聯(lián)系不能直接用層次模型表示。代表產(chǎn)品:1970,IBM公司的IMS(InformationManagementSystem)系統(tǒng)例:TS數(shù)據(jù)庫(kù)模型系號(hào)系名地點(diǎn)室號(hào)名稱(chēng)學(xué)號(hào)姓名成績(jī)職工號(hào)姓名職稱(chēng)系D教研室R教師T學(xué)生SR03AITS數(shù)據(jù)庫(kù)模型的一個(gè)值D02計(jì)算機(jī)大樓M9805李山ADSM9805劉文BR02IMSM9805趙思ARTTE345李講師E120張教授E167王助教E128吳教授R01DB網(wǎng)狀模型/網(wǎng)絡(luò)模型用網(wǎng)絡(luò)結(jié)構(gòu)表示各類(lèi)實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型。為加以區(qū)分,排除樹(shù)結(jié)構(gòu),有兩條限制:

1.可以有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親;

2.至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)的雙親結(jié)點(diǎn)。例:專(zhuān)業(yè)系學(xué)生宿舍教研室學(xué)生教師學(xué)生課程工人設(shè)備使用保養(yǎng)關(guān)系模型用關(guān)系(二維表)表示各類(lèi)實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型建立在數(shù)學(xué)基礎(chǔ)上。

例;

學(xué)號(hào)姓名性別系別年齡98001李力男計(jì)算機(jī)1998002劉晨女電子20…98200楊林男自動(dòng)化20學(xué)生關(guān)系名主碼元組(一行)屬性(一列)屬性名

相關(guān)術(shù)語(yǔ)對(duì)照(關(guān)系模型/非關(guān)系模型)關(guān)系模式——

記錄型元組——

記錄值屬性——

數(shù)據(jù)項(xiàng)元組的分量——

數(shù)據(jù)項(xiàng)值主碼——

關(guān)鍵字關(guān)系(表)——

文件關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系(二維表)實(shí)體以及聯(lián)系均用關(guān)系表示關(guān)系模型的數(shù)據(jù)操作關(guān)系操作(集合操作)操作的對(duì)象和結(jié)果都是關(guān)系傳統(tǒng)的集合運(yùn)算專(zhuān)門(mén)的關(guān)系運(yùn)算多種表示方法關(guān)系代數(shù)關(guān)系演算SQL關(guān)系模型的完整性約束條件實(shí)體完整性參照完整性用戶定義的完整性關(guān)系模型的特點(diǎn)建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上設(shè)計(jì)與優(yōu)化有數(shù)學(xué)理論指導(dǎo)概念單一,容易理解實(shí)體和實(shí)體之間的聯(lián)系、操作對(duì)象和結(jié)果都用關(guān)系表示必須是規(guī)范化關(guān)系每個(gè)分量是不可分的數(shù)據(jù)項(xiàng)關(guān)系數(shù)據(jù)操作是集合操作存取路徑對(duì)用戶透明,提高數(shù)據(jù)的獨(dú)立性數(shù)據(jù)聯(lián)系用數(shù)據(jù)冗余實(shí)現(xiàn)E-R圖轉(zhuǎn)為層次模型(1)部門(mén)職工組成部門(mén)職工組成1n項(xiàng)目職工參加mn項(xiàng)目職工組成加入?yún)⒓禹?xiàng)目項(xiàng)目參加項(xiàng)目組成職工加入?yún)⒓禹?xiàng)目E-R圖轉(zhuǎn)為層次模型(2)供應(yīng)商項(xiàng)目供應(yīng)mn項(xiàng)目零件供應(yīng)被用供應(yīng)零件供應(yīng)商使用p供應(yīng)供應(yīng)供應(yīng)項(xiàng)目零件供應(yīng)商供應(yīng)被用使用E-R圖轉(zhuǎn)為網(wǎng)狀數(shù)據(jù)模型學(xué)生S課程C選課mn學(xué)號(hào)姓名性別年齡系別課程號(hào)課程名學(xué)分學(xué)生成績(jī)單(S-SC)學(xué)號(hào)

課程號(hào)成績(jī)學(xué)生選課(SC)學(xué)生(S)課程(C)課程成績(jī)單(C-SC)E-R圖轉(zhuǎn)為關(guān)系數(shù)據(jù)模型學(xué)生S課程C選課mn學(xué)生(S)課程(C)學(xué)生選課(SC)本章小結(jié)信息的三個(gè)世界數(shù)據(jù)模型的三要素實(shí)體與聯(lián)系E-R模型數(shù)據(jù)模型作業(yè)《數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用教程》P35-361,2,4,5補(bǔ)充作業(yè)某工廠中生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成。不同零件所用的原材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉(cāng)庫(kù)中,原材料按照類(lèi)別放在若干倉(cāng)庫(kù)中。請(qǐng)用E-R圖畫(huà)出此工廠產(chǎn)品、零件、材料、倉(cāng)庫(kù)的概念模型。習(xí)題解答試舉出三個(gè)實(shí)例,要求實(shí)體型之間具有一對(duì)一、一對(duì)多、多對(duì)多各種不同的聯(lián)系。1:1學(xué)校與校長(zhǎng);班級(jí)與班長(zhǎng);系與系主任;醫(yī)院與院長(zhǎng);…1:n系與教師;班級(jí)與學(xué)生;車(chē)間與工人;宿舍與學(xué)生;…m:n學(xué)生與課程;教師與課程;醫(yī)生與藥品;病人與藥品;…習(xí)題解答學(xué)校中有若干系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生。每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門(mén)課可有若干學(xué)生選修。用E-R圖畫(huà)出此學(xué)校的信息模型。系教研室班級(jí)教員學(xué)生研究生課程工作指導(dǎo)擁有學(xué)習(xí)學(xué)習(xí)教學(xué)m1n1nmnmn1n1np總體E-R圖系編號(hào)系名辦公樓學(xué)生學(xué)號(hào)姓名性別年齡教員編號(hào)姓名性別年齡教研室職稱(chēng)班級(jí)其他實(shí)體略習(xí)題解答某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成。不同零件所用的原材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉(cāng)庫(kù)中,原材料按照類(lèi)別放在若干倉(cāng)庫(kù)中。請(qǐng)用E-R圖畫(huà)出此工廠產(chǎn)品、零件、材料、倉(cāng)庫(kù)的概念模型??傮wE-R圖產(chǎn)品零件倉(cāng)庫(kù)原材料組成制作庫(kù)存2mnmnnnm1庫(kù)存3庫(kù)存1p1總體E-R圖產(chǎn)品零件倉(cāng)庫(kù)原材料組成制作零件庫(kù)存mnmnnm1材料庫(kù)存p存在的問(wèn)題E-R圖規(guī)范聯(lián)系不能重名聯(lián)系的類(lèi)型要注明區(qū)分實(shí)體(個(gè)體)、實(shí)體集、屬性正確理解客觀世界的對(duì)象注意書(shū)寫(xiě)第九章數(shù)據(jù)庫(kù)管理系統(tǒng)概述周愛(ài)武安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院第九章數(shù)據(jù)庫(kù)管理系統(tǒng)概述概述DBMS的目標(biāo)DBMS的基本功能DBMS系統(tǒng)結(jié)構(gòu)RDBMS產(chǎn)品概述9.1概述

數(shù)據(jù)庫(kù)管理系統(tǒng)

——

DataBaseManagementSystemDBMS是專(zhuān)門(mén)負(fù)責(zé)數(shù)據(jù)庫(kù)管理和維護(hù)的計(jì)算機(jī)軟件系統(tǒng)。DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的功能和性能有決定性的影響。DBMS最基本的功能是正確、安全、可靠地執(zhí)行數(shù)據(jù)庫(kù)語(yǔ)言的語(yǔ)句。DBMS按不同用戶的需要提供多種用戶接口:

交互式SQL接口、嵌入式SQL接口表格語(yǔ)言接口、自然語(yǔ)言查詢接口解釋執(zhí)行的RDBMS結(jié)構(gòu)應(yīng)用1應(yīng)用i接口1...應(yīng)用j應(yīng)用n接口m............數(shù)據(jù)庫(kù)操作系統(tǒng)并發(fā)控制存取機(jī)制恢復(fù)機(jī)制語(yǔ)義分析和查詢處理DDLQLDMLDCL詞法及語(yǔ)法分析器授權(quán)檢查應(yīng)用程序數(shù)據(jù)庫(kù)語(yǔ)言語(yǔ)法樹(shù)存取原語(yǔ)系統(tǒng)調(diào)用I/O命令格式化消息或數(shù)據(jù)消息或數(shù)據(jù)消息或數(shù)據(jù)消息或數(shù)據(jù)狀態(tài)信息或物理塊9.2DBMS的目標(biāo)DBMS應(yīng)盡量滿足以下系統(tǒng)目標(biāo):

1)用戶界面友好

——

用戶界面應(yīng)具有可靠性、簡(jiǎn)單性、靈活性、立即反饋等特性。

用戶界面質(zhì)量直接影響其生命力

2)功能完備

3)效率高

——

三個(gè)方面:計(jì)算機(jī)內(nèi)部資源的效率;DBMS本身的運(yùn)行效率;用戶生產(chǎn)效率。

4)結(jié)構(gòu)清晰

5)開(kāi)放性9.3DBMS的基本功能數(shù)據(jù)庫(kù)定義定義構(gòu)成數(shù)據(jù)庫(kù)結(jié)構(gòu)的各種模式以及它們之間的映射和相關(guān)的約束條件。(提供數(shù)據(jù)定義語(yǔ)言DDL)數(shù)據(jù)庫(kù)操縱接收、分析和執(zhí)行用戶訪問(wèn)DB的各種請(qǐng)求,完成對(duì)DB的檢索、插入、修改、刪除等操作。(提供數(shù)據(jù)操縱語(yǔ)言DML)數(shù)據(jù)庫(kù)運(yùn)行管理控制整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行,包括并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫(kù)內(nèi)部維護(hù)等。數(shù)據(jù)的組織、存儲(chǔ)和管理分門(mén)別類(lèi)的組織、存儲(chǔ)和管理數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等多種數(shù)據(jù)。數(shù)據(jù)庫(kù)的建立和維護(hù)包括數(shù)據(jù)庫(kù)數(shù)據(jù)的初始裝入,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)與恢復(fù),數(shù)據(jù)庫(kù)的重組織與重構(gòu)造、性能的監(jiān)視與分析。數(shù)據(jù)通信接口提供與其他軟件系統(tǒng)進(jìn)行通信的功能。9.4DBMS系統(tǒng)結(jié)構(gòu)DBMS的組成數(shù)據(jù)定義語(yǔ)言(DDL)及其翻譯處理程序數(shù)據(jù)操縱語(yǔ)言(DML)及其翻譯處理程序數(shù)據(jù)庫(kù)運(yùn)行控制程序?qū)嵱贸绦駾BMS的程序模塊結(jié)構(gòu)DBMS的層次結(jié)構(gòu)DBMS數(shù)據(jù)庫(kù)定義數(shù)據(jù)庫(kù)存取數(shù)據(jù)庫(kù)運(yùn)行管理

數(shù)據(jù)組織、存儲(chǔ)、管理數(shù)據(jù)庫(kù)建立維護(hù)和其他完整性定義處理程序保密定義處理程序DDL翻譯處理程序數(shù)據(jù)更新程序數(shù)據(jù)存取程序終端查詢語(yǔ)言處理程序DML語(yǔ)言處理程序數(shù)據(jù)轉(zhuǎn)換公用例程數(shù)據(jù)庫(kù)重構(gòu)造程序轉(zhuǎn)儲(chǔ)程序恢復(fù)程序數(shù)據(jù)庫(kù)初始裝入程序運(yùn)行日志管理程序事務(wù)管理程序并發(fā)控制程序完整性檢查程序安全性控制程序系統(tǒng)初啟程序緩沖區(qū)管理程序存取路徑管理程序與維護(hù)程序文件讀寫(xiě)、數(shù)據(jù)組織DBMS的程序模塊結(jié)構(gòu)RDBMS的層次結(jié)構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)層數(shù)據(jù)存取層語(yǔ)言翻譯處理層用戶層操作系統(tǒng)9.5RDBMS產(chǎn)品概述70年代末以來(lái),新發(fā)展的DBMS產(chǎn)品近90%是關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品小型數(shù)據(jù)庫(kù)系統(tǒng):FoxPro、ACCESS等大型數(shù)據(jù)庫(kù)系統(tǒng):DB2、INGERS、ORACLE、INFORMIX、SYBASE、SQL-ServerRDBMS產(chǎn)品經(jīng)歷的發(fā)展過(guò)程:從集中到分布從單機(jī)到網(wǎng)絡(luò)從支持信息管理到OLTP,再到OLAPRDBMS產(chǎn)品的發(fā)展分為三個(gè)階段聯(lián)機(jī)事務(wù)處理聯(lián)機(jī)分析處理第六章數(shù)據(jù)庫(kù)設(shè)計(jì)周愛(ài)武安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院第六章數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)概述需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施和維護(hù)6.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)設(shè)計(jì)是研究數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),是數(shù)據(jù)庫(kù)在應(yīng)用領(lǐng)域中主要的研究課題。

數(shù)據(jù)庫(kù)設(shè)計(jì)

是指對(duì)一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效的存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(包括信息需求和處理需求)。數(shù)據(jù)庫(kù)設(shè)計(jì)通常在一個(gè)通用的DBMS支持下進(jìn)行。數(shù)據(jù)庫(kù)設(shè)計(jì)包含兩方面的內(nèi)容:

-結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)設(shè)計(jì)數(shù)據(jù)庫(kù)框架或數(shù)據(jù)庫(kù)結(jié)構(gòu)

-行為(處理)設(shè)計(jì)設(shè)計(jì)應(yīng)用程序、事務(wù)處理等數(shù)據(jù)庫(kù)和信息系統(tǒng)數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ)信息系統(tǒng)提供信息、輔助人們對(duì)環(huán)境進(jìn)行控制、進(jìn)行決策(使用者角度)。大量數(shù)據(jù),組織、存儲(chǔ)、維護(hù)、傳輸、檢索。數(shù)據(jù)庫(kù)設(shè)計(jì)是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要部分。數(shù)據(jù)庫(kù)設(shè)計(jì)人員要求應(yīng)該具備多方面的技術(shù)、知識(shí)數(shù)據(jù)庫(kù)的基本知識(shí)和數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí)和程序設(shè)計(jì)的方法和技巧軟件工程的原理和方法應(yīng)用領(lǐng)域的知識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)涉及多學(xué)科的綜合性技術(shù),大工程三分技術(shù)、七分管理,十二分基礎(chǔ)數(shù)據(jù)硬件、軟件和干件(技術(shù)于管理的界面)的結(jié)合數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)行為(處理)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)方法手工試湊法規(guī)范設(shè)計(jì)法新奧爾良方法(四個(gè)階段)基于E-R模型的設(shè)計(jì)方法基于3NF的設(shè)計(jì)方法……數(shù)據(jù)庫(kù)設(shè)計(jì)工具Design2000(ORACLE)PowerDesigner(SYBASE)CASE工具…數(shù)據(jù)庫(kù)設(shè)計(jì)的基本任務(wù)數(shù)據(jù)庫(kù)設(shè)計(jì)的全部含義是基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)的設(shè)計(jì)兩個(gè)定義(狹義和廣義):數(shù)據(jù)庫(kù)結(jié)構(gòu)(模式)設(shè)計(jì)稱(chēng)數(shù)據(jù)庫(kù)設(shè)計(jì);包括結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)的稱(chēng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)信息需求處理需求DBMS與軟、硬件系統(tǒng)特征應(yīng)用程序數(shù)據(jù)模式與數(shù)據(jù)庫(kù)

從結(jié)構(gòu)開(kāi)始設(shè)計(jì),以數(shù)據(jù)模型為核心;結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)密切結(jié)合?,F(xiàn)實(shí)世界業(yè)務(wù)活動(dòng)分析數(shù)據(jù)分析功能模型E-R模型事務(wù)設(shè)計(jì)邏輯設(shè)計(jì)程序說(shuō)明物理設(shè)計(jì)應(yīng)用程序設(shè)計(jì)子模式設(shè)計(jì)調(diào)試和運(yùn)行加載實(shí)驗(yàn)數(shù)據(jù)性能考核滿意?加載數(shù)據(jù)庫(kù)投入運(yùn)行、維護(hù)數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程否是數(shù)據(jù)庫(kù)設(shè)計(jì)步驟綜合各種常用的數(shù)據(jù)庫(kù)規(guī)范設(shè)計(jì)方法,將數(shù)據(jù)庫(kù)設(shè)計(jì)分為六個(gè)階段:數(shù)據(jù)庫(kù)物理設(shè)計(jì)數(shù)據(jù)庫(kù)運(yùn)行維護(hù)數(shù)據(jù)庫(kù)實(shí)施邏輯結(jié)構(gòu)設(shè)計(jì)需求分析概念結(jié)構(gòu)設(shè)計(jì)需求說(shuō)明數(shù)據(jù)說(shuō)明概念結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)邏輯結(jié)構(gòu)物理結(jié)構(gòu)需求收集和分析設(shè)計(jì)局部視圖視圖的集成設(shè)計(jì)邏輯結(jié)構(gòu)數(shù)據(jù)模型優(yōu)化設(shè)計(jì)物理結(jié)構(gòu)評(píng)價(jià)設(shè)計(jì)、性能預(yù)測(cè)數(shù)據(jù)庫(kù)物理實(shí)現(xiàn)試驗(yàn)性運(yùn)行數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)信息需求處理需求轉(zhuǎn)換規(guī)則DBMS特性優(yōu)化方法硬件、OS特性123456數(shù)據(jù)庫(kù)設(shè)計(jì)的具體步驟6.2需求分析需求分析的任務(wù):對(duì)現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門(mén)、企業(yè)等)進(jìn)行詳細(xì)調(diào)查,在了解原系統(tǒng)概況,明確用戶的各種需求,確定新系統(tǒng)功能的過(guò)程中,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理。需求分析的重點(diǎn)是調(diào)查、收集、分析用戶在數(shù)據(jù)管理中的信息要求、處理要求

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論