數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì):第5章 數(shù)據(jù)庫(kù)管理_第1頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì):第5章 數(shù)據(jù)庫(kù)管理_第2頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì):第5章 數(shù)據(jù)庫(kù)管理_第3頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì):第5章 數(shù)據(jù)庫(kù)管理_第4頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì):第5章 數(shù)據(jù)庫(kù)管理_第5頁(yè)
已閱讀5頁(yè),還剩136頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章數(shù)據(jù)庫(kù)管理本章主要內(nèi)容數(shù)據(jù)管理與數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)安全管理事務(wù)管理恢復(fù)管理并發(fā)控制數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)本章學(xué)習(xí)目標(biāo)了解數(shù)據(jù)管理和數(shù)據(jù)庫(kù)管理的主要內(nèi)容;深刻理解事務(wù)的概念和基本性質(zhì),并掌握事務(wù)管理的命令;理解數(shù)據(jù)庫(kù)備份的技術(shù)和機(jī)制,掌握SQLServer數(shù)據(jù)庫(kù)備份和恢復(fù)的一般方法;理解并發(fā)控制的基本概念和必要性,掌握SQLServer數(shù)據(jù)庫(kù)并發(fā)控制的一般方法。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)本章重點(diǎn)和難點(diǎn)重點(diǎn):事務(wù)管理、備份與恢復(fù)、并發(fā)控制,是數(shù)據(jù)庫(kù)管理者必須掌握的知識(shí)和技術(shù)。難點(diǎn)一是如何制定備份和恢復(fù)的策略,當(dāng)數(shù)據(jù)庫(kù)遇到故障時(shí)可以在最短的時(shí)間內(nèi)將數(shù)據(jù)庫(kù)恢復(fù)到完全正確的一致?tīng)顟B(tài);二是如何制定并發(fā)控制策略,使得并發(fā)執(zhí)行的應(yīng)用系統(tǒng)有最高的效率。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.1數(shù)據(jù)管理與數(shù)據(jù)庫(kù)管理兩個(gè)階段1.數(shù)據(jù)庫(kù)規(guī)劃和設(shè)計(jì)階段的管理2.數(shù)據(jù)庫(kù)實(shí)施、運(yùn)行和維護(hù)階段的管理數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)規(guī)劃和設(shè)計(jì)階段的管理協(xié)助決策者制定整體的信息系統(tǒng)開(kāi)發(fā)策略;進(jìn)行可行性研究、并對(duì)數(shù)據(jù)庫(kù)開(kāi)發(fā)進(jìn)行整體規(guī)劃;建立全局概念數(shù)據(jù)模型,并定義數(shù)據(jù)需求;建立數(shù)據(jù)收集標(biāo)準(zhǔn)、并定義數(shù)據(jù)格式;測(cè)算數(shù)據(jù)量和增長(zhǎng)速度;定義數(shù)據(jù)使用模式和使用頻率;定義數(shù)據(jù)訪問(wèn)規(guī)則,確定數(shù)據(jù)安全策略;概念數(shù)據(jù)庫(kù)設(shè)計(jì);邏輯數(shù)據(jù)庫(kù)設(shè)計(jì);培訓(xùn)用戶(hù),使其了解有關(guān)數(shù)據(jù)標(biāo)準(zhǔn)、職責(zé)和法律責(zé)任;確保各種文檔的完整等。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施、運(yùn)行和維護(hù)階段的管理評(píng)價(jià)和選擇具體的數(shù)據(jù)庫(kù)管理系統(tǒng);物理數(shù)據(jù)庫(kù)設(shè)計(jì);數(shù)據(jù)庫(kù)實(shí)現(xiàn);建立測(cè)試策略;數(shù)據(jù)庫(kù)安全管理;培訓(xùn)用戶(hù)如何使用新的系統(tǒng);監(jiān)控?cái)?shù)據(jù)庫(kù)的性能、并不斷進(jìn)行優(yōu)化;定期進(jìn)行備份、確?;謴?fù)機(jī)制;關(guān)注軟件、硬件的發(fā)展和成本,在必要時(shí)提出系統(tǒng)升級(jí)的方案;保證文檔的完整性和內(nèi)部資料的延伸等。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題討論在數(shù)據(jù)庫(kù)實(shí)施前的數(shù)據(jù)管理工作是如何進(jìn)行的?例如,如何對(duì)數(shù)據(jù)庫(kù)開(kāi)發(fā)進(jìn)行整體規(guī)劃?如何建立全局概念數(shù)據(jù)模型?如何建立數(shù)據(jù)收集標(biāo)準(zhǔn)?如何定義數(shù)據(jù)訪問(wèn)規(guī)則?如何確定數(shù)據(jù)安全策略等?討論如何評(píng)價(jià)和選擇具體的數(shù)據(jù)庫(kù)管理系統(tǒng)。討論數(shù)據(jù)庫(kù)管理員的職責(zé)、以及數(shù)據(jù)庫(kù)管理員如何實(shí)施其相關(guān)的職責(zé)。作業(yè):以以上思考題為提綱撰寫(xiě)論文“數(shù)據(jù)庫(kù)管理員在數(shù)據(jù)庫(kù)建設(shè)各個(gè)階段的職責(zé)”(在教學(xué)網(wǎng)站提交)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.2數(shù)據(jù)庫(kù)安全管理數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)安全概述安全性措施的層次物理層人員層操作系統(tǒng)層網(wǎng)絡(luò)層數(shù)據(jù)庫(kù)系統(tǒng)層數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)的身份識(shí)別機(jī)制身份識(shí)別的3個(gè)層次系統(tǒng)登錄數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù)操作數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)用戶(hù)分類(lèi)系統(tǒng)管理員用戶(hù)數(shù)據(jù)庫(kù)管理員用戶(hù)數(shù)據(jù)庫(kù)對(duì)象用戶(hù)一般用戶(hù)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)SQLServer的用戶(hù)和角色管理一般系統(tǒng)管理員用戶(hù)管理數(shù)據(jù)庫(kù)管理員用戶(hù)數(shù)據(jù)庫(kù)管理員用戶(hù)管理數(shù)據(jù)庫(kù)對(duì)象用戶(hù)數(shù)據(jù)庫(kù)對(duì)象用戶(hù)向一般用戶(hù)進(jìn)行查詢(xún)和操作授權(quán)。用戶(hù)與角色數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)用戶(hù)和角色登錄用戶(hù)映射數(shù)據(jù)庫(kù)用戶(hù)登錄用戶(hù)和數(shù)據(jù)庫(kù)用戶(hù)角色用戶(hù)角色成員角色數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)系統(tǒng)預(yù)定義角色sysadmin:具有系統(tǒng)管理員全部權(quán)限的角色。serveradmin:負(fù)責(zé)配置數(shù)據(jù)庫(kù)服務(wù)器的設(shè)置。setupadmin:負(fù)責(zé)添加和刪除鏈接的服務(wù)器。securityadmin:負(fù)責(zé)管理服務(wù)器的登錄。processadmin:負(fù)責(zé)管理在SQLServer實(shí)例中運(yùn)行的進(jìn)程。dbcreator:負(fù)責(zé)創(chuàng)建和改變數(shù)據(jù)庫(kù)。bulkadmin:可以執(zhí)行BULKINSERT語(yǔ)句(數(shù)據(jù)庫(kù)數(shù)據(jù)的裝載)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)預(yù)定義角色db_owner:在數(shù)據(jù)庫(kù)中有全部權(quán)限,即具有數(shù)據(jù)庫(kù)管理員全部權(quán)限的角色。db_accessadmin:負(fù)責(zé)數(shù)據(jù)庫(kù)用戶(hù)的管理。db_securityadmin:負(fù)責(zé)數(shù)據(jù)庫(kù)的安全管理,如負(fù)責(zé)權(quán)限管理、角色和角色成員資格管理等。db_ddladmin:主要負(fù)責(zé)數(shù)據(jù)庫(kù)的完整性和一致性檢查及管理。db_backupoperator:主要負(fù)責(zé)數(shù)據(jù)庫(kù)的備份。db_datareader:可以查詢(xún)數(shù)據(jù)庫(kù)中任何用戶(hù)表中的所有數(shù)據(jù)。db_datawriter:可以更改數(shù)據(jù)庫(kù)中任何用戶(hù)表中的所有數(shù)據(jù)。db_denydatareader:不能查詢(xún)數(shù)據(jù)庫(kù)中任何用戶(hù)表中的任何數(shù)據(jù)。db_denydatawriter:不能更改數(shù)據(jù)庫(kù)中任何用戶(hù)表中的任何數(shù)據(jù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)public角色public角色是一個(gè)特殊的數(shù)據(jù)庫(kù)角色,每個(gè)數(shù)據(jù)庫(kù)用戶(hù)都是該角色的成員。public角色具有如下特點(diǎn):public角色自動(dòng)獲得數(shù)據(jù)庫(kù)中用戶(hù)的所有默認(rèn)權(quán)限;不需要、也無(wú)法將用戶(hù)指派給public角色,因?yàn)槟J(rèn)情況下所有用戶(hù)都屬于該角色;每個(gè)數(shù)據(jù)庫(kù)(包括所有系統(tǒng)數(shù)據(jù)庫(kù)和所有用戶(hù)數(shù)據(jù)庫(kù))都有public角色;不可以刪除public角色。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)登錄用戶(hù)管理SQLServer在安裝時(shí)默認(rèn)的系統(tǒng)管理員用戶(hù)是sa登錄用戶(hù)管理創(chuàng)建登錄用戶(hù)修改登錄用戶(hù)刪除登錄用戶(hù)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)創(chuàng)建登錄用戶(hù)命令的基本格式CREATELOGIN

