![數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第5章 數(shù)據(jù)庫優(yōu)化和管理_第1頁](http://file4.renrendoc.com/view14/M03/19/38/wKhkGWcEqgWAT2YMAAHYv5JMz3Q078.jpg)
![數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第5章 數(shù)據(jù)庫優(yōu)化和管理_第2頁](http://file4.renrendoc.com/view14/M03/19/38/wKhkGWcEqgWAT2YMAAHYv5JMz3Q0782.jpg)
![數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第5章 數(shù)據(jù)庫優(yōu)化和管理_第3頁](http://file4.renrendoc.com/view14/M03/19/38/wKhkGWcEqgWAT2YMAAHYv5JMz3Q0783.jpg)
![數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第5章 數(shù)據(jù)庫優(yōu)化和管理_第4頁](http://file4.renrendoc.com/view14/M03/19/38/wKhkGWcEqgWAT2YMAAHYv5JMz3Q0784.jpg)
![數(shù)據(jù)庫原理及應(yīng)用教程(第5版) (微課版)課件 第5章 數(shù)據(jù)庫優(yōu)化和管理_第5頁](http://file4.renrendoc.com/view14/M03/19/38/wKhkGWcEqgWAT2YMAAHYv5JMz3Q0785.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
北京林業(yè)大學(xué)數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫安全內(nèi)容概述背景企業(yè)的業(yè)務(wù)過程信息國家機(jī)構(gòu)的業(yè)務(wù)管理信息國防情報(bào)等具有密級(jí)的信息數(shù)據(jù)庫······管理存儲(chǔ)和使用存儲(chǔ)和使用············DBMS為了適應(yīng)和滿足數(shù)據(jù)共享的環(huán)境和要求,DBMS要保證整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn),防止數(shù)據(jù)泄露,惡意修改,不一致產(chǎn)生,產(chǎn)生問題后的及時(shí)恢復(fù),需要一整套而有效的保護(hù)措施。數(shù)據(jù)庫安全內(nèi)容概述DBMS對(duì)數(shù)據(jù)安全的保護(hù)功能安全性控制完整性控制并發(fā)性控制數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫安全內(nèi)容針對(duì)的問題數(shù)據(jù)庫安全內(nèi)容概述安全性控制完整性控制并發(fā)性控制數(shù)據(jù)庫恢復(fù)防止數(shù)據(jù)泄露,惡意修改產(chǎn)生問題后的及時(shí)恢復(fù)防止數(shù)據(jù)的不一致性數(shù)據(jù)庫安全性含義、控制方法及SQLServer安全性機(jī)制數(shù)據(jù)庫安全性含義安全性控制的一般方法SQLServer數(shù)據(jù)庫安全性機(jī)制總結(jié)本章目錄CONTENTS數(shù)據(jù)庫安全性含義數(shù)據(jù)庫安全性含義法律、社會(huì)和倫理方面環(huán)境控制方面政策方面計(jì)算機(jī)軟硬件的安全性運(yùn)行方面系統(tǒng)軟件方面物理控制方面數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止非法使用所造成的數(shù)據(jù)泄露、更改或破壞。安全性控制的一般方法編寫合法的程序繞過DBMS的安全管理機(jī)制,直接在操作系統(tǒng)上,讀取、修改相關(guān)數(shù)據(jù)。用戶登錄數(shù)據(jù)庫管理系統(tǒng)后,使用了不在其權(quán)限范圍中的數(shù)據(jù)?!踩钥刂剖侵敢M可能地杜絕所有可能的數(shù)據(jù)庫非法訪問。安全性控制的主要問題面臨的問題:安全性不僅是數(shù)據(jù)庫層面的問題,在計(jì)算機(jī)系統(tǒng)中都存在這個(gè)問題。在計(jì)算機(jī)系統(tǒng)中,安全措施是通過層層設(shè)置的,安全模型的層次如下:安全性控制模型用戶DBMS數(shù)據(jù)庫操作系統(tǒng)安全控制模型的層次用戶標(biāo)識(shí)和鑒定數(shù)據(jù)庫安全性控制的手段用戶存取權(quán)限控制定義視圖數(shù)據(jù)加密數(shù)據(jù)審計(jì)數(shù)據(jù)庫安全性控制手段由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份,系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí)。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核實(shí),通過鑒定后才提供機(jī)器的使用權(quán)。用戶標(biāo)識(shí)和鑒定手段概述用戶提供標(biāo)識(shí)系統(tǒng)用戶提供標(biāo)識(shí)存儲(chǔ)合法標(biāo)識(shí)比較服務(wù)器級(jí)別安全性管理SQLServer登錄賬號(hào)的相關(guān)操作SQLServer身份驗(yàn)證模式SQLServer服務(wù)器角色總結(jié)主要內(nèi)容CONTENTSSQLServer登錄賬號(hào)的相關(guān)操作登錄賬號(hào)和用戶賬號(hào)在SQLServer中,賬號(hào)有兩種:登錄賬號(hào)(LoginName)數(shù)據(jù)庫的用戶賬號(hào)(UserName)數(shù)據(jù)庫及其管理系統(tǒng)服務(wù)器表和視圖登錄賬號(hào)數(shù)據(jù)庫的用戶賬號(hào)創(chuàng)建登錄賬號(hào)的過程創(chuàng)建登錄賬號(hào)的用戶名和密碼等登錄標(biāo)識(shí)信息。創(chuàng)建登錄賬號(hào)的服務(wù)器角色創(chuàng)建登錄賬號(hào)的登錄名、驗(yàn)證模式和密碼步驟如下:‘對(duì)象資源管理器’;展開‘安全性’節(jié)點(diǎn);右鍵單擊‘登錄名’;選擇‘新建登錄名’;輸入登錄名;選擇身份驗(yàn)證模式;輸入密碼并確認(rèn);選擇密碼策略。指定登錄賬號(hào)的服務(wù)器角色步驟如下:選擇‘服務(wù)器角色’;確定服務(wù)器角色并點(diǎn)擊‘確認(rèn)’。修改和刪除登錄賬號(hào)修改登錄賬號(hào)在‘對(duì)象資源管理器’中展開‘安全性’節(jié)點(diǎn)下面的‘登錄名’節(jié)點(diǎn),右鍵選擇要修改的登錄名,選擇彈出菜單中的‘屬性’菜單就可以對(duì)登錄賬號(hào)進(jìn)行修改。刪除登錄賬號(hào)在‘對(duì)象資源管理器’中展開‘安全性’節(jié)點(diǎn)下面的‘登錄名’節(jié)點(diǎn),右鍵選擇要?jiǎng)h除的登錄名,選擇彈出菜單中的‘刪除’菜單即可刪除指定的登錄賬號(hào)。SQLServer身份驗(yàn)證模式SQLServer身份驗(yàn)證方法的設(shè)置步驟如下:‘對(duì)象資源管理器’中右鍵‘服務(wù)器’彈出菜單中選擇‘屬性’‘服務(wù)器屬性’窗口中‘選擇左側(cè)的‘安全性’選擇身份驗(yàn)證模式重啟SQLServer兩種主要的驗(yàn)證模式Windows身份驗(yàn)證使用Windows操作系統(tǒng)進(jìn)行用戶的登錄身份驗(yàn)證將驗(yàn)證用戶的工作讓windows進(jìn)行。只支持windows環(huán)境的驗(yàn)證?;旌向?yàn)證方式SQLServer自行進(jìn)行用戶的登錄身份驗(yàn)證支持非windows用戶登錄。一般用于各類Web程序應(yīng)用使用數(shù)據(jù)庫的情況。SQLServer服務(wù)器角色SQLServer服務(wù)器角色的查看主要步驟:角色是權(quán)限的集合,將不同權(quán)限根據(jù)業(yè)務(wù)關(guān)系,組成角色。SQLServer默認(rèn)提供的角色如圖所示:默認(rèn)安裝的角色權(quán)限概述數(shù)據(jù)庫管理員不能創(chuàng)建服務(wù)器角色,只能夠?qū)⑵渌巧蛘哂脩籼砑拥椒?wù)器角色中。服務(wù)器角色描
述bulkadmin允許非sysadmin用戶運(yùn)行BULKINSERT語句dbcreator創(chuàng)建、更改、刪除和還原任何數(shù)據(jù)庫diskadmin管理磁盤文件processadmin終止SQLServer實(shí)例中運(yùn)行的進(jìn)程public每個(gè)SQLServer登錄賬號(hào)都屬于public服務(wù)器角色securityadmin管理登錄名及其屬性serveradmin更改服務(wù)器范圍的配置選項(xiàng)和關(guān)閉服務(wù)器setupadmin添加和刪除鏈接的服務(wù)器,并且也可以執(zhí)行某些系統(tǒng)存儲(chǔ)過程sysadmin在服務(wù)器中執(zhí)行任何活動(dòng)總結(jié)知識(shí)點(diǎn)總結(jié)賬號(hào)登錄賬號(hào)用戶賬號(hào)創(chuàng)建方法修改方法刪除方法用戶名驗(yàn)證模式密碼策略windows混合服務(wù)器角色用一個(gè)用戶名或用戶標(biāo)識(shí)符來標(biāo)明用戶的身份,系統(tǒng)以此來鑒別用戶的合法性。用戶標(biāo)識(shí)和鑒定標(biāo)識(shí)的表示方法用戶標(biāo)識(shí)和鑒定標(biāo)識(shí)的表示方法用戶標(biāo)識(shí)符是用戶公開的標(biāo)識(shí),它不足以成為鑒別用戶身份的憑證。通過用戶名和口令來鑒定用戶的方法簡單易行,但用戶名和口令的產(chǎn)生和使用比較簡單,也容易被竊取,因此還可采用更復(fù)雜的方法。用戶存取權(quán)限控制手段概述用戶存取權(quán)限指的是不同的用戶對(duì)于不同的數(shù)據(jù)對(duì)象允許執(zhí)行的操作權(quán)限。在數(shù)據(jù)庫系統(tǒng)中,定義用戶存取權(quán)限稱為授權(quán)。這些授權(quán)定義經(jīng)過編譯后以一張授權(quán)表的形式存放在數(shù)據(jù)字典中。實(shí)施方法建立授權(quán)表用戶標(biāo)識(shí)數(shù)據(jù)對(duì)象操作類型用戶存取權(quán)限控制存取權(quán)限的例子對(duì)于授權(quán)的使用,一個(gè)衡量授權(quán)機(jī)制的重要指標(biāo)就是授權(quán)粒度,即可以定義的數(shù)據(jù)對(duì)象的范圍,在關(guān)系數(shù)據(jù)庫中,授權(quán)粒度包括關(guān)系、記錄或?qū)傩?。授?quán)粒度越細(xì),授權(quán)子系統(tǒng)就越靈活,能夠提供的安全性就越完善。數(shù)據(jù)對(duì)象操作類型模式模式建立、修改、檢索外模式建立、修改、檢索內(nèi)模式建立、修改、檢索數(shù)據(jù)表查找、插入、修改、刪除屬性列查找、插入、修改、刪除為不同的用戶定義不同的視圖,可以限制各個(gè)用戶的訪問范圍。視圖是邏輯存在的,其修改操作會(huì)受到限制。定義視圖手段概述實(shí)施方法學(xué)生表學(xué)生選課表學(xué)生看到的成績單老師看到的成績單虛擬的視圖替換方法,該方法使用密鑰將明文中的每一個(gè)字符轉(zhuǎn)換為密文中的字符。轉(zhuǎn)換方法,該方法將明文中的字符按不同的順序重新排列。數(shù)據(jù)加密實(shí)施方法通常將這兩種方法結(jié)合起來使用,就可以達(dá)到相當(dāng)高的安全程度。手段概述加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)加密成為不可直接識(shí)別的格式,數(shù)據(jù)以密文的形式存儲(chǔ)和傳輸。數(shù)據(jù)審計(jì)手段概述審計(jì)功能是一種監(jiān)視措施,它跟蹤記錄有關(guān)數(shù)據(jù)的訪問活動(dòng)。審計(jì)追蹤把用戶對(duì)數(shù)據(jù)庫的所有操作自動(dòng)記錄下來,存放在一個(gè)特殊文件中,即審計(jì)日志中。操作類型(如修改、查詢等),操作終端標(biāo)識(shí)與操作者標(biāo)識(shí),操作日期和時(shí)間,操作所涉及到的相關(guān)數(shù)據(jù)(如基本表、視圖、記錄、屬性等),數(shù)據(jù)的前象和后象等。記錄的內(nèi)容一般包括:SQLServer數(shù)據(jù)安全性機(jī)制三層安全結(jié)構(gòu)結(jié)合安全性模式以及安全性控制手段,SQLServer使用了2層結(jié)構(gòu)的數(shù)據(jù)庫安全機(jī)制,表現(xiàn)為:用戶提供標(biāo)識(shí)服務(wù)器數(shù)據(jù)庫及其管理系統(tǒng)具體數(shù)據(jù)庫及其對(duì)象級(jí)別安全性表和視圖總結(jié)總結(jié)安全性控制的一般方法用戶標(biāo)識(shí)與鑒定用戶存取權(quán)限控制定義視圖數(shù)據(jù)加密數(shù)據(jù)審計(jì)SQLServer數(shù)據(jù)安全機(jī)制服務(wù)器級(jí)別的安全性具體數(shù)據(jù)庫及其對(duì)象的安全性SQLServer具體數(shù)據(jù)庫級(jí)安全管理數(shù)據(jù)庫用戶賬號(hào)的相關(guān)操作數(shù)據(jù)庫角色用戶權(quán)限管理總結(jié)CONTENTS主要內(nèi)容數(shù)據(jù)庫用戶賬號(hào)的相關(guān)操作用戶賬號(hào)要在特定的數(shù)據(jù)庫內(nèi)創(chuàng)建,并關(guān)聯(lián)一個(gè)登錄賬號(hào)(當(dāng)一個(gè)數(shù)據(jù)庫的用戶創(chuàng)建時(shí),必須關(guān)聯(lián)一個(gè)登錄賬號(hào))。每個(gè)登錄賬號(hào)在一個(gè)數(shù)據(jù)庫中只能有一個(gè)用戶賬號(hào),但每個(gè)登錄賬號(hào)可以在不同的數(shù)據(jù)庫中各有一個(gè)用戶賬號(hào)。數(shù)據(jù)庫用戶賬號(hào)登錄賬號(hào)用戶賬號(hào)用戶賬號(hào)用戶賬號(hào)創(chuàng)建賬戶的方式使用‘對(duì)象資源管理器’使用SQL語句創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)1.打開‘對(duì)象資源管理器’2.開展要?jiǎng)?chuàng)建用戶的數(shù)據(jù)庫3.找到其下的‘安全性’節(jié)點(diǎn)創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)使用‘對(duì)象資源管理器’4.右鍵點(diǎn)擊出現(xiàn)的用戶文件夾1.右鍵‘用戶’文件夾2.點(diǎn)擊‘新建用戶’3.添加‘常規(guī)選項(xiàng)卡’中信息創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)使用‘對(duì)象資源管理器’登錄名:對(duì)應(yīng)的登錄賬號(hào)默認(rèn)架構(gòu):該用戶所屬架構(gòu)擁有的架構(gòu)查看和設(shè)置該用戶擁有的架構(gòu)。創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)使用‘對(duì)象資源管理器’使用用戶映射查看數(shù)據(jù)庫用戶賬號(hào)和登錄賬號(hào)的綁定關(guān)系。創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)使用‘對(duì)象資源管理器’user_name:數(shù)據(jù)庫用戶名。login_name:登錄用戶名。創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)使用語句創(chuàng)建CreateUseruser_name
[{For|From}{Loginlogin_name|Certificatecert_name|AsymmetricKeyasym_key_name}|WithoutLogin]和創(chuàng)建用戶的方法類似,找到數(shù)據(jù)庫下的‘安全’文件夾節(jié)點(diǎn)。在文件夾下找到所要修改的用戶。右鍵該用戶,選擇屬性,則可以按照對(duì)話框修改用戶信息。修改步驟如下:修改和刪除數(shù)據(jù)庫用戶賬號(hào)和創(chuàng)建用戶的方法類似,找到數(shù)據(jù)庫下的‘安全’文件夾節(jié)點(diǎn)。在文件夾下找到所要?jiǎng)h除的用戶。右鍵該用戶,選擇刪除對(duì)象,則可以刪除用戶信息。刪除步驟如下:修改和刪除數(shù)據(jù)庫用戶賬號(hào)數(shù)據(jù)庫角色數(shù)據(jù)庫角色概述角色名稱權(quán)限public最基本的數(shù)據(jù)庫角色db_accessadmin可以添加或刪除用戶標(biāo)識(shí)db_backupoperator可以發(fā)出DBCC、CHECKPOINT和BACKUP語句db_datareader可以選擇(?。?shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)db_datawriter可以更改數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)db_ddladmin可以發(fā)出所有DDL語句,但不能發(fā)出GRANT(授權(quán))、REVOKE或DENY語句db_denydatareader不能選擇(?。?shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)db_denydatawriter不能更改數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)db_owner在數(shù)據(jù)庫中有全部權(quán)限db_securityadmin
可以管理全部權(quán)限、對(duì)象所有權(quán)、角色和角色成員資格用戶權(quán)限管理權(quán)限管理分類用戶對(duì)數(shù)據(jù)庫的權(quán)限操作系統(tǒng)權(quán)限對(duì)象權(quán)限用戶權(quán)限管理分類創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表、存儲(chǔ)過程等。用戶對(duì)特定數(shù)據(jù)庫對(duì)象操作對(duì)表和視圖的操作總結(jié)數(shù)據(jù)庫安全知識(shí)點(diǎn)總結(jié)創(chuàng)建用戶的方式修改用戶的方式刪除用戶的方式用戶權(quán)限管理數(shù)據(jù)庫完整性含義、描述方式及分類方式數(shù)據(jù)庫完整性含義數(shù)據(jù)庫完整性的描述方式數(shù)據(jù)庫完整性約束的分類總結(jié)本章目錄CONTENTS數(shù)據(jù)庫完整性的含義數(shù)據(jù)庫完整性的定義確保數(shù)據(jù)庫中的數(shù)據(jù)數(shù)據(jù)庫的完整性數(shù)據(jù)的正確性數(shù)據(jù)的有效性數(shù)據(jù)的相容性數(shù)據(jù)庫完整性的定義防止合法用戶使用數(shù)據(jù)庫時(shí)向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù)。完整性措施的防范對(duì)象是不合語義的數(shù)據(jù)。在安全性的基礎(chǔ)上,完整性可以理解為:數(shù)據(jù)庫完整性的描述方式使用規(guī)則描述數(shù)據(jù)庫完整性的方法違約響應(yīng):規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶發(fā)出的操作請(qǐng)求違背了完整性約束條件,應(yīng)該采取一定的動(dòng)作來保證數(shù)據(jù)的完整性,即違約時(shí)要做的事情。WHEN約束條件:規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請(qǐng)求違背了什么樣的完整性約束條件。觸發(fā)條件:規(guī)定系統(tǒng)什么時(shí)候使用規(guī)則來檢查數(shù)據(jù)。ConditionWhat描述完整性的3個(gè)部分規(guī)則的執(zhí)行時(shí)間立即執(zhí)行:在執(zhí)行多個(gè)語句構(gòu)成的事務(wù)時(shí),執(zhí)行完用戶事務(wù)的一條語句后,系統(tǒng)立即對(duì)數(shù)據(jù)進(jìn)行完整性條件檢查。延遲執(zhí)行:執(zhí)行完事務(wù)的所有語句后,系統(tǒng)才數(shù)據(jù)進(jìn)行完整性條件檢查。規(guī)則的執(zhí)行時(shí)間完整性的形式化描述一條完整性可以用一個(gè)五元組(D,O,A,C,P)來形式化地表示代表約束作用的數(shù)據(jù)對(duì)象。可以是關(guān)系、元組和列三種對(duì)象;D(Data):代表觸發(fā)完整性檢查的數(shù)據(jù)庫操作,即當(dāng)用戶發(fā)出什么操作請(qǐng)求時(shí)需要檢查該完整性規(guī)則,是立即執(zhí)行還是延遲執(zhí)行;O(Operation)代表數(shù)據(jù)對(duì)象必須滿足的語義約束,這是規(guī)則的主體;A(Assertion)完整性的形式化描述代表選擇A作用的數(shù)據(jù)對(duì)象值的謂詞;C(Condition)代表違反完整性規(guī)則時(shí)觸發(fā)執(zhí)行的操作過程。P(Procedure)完整性的形式化舉例例如,對(duì)于“學(xué)號(hào)(SNo)不能為空”的這條完整性約束中,D、O、A、C、P的含義分別如下:D:代表約束作用的數(shù)據(jù)對(duì)象為SNo屬性;O:當(dāng)用戶插入或修改數(shù)據(jù)時(shí)需要檢查該完整性規(guī)則;A:SNo不能為空;C:A可作用于所有記錄的SNo屬性;P:拒絕執(zhí)行用戶請(qǐng)求。數(shù)據(jù)庫完整性約束的分類數(shù)據(jù)庫完整性約束的分類根據(jù)約束條件:值的約束和結(jié)構(gòu)的約束(1)對(duì)數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位和精度等。例如:規(guī)定學(xué)生的姓名數(shù)據(jù)類型為字符型,長度為8值的約束即對(duì)數(shù)據(jù)類型、數(shù)據(jù)格式、取值范圍和空值等進(jìn)行規(guī)定數(shù)據(jù)庫完整性約束的分類(2)對(duì)數(shù)據(jù)格式的約束。例如:規(guī)定出生日期的格式為YY.MM.DD(3)對(duì)取值范圍的約束。例如:月份的取值范圍為1~12(4)對(duì)空值的約束,空值表示未定義或者未知數(shù)值。例如,在SC關(guān)系中,學(xué)號(hào)和課程號(hào)不可以為空。數(shù)據(jù)庫完整性約束的分類結(jié)構(gòu)的約束即對(duì)數(shù)據(jù)之間聯(lián)系的約束(1)函數(shù)依賴約束。例如:2NF,3NF和BCNF需要滿足的函數(shù)依賴。(2)實(shí)體完整性約束。例如:在學(xué)生關(guān)系中,主碼學(xué)號(hào)不能為空。(3)參照完整性約束。例如:在學(xué)生關(guān)系中,外碼系別的約束。(4)統(tǒng)計(jì)約束。例如:規(guī)定某一個(gè)的數(shù)值不得高于這一列的平均值等。數(shù)據(jù)庫完整性約束的分類根據(jù)約束狀態(tài):靜態(tài)約束和動(dòng)態(tài)約束靜態(tài)約束是指對(duì)數(shù)據(jù)庫每一個(gè)確定狀態(tài)所應(yīng)滿足的約束條件,是反映數(shù)據(jù)庫狀態(tài)合理性的約束,這是最重要的一類完整性約束。值的約束和結(jié)構(gòu)的約束均屬于靜態(tài)約束。靜態(tài)約束數(shù)據(jù)庫完整性約束的分類根據(jù)約束狀態(tài):靜態(tài)約束和動(dòng)態(tài)約束動(dòng)態(tài)約束是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(shí),新舊值之間所應(yīng)滿足的約束條件,動(dòng)態(tài)約束反映的是數(shù)據(jù)庫狀態(tài)變遷的約束。例如,學(xué)生年齡在更改時(shí)只能增長,職工工資在調(diào)整時(shí)不得低于其原來的工資。動(dòng)態(tài)約束總結(jié)知識(shí)點(diǎn)總結(jié)含義描述方式形式化表達(dá)分類觸發(fā)條件約束條件違約條件D,O,A,C,P值和結(jié)構(gòu)靜態(tài)和動(dòng)態(tài)數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性的實(shí)施規(guī)則默認(rèn)總結(jié)本章目錄CONTENTS規(guī)則使用規(guī)則進(jìn)行數(shù)據(jù)庫完整性控制規(guī)則(Rule)就是數(shù)據(jù)庫對(duì)存儲(chǔ)在表中的列或用戶自定義數(shù)據(jù)類型中的值的規(guī)定和限制。規(guī)則與其作用的表或用戶自定義數(shù)據(jù)類型是相互獨(dú)立的,即表或用戶自定義對(duì)象的刪除、修改不會(huì)對(duì)與之相連的規(guī)則產(chǎn)生影響。規(guī)則和約束可以同時(shí)使用,表的列可以有一個(gè)規(guī)則及多個(gè)check約束。規(guī)則的使用步驟創(chuàng)建規(guī)則將規(guī)則綁定到數(shù)據(jù)庫的對(duì)象上,或者將規(guī)則從數(shù)據(jù)庫的對(duì)象上松綁。CREATERULErule_nameAScondition_expression創(chuàng)建規(guī)則規(guī)則的使用步驟CREATERULEage_ruleAS@age>=18and@age<=50【例】創(chuàng)建學(xué)生年齡規(guī)則規(guī)則的使用步驟創(chuàng)建規(guī)則將規(guī)則綁定到數(shù)據(jù)庫的對(duì)象上,或者將規(guī)則從數(shù)據(jù)庫的對(duì)象上松綁。創(chuàng)建規(guī)則后,規(guī)則僅僅是一個(gè)存在于數(shù)據(jù)庫中的對(duì)象,并未發(fā)生作用。需要將規(guī)則與數(shù)據(jù)庫表或用戶自定義對(duì)象聯(lián)系起來,才能達(dá)到創(chuàng)建規(guī)則的目的。所謂綁定就是指定規(guī)則作用于哪個(gè)表的哪一列或哪個(gè)用戶自定義數(shù)據(jù)類型。解除規(guī)則與對(duì)象的綁定稱為“松綁”。綁定規(guī)則和松綁規(guī)則的方法sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,'futureonly’][例]綁定規(guī)則age_rule到S表的字段Age。EXECsp_bindrule'age_rule','S.Age‘用存儲(chǔ)過程sp_bindrule綁定規(guī)則規(guī)則對(duì)已經(jīng)輸入表中的數(shù)據(jù)不起作用。綁定規(guī)則和松綁規(guī)則的方法用存儲(chǔ)過程sp_unbindrule松綁規(guī)則的綁定sp_unbindrule[@objname=]'object_name'[,'futureonly'][例]解除已綁定到S表的字段Age的規(guī)則age_rule。EXECsp_unbindrule'S.Age'刪除規(guī)則的方法刪除規(guī)則使用DROPRULE命令刪除規(guī)則DROPRULE{rule_name}[,...n][例]刪除age_rule規(guī)則。DROPRULEage_rule在刪除一個(gè)規(guī)則前必須先將與其綁定的對(duì)象解除綁定。默認(rèn)默認(rèn)的定義及創(chuàng)建方法默認(rèn)(Default)是向用戶輸入記錄時(shí)沒有指定具體數(shù)據(jù)的列中自動(dòng)插入的數(shù)據(jù)。表的一列或一個(gè)用戶自定義數(shù)據(jù)類型只能與一個(gè)默認(rèn)綁定。默認(rèn)的定義及創(chuàng)建方法創(chuàng)建默認(rèn)綁定默認(rèn)到數(shù)據(jù)庫中的對(duì)象默認(rèn)的使用步驟默認(rèn)的定義及創(chuàng)建方法創(chuàng)建默認(rèn)CREATEDEFAULTdefault_nameASconstant_expression[例]創(chuàng)建出生日期默認(rèn)birthday_defa。CREATEDEFAULTbirthday_defaAS'1978-1-1'默認(rèn)的查看、綁定和松綁使用sp_helptext存儲(chǔ)過程可以查看默認(rèn)的信息。[例]查看默認(rèn)birthday_defa。EXECsp_helptextbirthday_defa查看默認(rèn)默認(rèn)的查看、綁定和松綁默認(rèn)的綁定與松綁用存儲(chǔ)過程sp_bindefault綁定默認(rèn)sp_bindefault[@defname=]'default', [@objname=]'object_name' [,'futureonly']用存儲(chǔ)過程sp_unbindefault解除默認(rèn)的綁定sp_unbindefault[@objname=]'object_name'[,'futureonly']默認(rèn)的綁定和松綁的舉例、刪除默認(rèn)[例]綁定默認(rèn)birthday_defa到數(shù)據(jù)表S的Birthday列上。EXECsp_bindefaultbirthday_defa,‘S.[Birthday]’[例]解除默認(rèn)birthday_defa與表S的Birthday列的綁定EXECsp_unbindefault‘S.[Birthday]’默認(rèn)的綁定和松綁的舉例、刪除默認(rèn)使用DROPDEFAULT命令刪除默認(rèn)DROPDEFAULT{default_name}[,…n][例5-21]刪除學(xué)生生日默認(rèn)birthday_defa.DROPDEFGAULTbirthday_defa刪除默認(rèn)在刪除一個(gè)默認(rèn)前必須先將與其綁定的對(duì)象解除綁定總結(jié)知識(shí)點(diǎn)總結(jié)數(shù)據(jù)庫完整性的實(shí)施使用規(guī)則使用默認(rèn)數(shù)據(jù)庫并發(fā)性的含義事務(wù)及其特性并發(fā)操作帶來的不一致性封鎖協(xié)議本章目錄CONTENTS總結(jié)數(shù)據(jù)庫并發(fā)性的含義多個(gè)用戶同時(shí)訪問數(shù)據(jù)庫,如果對(duì)并發(fā)操作不加控制可能會(huì)產(chǎn)生不正確的數(shù)據(jù),破壞數(shù)據(jù)的完整性。并發(fā)控制就是解決這類問題,以保持?jǐn)?shù)據(jù)庫中數(shù)據(jù)的一致性,即在任何一個(gè)時(shí)刻數(shù)據(jù)庫都將以相同的形式給用戶提供數(shù)據(jù)。數(shù)據(jù)庫并發(fā)性的含義事務(wù)及其特性事務(wù)的開始事務(wù)是數(shù)據(jù)庫系統(tǒng)中執(zhí)行的一個(gè)工作單位,它是由用戶定義的一組操作序列。一個(gè)事務(wù)可以是一組SQL語句、一條SQL語句或整個(gè)程序,一個(gè)應(yīng)用程序可以包括多個(gè)事務(wù)。事務(wù)(Transaction)定義事務(wù)的語句有三條:BEGINTRANSACTION事務(wù)的提交COMMIT事務(wù)的回滾ROLLBACK持久性指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是持久的,即使數(shù)據(jù)庫因故障而受到破壞,DBMS也應(yīng)該能夠恢復(fù)。如果多個(gè)事務(wù)并發(fā)地執(zhí)行,應(yīng)像各個(gè)事務(wù)獨(dú)立執(zhí)行一樣,一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。事務(wù)對(duì)數(shù)據(jù)庫的作用是數(shù)據(jù)庫從一個(gè)一致狀態(tài)轉(zhuǎn)變到另一個(gè)一致狀態(tài)。所謂數(shù)據(jù)庫的一致狀態(tài)是指數(shù)據(jù)庫中的數(shù)據(jù)滿足完整性約束。一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)在執(zhí)行時(shí),應(yīng)該遵守“要么不做,要么全做”(NothingorAll)的原則,即不允許完成部分的事務(wù)。事務(wù)(Transaction)原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持久性(Durability)并發(fā)操作帶來的不一致性舉例說明不一致問題的產(chǎn)生過程并發(fā)取款操作。假設(shè)存款余額R=1000元,甲事務(wù)T1取走存款100元,乙事務(wù)T2取走存款200元,如果正常操作,即甲事務(wù)T1執(zhí)行完畢再執(zhí)行乙事務(wù)T2,存款余額更新后應(yīng)該是700元。但是如果按照如下順序操作,則會(huì)有不同的結(jié)果:例:舉例說明不一致問題的產(chǎn)生過程結(jié)果兩個(gè)事務(wù)共取走存款300元,而數(shù)據(jù)庫中的存款卻只少了200元。得到這種錯(cuò)誤的結(jié)果是由甲乙兩個(gè)事務(wù)并發(fā)操作引起的。甲事務(wù)T1讀取存款余額R=1000元;01乙事務(wù)T2讀取存款余額R=1000元;02甲事務(wù)T1取走存款100元,修改存款余額R=R-100=900,把R=900寫回到數(shù)據(jù)庫;03乙事務(wù)T2取走存款200元,修改存款余額R=R-200=800,把R=800寫回到數(shù)據(jù)庫;04引起數(shù)據(jù)不一致性的主要問題數(shù)據(jù)庫的并發(fā)操作導(dǎo)致的數(shù)據(jù)庫不一致性主要有以下三種:丟失更新(LostUpdate)污讀(DirtyRead)不可重讀(UnrepeatableRead)引起數(shù)據(jù)不一致性的主要問題數(shù)據(jù)庫的并發(fā)操作導(dǎo)致的數(shù)據(jù)庫不一致性主要有以下三種:丟失更新(LostUpdate)時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t0
1000
t1FINDR
t2
FINDRt3R=R-100
t4
R=R-200t5UPDATER
t6
900UPDATERt7
800
當(dāng)兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù),并發(fā)執(zhí)行修改操作時(shí),T2把T1或T1把T2的修改結(jié)果覆蓋掉,造成了數(shù)據(jù)的丟失更新問題,導(dǎo)致數(shù)據(jù)的不一致。引起數(shù)據(jù)不一致性的主要問題數(shù)據(jù)庫的并發(fā)操作導(dǎo)致的數(shù)據(jù)庫不一致性主要有以下三種:污讀(DirtyRead)時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t0
1000
t1FINDR
t2R=R-100
t3UPDATER
t4
900FINDRt5ROLLBACK
t6
1000事務(wù)T1更新了數(shù)據(jù)R,事務(wù)T2讀取了更新后的數(shù)據(jù)R,事務(wù)T1由于某種原因被撤銷,修改無效,數(shù)據(jù)R恢復(fù)原值。事務(wù)T2得到的數(shù)據(jù)與數(shù)據(jù)庫的內(nèi)容不一致,這種情況稱為“污讀”。引起數(shù)據(jù)不一致性的主要問題數(shù)據(jù)庫的并發(fā)操作導(dǎo)致的數(shù)據(jù)庫不一致性主要有以下三種:不可重讀(UnrepeatableRead)時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t0
1000
t1FINDR
t2
FINDRt3
R=R-200
t4
UPDATERt5
800
事務(wù)T1讀取了數(shù)據(jù)R,事務(wù)T2讀取并更新了數(shù)據(jù)R,當(dāng)事務(wù)T1再讀取數(shù)據(jù)R以進(jìn)行核對(duì)時(shí),得到的兩次讀取值不一致,這種情況稱為“不可重讀”。封鎖協(xié)議封鎖分類所謂封鎖就是當(dāng)一個(gè)事務(wù)在對(duì)某個(gè)數(shù)據(jù)對(duì)象(可以是數(shù)據(jù)項(xiàng)、記錄、數(shù)據(jù)集以至整個(gè)數(shù)據(jù)庫)進(jìn)行操作之前,必須獲得相應(yīng)的鎖,以保證數(shù)據(jù)操作的正確性和一致性。封鎖的定義封鎖(Lock)技術(shù)和時(shí)標(biāo)(Timestamping)技術(shù),重點(diǎn)介紹封鎖技術(shù)。實(shí)現(xiàn)并發(fā)控制的方法主要有兩種:封鎖分類基本的封鎖類型有兩種排它型封鎖又稱寫封鎖,簡稱為X封鎖,它采用的原理是禁止并發(fā)操作。排它型封鎖(ExclusiveLock)共享封鎖又稱讀封鎖,簡稱為S鎖,它采用的原理是允許其他用戶對(duì)同一數(shù)據(jù)對(duì)象進(jìn)行查詢,但不能對(duì)該數(shù)據(jù)對(duì)象進(jìn)行修改。共享封鎖(ShareLock)封鎖可以保證合理地進(jìn)行并發(fā)控制,保證數(shù)據(jù)的一致性。在封鎖時(shí),要考慮一定的封鎖規(guī)則,例如,何時(shí)開始封鎖、封鎖多長時(shí)間、何時(shí)釋放等,這些封鎖規(guī)則稱為封鎖協(xié)議。封鎖協(xié)議的定義(LockProtocol)使用封鎖協(xié)議的過程使用封鎖協(xié)議的過程通過三級(jí)封鎖協(xié)議在不同程度上給予解決:一級(jí)封鎖協(xié)議二級(jí)封鎖協(xié)議三級(jí)封鎖協(xié)議使用封鎖協(xié)議的過程事務(wù)T在修改數(shù)據(jù)對(duì)象之前必須對(duì)其加X鎖,直到事務(wù)結(jié)束。一級(jí)封鎖協(xié)議時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t0
XLOCKR1000
t1FINDR
t2
XLOCKRt3R=R-100
WAITt4UPDATER
WAITt5UNLOCKX900WAITt6
XLOCKRt7
R=R?200
t8UPDATERt9700UNLOCKX使用封鎖協(xié)議的過程在一級(jí)封鎖協(xié)議的基礎(chǔ)上,另外加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后釋放S鎖。二級(jí)封鎖協(xié)議時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t0
XLOCKR1000
t1FINDR
t2
R=R-100
t3UPDATER
t4900SLOCKRt5ROLLBACKWAITt6UNLOCKX1000SLOCKRt7
FINDRt8UNLOCKS使用封鎖協(xié)議的過程在一級(jí)封鎖協(xié)議的基礎(chǔ)上,另外加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后并不釋放S鎖,而直到事務(wù)T結(jié)束才釋放。三級(jí)封鎖協(xié)議時(shí)
間事務(wù)T1數(shù)據(jù)庫中R的值事務(wù)T2t01000
t1SLOCKR
t2FINDR
t3
XLOCKRt4COMMIT
WAITt5UNLOCKSWAITt6
XLOCKRt7
FINDRt8R=R?200t9UPDATERt10800UNLOCKX封鎖粒度封鎖粒度指封鎖的單位。根據(jù)對(duì)數(shù)據(jù)的不同處理,封鎖的對(duì)象可以是這樣一些邏輯單元:字段、記錄、表、數(shù)據(jù)庫等,封鎖的數(shù)據(jù)對(duì)象的大小叫封鎖粒度。封鎖粒度的含義封鎖粒度封鎖粒度越小,系統(tǒng)中能夠被封鎖的對(duì)象就越多,并發(fā)度越高,但封鎖機(jī)構(gòu)復(fù)雜,系統(tǒng)開銷也就越大。封鎖粒度越大,系統(tǒng)中能夠被封鎖的對(duì)象就越少,并發(fā)度越低,封鎖機(jī)構(gòu)越簡單,相應(yīng)系統(tǒng)開銷也就越小。死鎖和活鎖封鎖所產(chǎn)生的額問題當(dāng)某個(gè)事務(wù)請(qǐng)求對(duì)某一數(shù)據(jù)進(jìn)行排它性封鎖時(shí),由于其他事務(wù)對(duì)該數(shù)據(jù)的操作而使這個(gè)事務(wù)處于永久等待狀態(tài),這種狀態(tài)稱為活鎖?;铈i(Livelock)時(shí)
間事務(wù)T1事務(wù)T2事務(wù)T3事務(wù)T4t0LOCKR
t1
LOCKR
t2
WAITLOCKR
t3UNLOCKWAITWAITLOCKRt4
WAITLOCKRWAITt5
WAIT
WAITt6
WAITUNLOCKWAITt7
WAIT
LOCKRt8
WAIT
死鎖和活鎖封鎖所產(chǎn)生的額問題在同時(shí)處于等待狀態(tài)的兩個(gè)或多個(gè)事務(wù)中,其中的每一個(gè)在它能夠進(jìn)行之前,都等待著某個(gè)數(shù)據(jù),而這個(gè)數(shù)據(jù)已被它們中的某個(gè)事務(wù)所封鎖,這種狀態(tài)稱為死鎖。死鎖(Deadlock)時(shí)
間事務(wù)T1事務(wù)T2t0LOCKR1
t1
LOCKR2t2
t3LOCKR1t4WAITt5WAITLOCKR1t6WAITWAITt7WAITWAIT解決封鎖的方法死鎖的預(yù)防一次性對(duì)所有資源加鎖,如果有一個(gè)資源無法加鎖,則等待。一次加鎖法:規(guī)定資源的序號(hào),按序號(hào)加鎖順序加鎖法:解決封鎖的方法死鎖的預(yù)防如果在事務(wù)依賴圖中沿著箭頭方向存在一個(gè)循環(huán),那么死鎖的條件就形成了,系統(tǒng)就會(huì)出現(xiàn)死鎖。選擇一個(gè)處理死鎖代價(jià)最小的事
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年廚電產(chǎn)品試用活動(dòng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年數(shù)字化過程信號(hào)校驗(yàn)儀行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年排毒養(yǎng)顏飲料行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年固態(tài)存儲(chǔ)控制器芯片行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 微生物肥料在提高作物產(chǎn)量的作用考核試卷
- 塑膠跑道邊緣處理與安全考量考核試卷
- 基因工程疫苗的多靶點(diǎn)設(shè)計(jì)與優(yōu)化考核試卷
- 丙綸纖維的輕量化結(jié)構(gòu)設(shè)計(jì)考核試卷
- 二零二五版女方房產(chǎn)放棄離婚協(xié)議書相關(guān)法律法規(guī)解讀
- 市政工程人才中介合同
- 2023年海南省公務(wù)員錄用考試《行測》真題卷及答案解析
- 公安法制培訓(xùn)
- 電力工程施工售后保障方案
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 《鋼鐵是怎樣練成的》閱讀任務(wù)單及答案
- 新人教版高中數(shù)學(xué)必修第二冊(cè)第六章平面向量及其應(yīng)用教案 (一)
- 期末 (試題) -2024-2025學(xué)年教科版(廣州)英語四年級(jí)上冊(cè)
- 解讀國有企業(yè)管理人員處分條例課件
- 湖南省長沙市一中2024-2025學(xué)年高一生物上學(xué)期期末考試試題含解析
- 碳纖維增強(qiáng)復(fù)合材料在海洋工程中的應(yīng)用情況
- 公司市場分析管理制度
評(píng)論
0/150
提交評(píng)論