login_name

{WITHPASSWORD='password'[MUST_CHANGE][,DEFAULT_DATABASE=

database][,CHECK_EXPIRATION={ON|OFF}]}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:建立一個(gè)用戶(hù)名為wu、口令為wqx的登錄用戶(hù)CREATELOGIN

wuWITHPASSWORD='wqx'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:建立一個(gè)用戶(hù)名為qiu、口令為whx的登錄用戶(hù),并且在第一次登錄時(shí)強(qiáng)制必須修改口令CREATELOGIN

qiuWITHPASSWORD='whx'MUST_CHANGE,CHECK_EXPIRATION=ON數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)修改登錄用戶(hù)命令的基本格式ALTERLOGINlogin_name{{ENABLE|DISABLE}|WITHPASSWORD='password'[,OLD_PASSWORD='oldpassword'][,DEFAULT_DATABASE=database][,NAME=login_name]}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:暫時(shí)禁止用戶(hù)wu登錄ALTERLOGIN

wuDISABLE數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:重新允許用戶(hù)wu登錄ALTERLOGIN

wuENABLE數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:由系統(tǒng)管理員將用戶(hù)wu的口令修改為whx。ALTERLOGIN

wu

WITHPASSWORD='whx'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:將用戶(hù)wu的登錄名修改為cuiw(注意口令沒(méi)有改變)。ALTERLOGIN

wu

WITHNAME=

cuiw數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:用戶(hù)cuiw在登錄后自己將口令修改為wyh(此時(shí)需要提供舊的口令,假設(shè)舊口令是whx)。ALTERLOGIN

cuiwWITHPASSWORD='wyh'OLD_PASSWORD='whx'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)刪除登錄用戶(hù)命令的基本格式DROPLOGINlogin_name數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:刪除登錄用戶(hù)名為qiu的用戶(hù)。DROPLOGIN

qiu數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)用戶(hù)管理數(shù)據(jù)庫(kù)用戶(hù)管理建立新的數(shù)據(jù)庫(kù)用戶(hù)修改已有數(shù)據(jù)庫(kù)用戶(hù)刪除數(shù)據(jù)庫(kù)用戶(hù)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)建立數(shù)據(jù)庫(kù)用戶(hù)的命令CREATEUSERuser_name[LOGINlogin_name][WITHDEFAULT_SCHEMA=schema_name]數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:指定登錄用戶(hù)cuiw為“學(xué)生”數(shù)據(jù)庫(kù)的用戶(hù),并指定模式student為默認(rèn)模式CREATEUSER

cuiwWITHDEFAULT_SCHEMA=student數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)修改已有數(shù)據(jù)庫(kù)用戶(hù)的命令A(yù)LTERUSERuser_nameWITH{NAME=new_user_name|DEFAULT_SCHEMA=schema_name}[,...n]數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:將數(shù)據(jù)庫(kù)用戶(hù)cuiw名稱(chēng)改為cuiwei,默認(rèn)模式改為dboALTERUSERcuiwWITHNAME=cuiwei,DEFAULT_SCHEMA=dbo數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)刪除數(shù)據(jù)庫(kù)用戶(hù)的格式DROPUSERuser_name數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:取消cuiwei的當(dāng)前數(shù)據(jù)庫(kù)用戶(hù)資格,即刪除該用戶(hù)DROPUSERcuiwei數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)管理員用戶(hù)數(shù)據(jù)庫(kù)管理員是由系統(tǒng)管理員授權(quán)產(chǎn)生的,通常有如下兩種方式:用戶(hù)被授權(quán)可以執(zhí)行CREATEDATABASE命令(參見(jiàn)5.2.4)或被指定Dbcreator角色,這時(shí)該用戶(hù)可以建立數(shù)據(jù)庫(kù)、并負(fù)責(zé)自己所建立數(shù)據(jù)庫(kù)的全部管理工作,因此自然履行數(shù)據(jù)庫(kù)管理員的職責(zé);用戶(hù)可以被指定為已有數(shù)據(jù)庫(kù)的db_owne角色,該角色為數(shù)據(jù)庫(kù)管理員角色。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)將用戶(hù)指定為系統(tǒng)預(yù)定義角色的成員使用系統(tǒng)存儲(chǔ)過(guò)程:

sp_addsrvrolemembersp_addsrvrolemember[@loginame=]'login',[@rolename=]'role'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:指定用戶(hù)cuiw為Dbcreator角色。sp_addsrvrolemember@loginame='cuiw',

@rolename='dbcreator'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)將用戶(hù)指定為某個(gè)數(shù)據(jù)庫(kù)角色的成員使用系統(tǒng)存儲(chǔ)過(guò)程

sp_addrolemembersp_addrolemember

[@rolename=]'role',[@membername=]'user'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)舉例:指定用戶(hù)cuiw為“學(xué)生”數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理員。假設(shè)用戶(hù)cuiw已經(jīng)是“學(xué)生”數(shù)據(jù)庫(kù)的用戶(hù),則可以使用系統(tǒng)過(guò)程sp_addrolemember將用戶(hù)cuiw指定為db_owner角色:sp_addrolemember@rolename='db_owner',@membername='cuiw'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)角色管理角色管理包括定義角色(CREATEROLE)更改角色名稱(chēng)(ALTERROLE)指定用戶(hù)角色(sp_addrolemember)取消用戶(hù)角色(sp_droprolemember)刪除角色(DROPROLE)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)定義角色命令的基本格式CREATEROLErole_name[AUTHORIZATIONowner_name]數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)更改角色名稱(chēng)命令的基本格式是ALTERROLErole_nameWITHNAME=new_name數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)取消某個(gè)用戶(hù)的指定角色使用系統(tǒng)存儲(chǔ)過(guò)程

sp_droprolemembersp_droprolemember

[@rolename=]'role',[@membername=]'user'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)刪除角色命令的格式DROPROLErole_name數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)假設(shè)在“學(xué)生”數(shù)據(jù)庫(kù)中,并假設(shè)用戶(hù)zhang和wang為該數(shù)據(jù)庫(kù)的用戶(hù)。例14:建立角色course_man,并指定由用戶(hù)zhang管理。CREATEROLEcourse_manAUTHORIZATIONzhang例15:將角色course_man的名稱(chēng)修改為tech_man。ALTERROLEcourse_manWITHNAME=tech_man例16:指定用戶(hù)wang為角色tech_man的成員。sp_addrolemember@rolename='tech_man',@membername='wang'數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)SQLServer的用戶(hù)權(quán)限管理授權(quán)命令GRANT收回授權(quán)的命令REVOKE禁止繼承權(quán)限的命令DENY。Ug某用戶(hù)的權(quán)限集合Dg直接授予的權(quán)限集合Rg繼承某角色的權(quán)限集合Rd某用戶(hù)被禁止的權(quán)限集合Ug=Dg∪(Rg-Rd)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)權(quán)限通常分為兩類(lèi)創(chuàng)建對(duì)象的權(quán)限使用各種CREATE命令創(chuàng)建相應(yīng)對(duì)象的權(quán)限通常由DBA管理使用對(duì)象的權(quán)限查詢(xún)和操作關(guān)系、執(zhí)行存儲(chǔ)過(guò)程等的權(quán)限通常有對(duì)象創(chuàng)建者管理所以權(quán)限管理也分為兩類(lèi)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)授權(quán)創(chuàng)建對(duì)象的GRANT語(yǔ)句GRANT{ALL|permission[,...n]}TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]這里的權(quán)限(permission)主要是創(chuàng)建各種數(shù)據(jù)庫(kù)對(duì)象的CREATE命令,包括CREATETABLE、CREATEVIEW、CREATEDEFAULT、CREATEPROCEDURE、CREATERULE等還包括備份數(shù)據(jù)庫(kù)的BACKUPDATABASE和BACKUPLOG權(quán)限sa還可以授權(quán)CREATEDATABASE權(quán)限數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)授權(quán)創(chuàng)建對(duì)象的GRANT語(yǔ)句GRANT{ALL|permission[,...n]}TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]ALL說(shuō)明授予全部權(quán)限,也可以用選項(xiàng)permission[,...n]逐一授予指定的權(quán)限;TOprincipal[,...n]說(shuō)明被授予權(quán)限的一個(gè)或多個(gè)主體,可以是用戶(hù)名或角色名WITHGRANTOPTION說(shuō)明被授予權(quán)限的用戶(hù)或角色也可以行使同樣的GRANT權(quán)限;ASprincipal說(shuō)明當(dāng)使用GRANT授權(quán)時(shí)是作為某個(gè)用戶(hù)或某個(gè)角色在行使職權(quán)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)例5-17:在學(xué)生數(shù)據(jù)庫(kù)中授予角色tech_man具有CREATETABLE的權(quán)限。GRANTCREATETABLETOtech_man數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)例5-18:授予用戶(hù)wang創(chuàng)建視圖的權(quán)利,并且允許該用戶(hù)將創(chuàng)建視圖的權(quán)利授予其他合法用戶(hù)。GRANTCREATEVIEWTOwangWITHGRANTOPTION數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)授權(quán)對(duì)象上操作權(quán)限的GRANT語(yǔ)句GRANT{ALL|permission[(column[,...n])][,...n]}ONsecurableTOprincipal[,...n][WITHGRANTOPTION][ASprincipal]這里的權(quán)限(permission)

對(duì)表或視圖可以是SELECT、

DELETE、INSERT、UPDATE和REFERENCES等,對(duì)存儲(chǔ)過(guò)程或函數(shù)可以是EXECUTE

數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)授權(quán)對(duì)象上操作權(quán)限的GRANT語(yǔ)句GRANT{ALL|permission[(column[,...n])][,...n]}ONsecurableTOprincipal[,...n][WITHGRANTOPTION][ASprincipal]ONsecurable說(shuō)明授予權(quán)限的對(duì)象,可以是表、視圖、存儲(chǔ)過(guò)程等對(duì)象;ALL說(shuō)明授予全部權(quán)限,也可以用選項(xiàng)permission[,...n]逐一授予指定的權(quán)限當(dāng)查詢(xún)和更新限制在某些列時(shí),可以使用(column[,...n])指定具體的列其他選項(xiàng)含義同前數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)GRANTSELECT,UPDATE(考試成績(jī))ON選課TOtech_manWITHGRANTOPTION例5-19:將選課表的查詢(xún)權(quán)限和對(duì)考試成績(jī)字段的修改權(quán)限授予角色tech_man。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)例5-20:用戶(hù)wang將對(duì)選課表的查詢(xún)權(quán)限授予用戶(hù)zhang(由于例5-19選用了短語(yǔ)WITHGRANTOPTION)。GRANTSELECTONstudent.選課TOzhangAStech_man數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)收回授權(quán)的命令REVOKEREVOKE[GRANTOPTIONFOR]{ALL|permission[(

column[,...n])][,...n]}[ONsecurable]FROMprincipal[,...n][CASCADE][ASprincipal]包含了收回創(chuàng)建對(duì)象的權(quán)限(不含ON短語(yǔ))和收回對(duì)象上操作的權(quán)限(包含ON短語(yǔ))。GRANTOPTIONFOR說(shuō)明從指定角色或用戶(hù)撤銷(xiāo)再授權(quán)的權(quán)限。CASCADE的含義是級(jí)聯(lián),即指示當(dāng)前正在撤消的權(quán)限也將從其他被該主體授權(quán)的主體中撤消;使用

CASCADE參數(shù)時(shí),還必須同時(shí)指定GRANTOPTIONFOR參數(shù)。

數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)例5-21:撤銷(xiāo)角色tech_man對(duì)選課表的SELECT權(quán)限再授權(quán)的權(quán)利(不撤銷(xiāo)該角色成員對(duì)選課表的SELECT權(quán)限)。REVOKEGRANTOPTIONFORSELECTON選課FROMtech_manCASCADE數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)REVOKEUPDATEON選課FROMtech_manCASCADE例5-22:從角色tech_man撤銷(xiāo)對(duì)選課表的UPDATE權(quán)限數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)禁止繼承權(quán)限的DENY命令DENY{ALL|permission[(column[,...n])][,...n]}[ONsecurable]TOprincipal[,...n][CASCADE][ASprincipal]包含了禁止繼承創(chuàng)建對(duì)象的權(quán)限(不含ON短語(yǔ))和禁止繼承對(duì)象上操作的權(quán)限(包含ON短語(yǔ))。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)例5-23:禁止用戶(hù)wang對(duì)選課表進(jìn)行更新。DENYUPDATEON選課TOwang數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題查閱相關(guān)資料了解SQLServer的Windows驗(yàn)證(與操作系統(tǒng)集成的)和數(shù)字證書(shū)驗(yàn)證,討論它們與常規(guī)驗(yàn)證的區(qū)別,并分析各自的特點(diǎn)。查閱相關(guān)資料了解SQLServer的數(shù)據(jù)加密等其他安全措施,寫(xiě)一篇短文全面闡述SQLServer的安全技術(shù)。查閱CREATELOGIN和ALTERLOGIN命令的完整格式,全面了解對(duì)登錄用戶(hù)管理的內(nèi)容。為什么登錄到數(shù)據(jù)庫(kù)管理系統(tǒng)的用戶(hù)卻不一定能訪問(wèn)數(shù)據(jù)庫(kù)?登錄用戶(hù)和數(shù)據(jù)庫(kù)用戶(hù)是什么關(guān)系?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題查閱CREATEUSER和ALTERUSER命令的完整格式,全面了解對(duì)數(shù)據(jù)庫(kù)用戶(hù)管理的內(nèi)容。全面討論和理解數(shù)據(jù)庫(kù)訪問(wèn)和操作的多級(jí)認(rèn)證,討論各級(jí)認(rèn)證的方法和作用。討論通過(guò)角色進(jìn)行用戶(hù)權(quán)限管理的內(nèi)容及其為權(quán)限管理帶來(lái)的方便。權(quán)限管理包括授權(quán)(GRANT)、收回授權(quán)(REVOKE)和禁止權(quán)限(DENY),討論各自命令中各個(gè)短語(yǔ)的功能,以及這些短語(yǔ)在權(quán)限管理中發(fā)揮的特殊作用。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.3事務(wù)管理事務(wù)(Transaction)是數(shù)據(jù)庫(kù)應(yīng)用的基本性質(zhì)之一,是管理數(shù)據(jù)庫(kù)運(yùn)作的一個(gè)邏輯單位。多個(gè)用戶(hù)的應(yīng)用要同時(shí)正確運(yùn)行,需要用事務(wù)來(lái)控制(并發(fā)控制);為了保證不丟失數(shù)據(jù),也需要事務(wù)來(lái)控制(恢復(fù)控制)。

數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.3.1事務(wù)的概念和性質(zhì)事務(wù)是構(gòu)成單一邏輯工作單元的操作集合。買(mǎi)賣(mài)交易——一手交錢(qián)一手交貨訂票——查詢(xún)、訂位、(交錢(qián))、出票(往返票?)轉(zhuǎn)帳——轉(zhuǎn)出、轉(zhuǎn)入數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)什么是事務(wù)?事務(wù)可以看作是作業(yè)或任務(wù),它是完成用戶(hù)一個(gè)特定工作的一組命令,是構(gòu)成單一邏輯工作單元的操作集合。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)為什么需要事務(wù)的概念呢?恢復(fù)的需要并發(fā)操作的需要買(mǎi)賣(mài)交易——一手交錢(qián)一手交貨訂票——查詢(xún)、訂位、(交錢(qián))、出票(往返票?)轉(zhuǎn)帳——轉(zhuǎn)出、轉(zhuǎn)入數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)的性質(zhì)

原子性(Atomicity)

一致性(Consistency)隔離性(Isolation)持久性(Durability)

事務(wù)的這些性質(zhì)通常稱(chēng)為ACID特性數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)原子性

事務(wù)的原子性強(qiáng)調(diào)了一個(gè)事務(wù)是一個(gè)邏輯工作單元,是一個(gè)整體,是不可分割的。一個(gè)事務(wù)所包含的操作要么全部做,要么全部不做。買(mǎi)賣(mài)交易——一手交錢(qián)一手交貨訂票——查詢(xún)、訂位、(交錢(qián))、出票(往返票?)轉(zhuǎn)帳——轉(zhuǎn)出、轉(zhuǎn)入數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)的性質(zhì)

原子性(Atomicity)

一致性(Consistency)

隔離性(Isolation)持久性(Durability)

事務(wù)的這些性質(zhì)通常稱(chēng)為ACID特性數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)一致性

一個(gè)事務(wù)執(zhí)行一項(xiàng)數(shù)據(jù)庫(kù)操作,事務(wù)將使數(shù)據(jù)庫(kù)從一種一致性的狀態(tài)變換成另一種一致性狀態(tài)。

在事務(wù)執(zhí)行前,總是假設(shè)數(shù)據(jù)庫(kù)是一致的,那么當(dāng)事務(wù)成功執(zhí)行后,數(shù)據(jù)庫(kù)肯定仍然是一致的。

買(mǎi)賣(mài)交易——一手交錢(qián)一手交貨訂票——查詢(xún)、訂位、(交錢(qián))、出票(往返票?)轉(zhuǎn)帳——轉(zhuǎn)出、轉(zhuǎn)入(賬目平衡)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)的性質(zhì)

原子性(Atomicity)

一致性(Consistency)隔離性(Isolation)持久性(Durability)

事務(wù)的這些性質(zhì)通常稱(chēng)為ACID特性數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)隔離性

如果每個(gè)事務(wù)單獨(dú)執(zhí)行能保持原子性和一致性,這些事務(wù)并發(fā)執(zhí)行也能保持原子性和一致性,則是事務(wù)的隔離性。兩個(gè)以上教師同時(shí)登錄考試成績(jī)?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)的性質(zhì)

原子性(Atomicity)

一致性(Consistency)隔離性(Isolation)持久性(Durability)

事務(wù)的這些性質(zhì)通常稱(chēng)為ACID特性數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)持久性

事務(wù)的持久性是指一旦事務(wù)成功完成,該事務(wù)對(duì)數(shù)據(jù)庫(kù)所施加的所有更新都是永久的。在ATM取錢(qián)后銀行系統(tǒng)突然發(fā)生故障?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)ACID性質(zhì)——DBMS的功能如果讓用戶(hù)程序來(lái)實(shí)現(xiàn)結(jié)果會(huì)怎樣?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)管理的命令BEGINTRANSACTION(開(kāi)始事務(wù))COMMITTRANSACTION(提交事務(wù))SAVETRANSACTION(保存事務(wù))ROLLBACKTRANSACTION(撤銷(xiāo)事務(wù))數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)開(kāi)始事務(wù)BEGIN{TRAN|TRANSACTION}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)提交事務(wù)COMMIT{TRAN|TRANSACTION}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)保存事務(wù)SAVE{TRAN|TRANSACTION}{savepoint_name|@savepoint_variable}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)撤銷(xiāo)事務(wù)ROLLBACK{TRAN|TRANSACTION}[savepoint_name|@savepoint_variable]數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)隱含事務(wù)與自動(dòng)事務(wù)隱含事務(wù)模式——不用BEGIN開(kāi)始事務(wù),而是遇到特定命令時(shí)自動(dòng)開(kāi)始事務(wù)自動(dòng)事務(wù)模式——自動(dòng)事務(wù)提交SETIMPLICIT_TRANSACTIONS{ON|OFF}設(shè)置隱含事務(wù)模式的命令:數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)管理如果SETIMPLICIT_TRANSACTIONSON,即為隱含事務(wù)模式時(shí):可以不用BEGINTRANSACTION命令開(kāi)始一個(gè)事務(wù),而是當(dāng)首次執(zhí)行某個(gè)相關(guān)操作命令時(shí)都會(huì)自動(dòng)啟動(dòng)一個(gè)事務(wù);事務(wù)中可以用SAVETRANSACTION設(shè)置事務(wù)斷點(diǎn);最后必須用COMMITTRANSACTION提交事務(wù)、或者用ROLLBACKTRANSACTION撤銷(xiāo)事務(wù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)管理如果SETIMPLICIT_TRANSACTIONSOFF,即為非隱含事務(wù)模式、并且需要事務(wù)管理時(shí):必須用BEGINTRANSACTION命令顯式開(kāi)始一個(gè)事務(wù);事務(wù)中可以用SAVETRANSACTION設(shè)置事務(wù)斷點(diǎn);最后必須用COMMITTRANSACTION提交事務(wù)、或者用ROLLBACKTRANSACTION撤銷(xiāo)事務(wù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)管理如果SETIMPLICIT_TRANSACTIONSOFF,即為非隱含事務(wù)模式,此時(shí)如果沒(méi)有用BEGINTRANS命令開(kāi)始事務(wù),則每條成功執(zhí)行的命令都作為事務(wù)自動(dòng)提交,這種情況不能用COMMIT或ROLLBACK命令提交或撤銷(xiāo)事務(wù)。這是自動(dòng)事務(wù)提交,或沒(méi)有進(jìn)行事務(wù)管理,此類(lèi)模式盡量避免。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題1. 討論并畫(huà)圖示意在數(shù)據(jù)庫(kù)操作中什么情況下會(huì)破壞事務(wù)的原子性和一致性。2. 討論并畫(huà)圖示意在數(shù)據(jù)庫(kù)操作中什么情況下會(huì)破壞事務(wù)的隔離性。3. 討論并深刻理解隱含事務(wù)與自動(dòng)事務(wù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題4. 閱讀如下程序段、討論事務(wù)的提交和撤銷(xiāo),指出程序執(zhí)行的最終結(jié)果,并分析是否滿(mǎn)足事務(wù)的原子性和一致性。BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTranVALUES(1,'aaa')COMMITTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(2,'bbb')ROLLBACKTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(3,'ccc')COMMITTRANSACTION數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題5. 閱讀如下程序段、討論事務(wù)斷點(diǎn)的保存和使用,指出程序執(zhí)行的最終結(jié)果,并分析是否滿(mǎn)足事務(wù)的原子性和一致性。BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTranVALUES(1,'aaa')SAVETRANSACTIONtranspoint1INSERTINTOTestTranVALUES(2,'bbb')ROLLBACKTRANSACTIONtranspoint1INSERTINTOTestTranVALUES(3,'ccc')COMMITTRANSACTION數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.4恢復(fù)管理數(shù)據(jù)庫(kù)的恢復(fù)管理是指由于軟故障(應(yīng)用程序出錯(cuò)、系統(tǒng)出錯(cuò)等使事務(wù)中斷的故障)或硬故障(磁盤(pán)損壞使數(shù)據(jù)丟失的故障)使數(shù)據(jù)庫(kù)中的數(shù)據(jù)產(chǎn)生不一致后可以恢復(fù)到一致性的過(guò)程。買(mǎi)賣(mài)交易——一手交錢(qián)一手交貨訂票——查詢(xún)、訂位、(交錢(qián))、出票(往返票?)轉(zhuǎn)帳——轉(zhuǎn)出、轉(zhuǎn)入(賬目平衡)交易完成后磁盤(pán)損壞數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)軟故障及其恢復(fù)所有使事務(wù)中斷、而又沒(méi)有損壞磁盤(pán)介質(zhì)的故障,都可以看作是軟故障。造成軟故障的原因:突然掉電引起的事務(wù)中斷

硬件故障引起的事務(wù)中斷

客戶(hù)應(yīng)用程序出錯(cuò)引起的事務(wù)中斷

系統(tǒng)程序故障引起的事務(wù)中斷

遇到以上各種故障怎么辦?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)軟故障及其恢復(fù)解決方法:只需要通過(guò)事務(wù)控制將數(shù)據(jù)庫(kù)恢復(fù)到事務(wù)修改之前的狀態(tài),即通過(guò)執(zhí)行ROLLBACKTRANSACTION命令撤消未執(zhí)行完的事務(wù)。軟故障破壞了事務(wù)的原子性和一致性。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)如何在程序中捕獲軟故障并撤銷(xiāo)事務(wù)?在設(shè)計(jì)事務(wù)時(shí)要考慮可能出現(xiàn)的軟故障嘗試(TRY)執(zhí)行可能出現(xiàn)故障的事務(wù),隨后捕獲(CATCH)狀態(tài)判斷是否出現(xiàn)故障數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)TRY和CATCH語(yǔ)句的格式如下:BEGINTRY{sql_statement

|statement_block}ENDTRYBEGINCATCH{sql_statement

|statement_block}ENDCATCH數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)TRY和CATCH語(yǔ)句舉例SETXACT_ABORTONBEGINTRYBEGINTRANSACTION--第二條記錄不能插入,將產(chǎn)生一個(gè)錯(cuò)誤

INSERTINTOstudent.課程VALUES('X00017','實(shí)用數(shù)據(jù)庫(kù)',32,'專(zhuān)業(yè)選修','010126')

INSERTINTOstudent.課程VALUES('X00017','數(shù)據(jù)庫(kù)開(kāi)發(fā)',32,'專(zhuān)業(yè)選修','010126')--假設(shè)事務(wù)的所有語(yǔ)句成功執(zhí)行則提交事務(wù)

COMMITTRANSACTIONENDTRYBEGINCATCH--測(cè)試XACT_STATE函數(shù)的值--0說(shuō)明與事務(wù)提交或撤銷(xiāo)無(wú)關(guān)--1說(shuō)明事務(wù)正常---1說(shuō)明事務(wù)異常,可能需要部分或全部撤銷(xiāo)事務(wù)

IF(XACT_STATE())=-1BEGINPRINTN'事務(wù)不能提交,撤銷(xiāo)事務(wù)!'

ROLLBACKTRANSACTIONENDENDCATCH課程表的觸發(fā)器影響事務(wù)的狀態(tài)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)TRY和CATCH語(yǔ)句舉例SETXACT_ABORTONBEGINTRY BEGINTRANINSERTINTOstudent.院系VALUES(7,'機(jī)電工程學(xué)院','張專(zhuān)業(yè)','010126') INSERTINTOstudent.院系VALUES(7,'外國(guó)語(yǔ)學(xué)院','李專(zhuān)業(yè)','010126')COMMITTRANENDTRYBEGINCATCHIF(XACT_STATE())=-1BEGINPRINTN'事務(wù)不能提交,撤銷(xiāo)事務(wù)!'ROLLBACKTRANSACTIONENDENDCATCH數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)硬故障及其恢復(fù)什么是硬故障?任何原因(自然損耗、天災(zāi)、人禍)引起的硬盤(pán)故障使得數(shù)據(jù)庫(kù)不能啟動(dòng)或訪問(wèn),并造成數(shù)據(jù)丟失。如何解決硬故障造成的數(shù)據(jù)丟失?利用備份進(jìn)行恢復(fù)。如何將數(shù)據(jù)完全恢復(fù)?在備份的基礎(chǔ)上應(yīng)用日志如何在最短的時(shí)間恢復(fù)數(shù)據(jù)庫(kù)?備份恢復(fù)策略數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)硬故障及其恢復(fù)硬故障的恢復(fù)技術(shù)解決的是事務(wù)的持久性。所謂持久性就是當(dāng)完成對(duì)數(shù)據(jù)庫(kù)的更新后(當(dāng)然是事務(wù)提交后)使得更新能夠永久有效,不會(huì)因?yàn)槿魏喂收隙鴣G失,即便是硬盤(pán)損壞也能夠?qū)?shù)據(jù)庫(kù)恢復(fù)到最新的、一致的狀態(tài)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)備份和日志日志是對(duì)備份的補(bǔ)充。備份是脫機(jī)的,日志是聯(lián)機(jī)的、實(shí)時(shí)的。將日志和主數(shù)據(jù)庫(kù)安排在不同的物理存儲(chǔ)設(shè)備上,甚至安排在遠(yuǎn)程的物理設(shè)備上。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)備份類(lèi)型全備份增量備份事務(wù)日志備份數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)恢復(fù)模式簡(jiǎn)單恢復(fù)模式完整恢復(fù)模式通過(guò)ALTERDATABASE命令設(shè)置RECOVERY選項(xiàng)(恢復(fù)模式)ALTERDATABASE<數(shù)據(jù)庫(kù)>SETRECOVERY{SIMPLE|FULL}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)恢復(fù)的目標(biāo)既要盡可能將數(shù)據(jù)庫(kù)恢復(fù)到最新?tīng)顟B(tài)、盡量減少數(shù)據(jù)的丟失,還要盡可能快速的恢復(fù)數(shù)據(jù)庫(kù)、減少系統(tǒng)停止運(yùn)行帶來(lái)的損失。完全恢復(fù)和盡快恢復(fù)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)恢復(fù)策略恢復(fù)策略實(shí)際包含備份策略和恢復(fù)策略備份部分備份的類(lèi)型和頻率備份所需硬件的特性和速度備份的測(cè)試方法備份媒體的存儲(chǔ)位置和方法(包括安全注意事項(xiàng))恢復(fù)部分能否完全恢復(fù)、能否在規(guī)定的時(shí)間內(nèi)完成恢復(fù)?調(diào)整備份策略和方法數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)備份數(shù)據(jù)庫(kù)的命令BACKUPDATABASEdatabase_nameTO<backup_device>[WITHDIFFERENTIAL]備份日志的命令BACKUPLOGdatabase_nameTO<backup_device>數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)恢復(fù)或還原數(shù)據(jù)庫(kù)的命令RESTOREDATABASEdatabase_nameFROM<backup_device>

WITH{RECOVERY|NORECOVERY}利用日志進(jìn)行恢復(fù)的命令RESTORELOGdatabase_nameFROM<backup_device>WITH{RECOVERY|NORECOVERY}數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)簡(jiǎn)單恢復(fù)模式的數(shù)據(jù)庫(kù)備份和恢復(fù)簡(jiǎn)單恢復(fù)模式的數(shù)據(jù)庫(kù)備份包括全備份和差異備份,簡(jiǎn)單恢復(fù)模式不管理日志,因此不包含日志備份。什么是差異備份?數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)簡(jiǎn)單恢復(fù)模式備份序列示意數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)簡(jiǎn)單恢復(fù)模式恢復(fù)序列示意全備份數(shù)據(jù)庫(kù)損壞更新操作1差異備份1更新操作2差異備份2更新操作3相對(duì)相對(duì)恢復(fù)順序:全備份+差異備份2在簡(jiǎn)單恢復(fù)模式下差異備份的基準(zhǔn)是最近一次的全備份。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)完整恢復(fù)模式的數(shù)據(jù)庫(kù)備份和恢復(fù)完整恢復(fù)模式通過(guò)使用日志備份在最大范圍內(nèi)防止出現(xiàn)故障時(shí)丟失數(shù)據(jù),這種模式需要備份和還原事務(wù)日志(日志備份)。完整恢復(fù)模式下的數(shù)據(jù)庫(kù)備份包括全備份、差異備份和日志備份。需要強(qiáng)調(diào)的是當(dāng)數(shù)據(jù)庫(kù)遇到災(zāi)難后,不是馬上進(jìn)行恢復(fù)工作,而是首先備份活動(dòng)日志或稱(chēng)為尾日志。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)完整恢復(fù)模式下的最簡(jiǎn)單備份和恢復(fù)策略數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)完整恢復(fù)模式恢復(fù)序列示意全備份數(shù)據(jù)庫(kù)損壞更新操作1差異備份更新操作2日志備份更新操作3相對(duì)相對(duì)恢復(fù)順序:全備份+差異備份+日志備份+尾日志備份尾日志備份差異備份的基準(zhǔn)是上次全備份,日志備份的基準(zhǔn)上次備份。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫(kù)的備份和恢復(fù)除master以外的其他系統(tǒng)數(shù)據(jù)庫(kù)的備份和恢復(fù)方法與用戶(hù)數(shù)據(jù)庫(kù)類(lèi)似而master數(shù)據(jù)庫(kù)的損壞可能導(dǎo)致SQLserver根本不能運(yùn)行,所以恢復(fù)master數(shù)據(jù)庫(kù)是一項(xiàng)特殊的任務(wù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)情形一如果master數(shù)據(jù)庫(kù)輕微損壞或信息丟失,SQLServer還能啟動(dòng),則可以直接根據(jù)master數(shù)據(jù)庫(kù)的完整備份恢復(fù)master數(shù)據(jù)庫(kù)(master數(shù)據(jù)庫(kù)只能在單用戶(hù)模式下完成恢復(fù)或還原)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)數(shù)據(jù)庫(kù)嚴(yán)重?fù)p壞而無(wú)法啟動(dòng)SQLServer實(shí)例SQLServer2000:使用重建master數(shù)據(jù)庫(kù)的實(shí)用工具Rebuildm.exe重建master數(shù)據(jù)庫(kù),。SQLServer2005:從命令提示符安裝SQLServer2005的方式中,通過(guò)指定安裝程序參數(shù)REBUILDDATABASE重建所有系統(tǒng)數(shù)據(jù)庫(kù)。然后使用普通方法利用備份恢復(fù)master數(shù)據(jù)庫(kù)。情形二數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)思考題闡述在恢復(fù)管理中日志的重要作用。一般數(shù)據(jù)庫(kù)管理系統(tǒng)有哪些備份類(lèi)型?討論在恢復(fù)管理中應(yīng)該如何使用這些備份技術(shù)。什么是簡(jiǎn)單恢復(fù)模式和完全恢復(fù)模式?討論什么情況下可以使用簡(jiǎn)單恢復(fù)模式?什么情況下應(yīng)該使用完全恢復(fù)模式?備份和恢復(fù)策略的最理想模式是什么樣的?要達(dá)到所謂最理想的模式至少應(yīng)該考慮哪些問(wèn)題?數(shù)據(jù)庫(kù)的備份和恢復(fù)通常是由誰(shuí)負(fù)責(zé)的?一般用戶(hù)需要得到什么授權(quán)或指定為什么角色可以進(jìn)行備份和恢復(fù)工作?查閱相關(guān)資料,全面了解備份、恢復(fù)技術(shù)。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)5.5并發(fā)控制多個(gè)用戶(hù)可能會(huì)同時(shí)操作一個(gè)數(shù)據(jù)庫(kù)、同時(shí)操作一個(gè)基本表、同時(shí)操作一條記錄、甚至同時(shí)操作一個(gè)字段,這些用戶(hù)的操作可能會(huì)互相干擾多個(gè)教師同時(shí)錄入考試成績(jī)、可能會(huì)出現(xiàn)同時(shí)錄入同一個(gè)學(xué)生不同課程的成績(jī),這時(shí)會(huì)對(duì)同一個(gè)字段(績(jī)點(diǎn))進(jìn)行計(jì)算修改,有可能出錯(cuò)數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)為什么需要并發(fā)控制因?yàn)椴l(fā)用戶(hù)會(huì)產(chǎn)生干擾,使數(shù)據(jù)庫(kù)發(fā)生錯(cuò)誤并發(fā)控制的目的就是避免干擾,保證數(shù)據(jù)庫(kù)不出錯(cuò)干擾現(xiàn)象包括丟失更新讀“臟”數(shù)據(jù)不可重復(fù)讀幻象讀數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)問(wèn)題1:丟失更新多個(gè)事務(wù)在同一時(shí)刻讀了相同的數(shù)據(jù),隨后各自進(jìn)行了更新,后發(fā)生的更新替代了先發(fā)生的更新——先發(fā)生的更新丟失了丟失更新的例子錄入考試成績(jī)(計(jì)算績(jī)點(diǎn))售票系統(tǒng)銀行卡系統(tǒng)(主、附卡)銷(xiāo)售系統(tǒng)……數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)問(wèn)題2:讀“臟”數(shù)據(jù)當(dāng)一個(gè)事務(wù)讀取了另一個(gè)事務(wù)正在更新、但沒(méi)有提交的數(shù)據(jù)時(shí)可能產(chǎn)生所謂的讀“臟”數(shù)據(jù)問(wèn)題,也稱(chēng)作“臟讀”(DirtyRead)或未提交讀。未提交讀的例子錄入考試成績(jī)(計(jì)算績(jī)點(diǎn))售票系統(tǒng)銀行卡系統(tǒng)(主、附卡)銷(xiāo)售系統(tǒng)……數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)問(wèn)題3:不可重復(fù)讀當(dāng)一個(gè)事務(wù)需要校驗(yàn)或再確認(rèn)數(shù)據(jù)時(shí),可能會(huì)出現(xiàn)再讀數(shù)據(jù)已經(jīng)不對(duì)了。不可重復(fù)讀的例子錄入考試成績(jī)(計(jì)算績(jī)點(diǎn))售票系統(tǒng)銀行卡系統(tǒng)(主、附卡)銷(xiāo)售系統(tǒng)……數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)問(wèn)題4:幻象讀和不可重復(fù)讀相關(guān),當(dāng)用相同的條件查詢(xún)記錄時(shí),記錄個(gè)數(shù)忽多忽少,有一種“幻象”的感覺(jué)原因是有事務(wù)在對(duì)相同的表做插入或刪除操作數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)事務(wù)的隔離性并發(fā)的事務(wù)之所以相互干擾,是因?yàn)樗鼈兘徊嬖谝黄?,沒(méi)有隔離開(kāi)。這些事務(wù)按照一定的順序逐一執(zhí)行都是正確的。如何保證這些事務(wù)并發(fā)執(zhí)行也是正確的?即如何保證事務(wù)的隔離性。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)可串行化可串行化通??醋魇嵌鄠€(gè)事務(wù)并發(fā)執(zhí)行的正確性準(zhǔn)則。具體判定方法如下:各單個(gè)事務(wù)如能將數(shù)據(jù)庫(kù)從一個(gè)正確狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)正確狀態(tài),則認(rèn)為該事務(wù)是正確的;按任何一個(gè)串行順序依次執(zhí)行多個(gè)事務(wù)也是正確的(這里的串行順序假定各個(gè)事務(wù)間彼此獨(dú)立、不交叉)。事務(wù)的交叉執(zhí)行過(guò)程是正確的,當(dāng)且僅當(dāng)其與串行執(zhí)行過(guò)程等價(jià),則稱(chēng)事務(wù)是可串行化的。數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)如何保證并發(fā)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論