版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章
數(shù)據(jù)庫(kù)安全性與完整性9.1計(jì)算機(jī)安全性概論9.2數(shù)據(jù)庫(kù)安全性控制9.3實(shí)體的完整性9.4參照完整性9.5用戶定義的完整性9.6完整性約束命名子句數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享,但數(shù)據(jù)共享必然帶來(lái)數(shù)據(jù)庫(kù)的安全性問(wèn)題;數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)共享不能是無(wú)條件的共享;例:軍事秘密、國(guó)家機(jī)密、新產(chǎn)品實(shí)驗(yàn)數(shù)據(jù)、
市場(chǎng)需求分析、市場(chǎng)營(yíng)銷(xiāo)策略、銷(xiāo)售計(jì)劃、
客戶檔案、醫(yī)療檔案、銀行儲(chǔ)蓄數(shù)據(jù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的共享是在DBMS統(tǒng)一的嚴(yán)格的控制之下的共享,即只允許有合法使用權(quán)限的用戶訪問(wèn)允許他存取的數(shù)據(jù);數(shù)據(jù)庫(kù)系統(tǒng)的安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)主要的性能指標(biāo)之一。問(wèn)題的提出什么是數(shù)據(jù)庫(kù)的安全性什么是數(shù)據(jù)的保密數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù),防止因用戶非法使用數(shù)據(jù)庫(kù)造成數(shù)據(jù)泄露、更改或破壞。數(shù)據(jù)保密是指用戶合法地訪問(wèn)到機(jī)密數(shù)據(jù)后能否對(duì)這些數(shù)據(jù)保密。通過(guò)制訂法律道德準(zhǔn)則和政策法規(guī)來(lái)保證。9.1計(jì)算機(jī)安全性概論9.1.1計(jì)算機(jī)系統(tǒng)的三類(lèi)安全性問(wèn)題
三類(lèi)計(jì)算機(jī)系統(tǒng)安全性問(wèn)題
技術(shù)安全類(lèi)管理安全類(lèi)政策法律類(lèi)指計(jì)算機(jī)系統(tǒng)中采用具有一定安全性的硬件、軟件來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)系統(tǒng)及其所存數(shù)據(jù)的安全保護(hù),當(dāng)計(jì)算機(jī)系統(tǒng)受到無(wú)意或惡意的攻擊時(shí)仍能保證系統(tǒng)正常運(yùn)行,保證系統(tǒng)內(nèi)的數(shù)據(jù)不增加、不丟失、不泄露。軟硬件意外故障、場(chǎng)地的意外事故、管理不善導(dǎo)致的計(jì)算機(jī)設(shè)備和數(shù)據(jù)介質(zhì)的物理破壞、丟失等安全問(wèn)題政府部門(mén)建立的有關(guān)計(jì)算機(jī)犯罪、數(shù)據(jù)安全保密的法律道德準(zhǔn)則和政策法規(guī)、法令數(shù)據(jù)庫(kù)安全性控制(續(xù))數(shù)據(jù)庫(kù)安全性控制的常用方法用戶標(biāo)識(shí)和鑒定存取控制視圖審計(jì)密碼存儲(chǔ)存取控制數(shù)據(jù)庫(kù)安全最重要的一點(diǎn)就是確保只授權(quán)給有資格的用戶訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限,同時(shí)令所有未授權(quán)的人員無(wú)法接近數(shù)據(jù)。這主要是通過(guò)DBMS提供的存取控制機(jī)制實(shí)現(xiàn)的。在數(shù)據(jù)庫(kù)系統(tǒng)中,為了保證用戶只能訪問(wèn)他有權(quán)存取的數(shù)據(jù),必須預(yù)先對(duì)每個(gè)用戶定義存取權(quán)限。這些定義放在數(shù)據(jù)字典中,被稱(chēng)為安全規(guī)則或授權(quán)規(guī)則。對(duì)于通過(guò)鑒定獲得上機(jī)權(quán)的用戶(即合法用戶),系統(tǒng)根據(jù)他的存取權(quán)限定義對(duì)他的各種操作請(qǐng)求進(jìn)行控制,確保他只執(zhí)行合法操作用戶權(quán)限定義和合法權(quán)檢查機(jī)制一起組成了DBMS的安全子系統(tǒng)存取控制機(jī)制主要包括兩部分:
定義存取權(quán)限
合法權(quán)限檢查常用存取控制方法自主存取控制(簡(jiǎn)稱(chēng)DAC)靈活強(qiáng)制存取控制(簡(jiǎn)稱(chēng)
MAC)嚴(yán)格同一用戶對(duì)于不同的數(shù)據(jù)對(duì)象有不同的存取權(quán)限不同的用戶對(duì)同一對(duì)象也有不同的權(quán)限用戶還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶每一個(gè)數(shù)據(jù)對(duì)象被標(biāo)以一定的密級(jí)每一個(gè)用戶也被授予某一個(gè)級(jí)別的許可證對(duì)于任意一個(gè)對(duì)象,只有具有合法許可證的用戶才可以存取自主存取控制方法通過(guò)
SQL的GRANT
語(yǔ)句和
REVOKE
語(yǔ)句實(shí)現(xiàn)用戶權(quán)限組成數(shù)據(jù)對(duì)象操作類(lèi)型定義用戶存取權(quán)限:定義用戶可以在哪些數(shù)據(jù)庫(kù)對(duì)象上進(jìn)行哪些類(lèi)型的操作定義存取權(quán)限稱(chēng)為授權(quán)
對(duì)象類(lèi)型對(duì)象操作類(lèi)型數(shù)據(jù)庫(kù)模式CREATESCHEMA基本表CREATETABLE,ALTERTABLE模式視圖CREATEVIEW索引CREATEINDEX數(shù)據(jù)基本表和視圖SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALLPRIVILEGES屬性列SELECT,INSERT,UPDATE,REFERENCES,ALLPRIVILEGES表9.3關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的存取權(quán)限授權(quán)與回收一、GRANTGRANT語(yǔ)句的一般格式:GRANT<權(quán)限>[,<權(quán)限>]...
ON<對(duì)象類(lèi)型><對(duì)象名>[,<對(duì)象類(lèi)型><對(duì)象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];語(yǔ)義:將對(duì)指定操作對(duì)象的指定操作權(quán)限授予指定的用戶
GRANT(續(xù))發(fā)出GRANT:DBA數(shù)據(jù)庫(kù)對(duì)象創(chuàng)建者(即屬主Owner)擁有該權(quán)限的用戶按受權(quán)限的用戶
一個(gè)或多個(gè)具體用戶PUBLIC(全體用戶)WITHGRANTOPTION子句WITHGRANTOPTION子句:指定:可以再授予沒(méi)有指定:不能傳播不允許循環(huán)授權(quán)[例1]把查詢Student表權(quán)限授給用戶U1GRANTSELECTONTABLEStudentTOU1;[例2]把對(duì)Student表和Course表的全部權(quán)限授予用戶U2和U3GRANTALLPRIVILIGES
ONTABLEStudent,CourseTOU2,U3;[例3]把對(duì)表SC的查詢權(quán)限授予所有用戶GRANTSELECTONTABLESC TOPUBLIC;[例4]把查詢Student表和修改學(xué)生學(xué)號(hào)的權(quán)限授給用戶U4 GRANTUPDATE(Sno),SELECT ONTABLEStudent TOU4;[例5]把對(duì)表SC的INSERT權(quán)限授予U5用戶,并允許他再將此權(quán)限授予其他用戶GRANTINSERTONTABLESCTOU5
WITHGRANTOPTION;執(zhí)行例5后,U5不僅擁有了對(duì)表SC的INSERT權(quán)限,
還可以傳播此權(quán)限:[例6]GRANTINSERTONTABLESCTOU6
WITHGRANTOPTION;
同樣,U6還可以將此權(quán)限授予U7:[例7]GRANTINSERTONTABLESCTOU7;
但U7不能再傳播此權(quán)限。U5-->U6-->U7用戶權(quán)限定義表授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫(kù)對(duì)象名允許的操作類(lèi)型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAPUBLIC關(guān)系SCSELECT不能DBAU4關(guān)系StudentSELECT不能DBAU4屬性列Student.SnoUPDATE不能DBAU5關(guān)系SCINSERT能U5U6關(guān)系SCINSERT能U6U7關(guān)系SCINSERT不能二、收回權(quán)限
REVOKE一般格式:REVOKE<權(quán)限>[,<權(quán)限>]...ON<對(duì)象類(lèi)型><對(duì)象名>[,<對(duì)象類(lèi)型><對(duì)象名>]FROM<用戶>[,<用戶>]...[CASCADE|RESTRICT];功能:從指定用戶那里收回對(duì)指定對(duì)象的指定權(quán)限[例8]把用戶U4修改學(xué)生學(xué)號(hào)的權(quán)限收回 REVOKEUPDATE(Sno) ONTABLEStudent FROMU4;[例9]收回所有用戶對(duì)表SC的查詢權(quán)限 REVOKESELECT ONTABLESC FROMPUBLIC;[例10]把用戶U5對(duì)SC表的INSERT權(quán)限收回 REVOKEINSERT ONTABLESC FROMU5CASCADE;權(quán)限的級(jí)聯(lián)回收系統(tǒng)將收回直接或間接從U5處獲得的對(duì)SC表的INSERT權(quán)限:-->U5-->U6-->U7收回U5、U6、U7獲得的對(duì)SC表的INSERT權(quán)限:<--U5<--U6<--U7小結(jié):SQL靈活的授權(quán)機(jī)制DBA:擁有所有對(duì)象的所有權(quán)限不同的權(quán)限授予不同的用戶用戶:擁有自己建立的對(duì)象的全部的操作權(quán)限GRANT:授予其他用戶被授權(quán)的用戶“繼續(xù)授權(quán)”許可:再授予所有授予出去的權(quán)力在必要時(shí)又都可用REVOKE語(yǔ)句收回用戶權(quán)限定義表
執(zhí)行[例8]到[例10]的語(yǔ)句后,學(xué)生-課程數(shù)據(jù)庫(kù)中的用戶權(quán)限定義表授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫(kù)對(duì)象名允許的操作類(lèi)型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAU4關(guān)系StudentSELECT不能3.創(chuàng)建數(shù)據(jù)庫(kù)模式的權(quán)限對(duì)數(shù)據(jù)庫(kù)模式的授權(quán)由DBA在創(chuàng)建用戶時(shí)實(shí)現(xiàn)
創(chuàng)建用戶語(yǔ)句一般格式如下:
CREATEUSER<username>[WITH][DBA︱RESOURCE︱CONNECT];創(chuàng)建數(shù)據(jù)庫(kù)模式的權(quán)限(續(xù))只有系統(tǒng)的超級(jí)用戶才有權(quán)創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)用戶新創(chuàng)建的數(shù)據(jù)庫(kù)用戶有三種權(quán)限:CONNECT、RESOURCE和DBA命令中若沒(méi)有指定創(chuàng)建的新用戶的權(quán)限,默認(rèn)該用戶擁有CONNECT權(quán)限。擁有CONNECT權(quán)限的用戶不能創(chuàng)建新用戶,不能創(chuàng)建模式,也不能創(chuàng)建基本表,只能登錄數(shù)據(jù)庫(kù)。擁有RESOURCE權(quán)限的用戶能創(chuàng)建基本表和視圖,成為所創(chuàng)建對(duì)象的屬主,但不能創(chuàng)建模式,不能創(chuàng)建新的用戶。擁有DBA權(quán)限的用戶是系統(tǒng)中的超級(jí)用戶,可以創(chuàng)建新的用戶、創(chuàng)建模式、創(chuàng)建基本表和視圖等;擁有對(duì)所有數(shù)據(jù)庫(kù)對(duì)象的存取權(quán)限,還可以把這些權(quán)限授予一般用戶。數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色是被命名的一組與數(shù)據(jù)庫(kù)相關(guān)的權(quán)限,角色是權(quán)限的集合。因此可以為一組具有相同權(quán)限的用戶創(chuàng)建一個(gè)角色,使用角色來(lái)管理數(shù)據(jù)庫(kù)權(quán)限可以簡(jiǎn)化授權(quán)的過(guò)程。一、角色的創(chuàng)建GREATEROLE<角色名>;二、給角色授權(quán)GRANT<權(quán)限>[,<權(quán)限>]...ON<對(duì)象類(lèi)型><對(duì)象名>]TO<角色>[,<角色>]...;三、將一個(gè)角色授予其他角色或用戶GRANT<角色1>[,<角色2>]...TO<角色3>[,<用戶1>]...[WITHADMINOPTION];四、角色權(quán)限的收回REVOKE<權(quán)限>[,<權(quán)限>]...ON<對(duì)象類(lèi)型><對(duì)象名>FROM<角色>[,<角色>]...;數(shù)據(jù)庫(kù)角色(續(xù))[例11]通過(guò)角色來(lái)實(shí)現(xiàn)將一組權(quán)限授予一個(gè)用戶。步驟如下:1.首先創(chuàng)建一個(gè)角色
R1CREATEROLER1;2.然后使用GRANT語(yǔ)句,使角色R1擁有Student表的SELECT、UPDATE、INSERT權(quán)限GRANTSELECT,UPDATE,INSERTONTABLEStudentTOR1;數(shù)據(jù)庫(kù)角色(續(xù))3.將這個(gè)角色授予王平,張明,趙玲。使他們具有角色R1所包含的全部權(quán)限GRANTR1TO王平,張明,趙玲;4.可以一次性通過(guò)R1來(lái)回收王平的這3個(gè)權(quán)限REVOKER1FROM王平;自主存取控制缺點(diǎn)可能存在數(shù)據(jù)的“無(wú)意泄露”原因:這種機(jī)制僅僅通過(guò)對(duì)數(shù)據(jù)的存取權(quán)限來(lái)進(jìn)行安全控制,而數(shù)據(jù)本身并無(wú)安全性標(biāo)記解決:對(duì)系統(tǒng)控制下的所有主客體實(shí)施強(qiáng)制存取控制策略
強(qiáng)制存?。∕AC)控制方法在MAC中,DBMS所管理的全部實(shí)體被分為主體和客體兩大類(lèi)。主體是系統(tǒng)中的活動(dòng)實(shí)體。
DBMS所管理的實(shí)際用戶;
代表用戶的各進(jìn)程。客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的。
文件
基表
索引
視圖敏感度標(biāo)記對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記分成若干級(jí)別:
絕密(TopSecret)
機(jī)密(Secret)
可信(Confidential)
公開(kāi)(Public)主體的敏感度標(biāo)記稱(chēng)為許可證級(jí)別(ClearanceLevel);客體的敏感度標(biāo)記稱(chēng)為密級(jí)(ClassificationLevel);MAC機(jī)制就是通過(guò)對(duì)比主體的Label和客體的Label,最終確定主體是否能夠存取客體。強(qiáng)制存取控制規(guī)則當(dāng)某一用戶(或某一主體)以標(biāo)記label注冊(cè)入系統(tǒng)時(shí),系統(tǒng)要求他對(duì)任何客體的存取必須遵循下面兩條規(guī)則:(1)僅當(dāng)主體的許可證級(jí)別大于或等于客體的密級(jí)時(shí),該主體才能讀取相應(yīng)的客體;(2)僅當(dāng)主體的許可證級(jí)別等于客體的密級(jí)時(shí),該主體才能寫(xiě)相應(yīng)的客體。修正規(guī)則主體的許可證級(jí)別
<=客體的密級(jí)
主體能寫(xiě)客體用戶可為寫(xiě)入的數(shù)據(jù)對(duì)象賦予高于自己的許可證級(jí)別的密級(jí)一旦數(shù)據(jù)被寫(xiě)入,該用戶自己也不能再讀該數(shù)據(jù)對(duì)象了。規(guī)則的共同點(diǎn):禁止了擁有高許可證級(jí)別的主體更新低密級(jí)的數(shù)據(jù)對(duì)象強(qiáng)制存取控制的特點(diǎn)MAC是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)標(biāo)記無(wú)論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù)從而提供了更高級(jí)別的安全性DAC與MACDAC與MAC共同構(gòu)成DBMS的安全機(jī)制原因:較高安全性級(jí)別提供的安全保護(hù)要包含較低級(jí)別的所有保護(hù)先進(jìn)行DAC檢查,通過(guò)DAC檢查的數(shù)據(jù)對(duì)象再由系統(tǒng)進(jìn)行MAC檢查,只有通過(guò)MAC檢查的數(shù)據(jù)對(duì)象方可存取。數(shù)據(jù)的正確性和相容性防止不合語(yǔ)義的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)。例:學(xué)生的年齡必須是整數(shù),取值范圍為14--29;
學(xué)生的性別只能是男或女;
學(xué)生的學(xué)號(hào)一定是唯一的;
學(xué)生所在的系必須是學(xué)校開(kāi)設(shè)的系;完整性:真實(shí)地反映現(xiàn)實(shí)世界數(shù)據(jù)庫(kù)的完整性DBMS的完整性控制機(jī)制1.定義功能一個(gè)完善的完整性控制機(jī)制應(yīng)該允許用戶定義各類(lèi)完整性約束條件。例:銀行數(shù)據(jù)庫(kù)中“借貸總金額應(yīng)平衡”的約束就應(yīng)該是延遲執(zhí)行的約束3.違約反應(yīng)檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來(lái)保證數(shù)據(jù)的完整性。立即執(zhí)行的約束(Immediateconstraints)語(yǔ)句執(zhí)行完后立即檢查是否違背完整性約束
延遲執(zhí)行的約束(Deferred
constrainsts)完整性檢查延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后進(jìn)行2.檢查功能拒絕該操作其他處理方法實(shí)體完整性定義關(guān)系模型的實(shí)體完整性CREATETABLE中用PRIMARYKEY定義單屬性構(gòu)成的碼有兩種說(shuō)明方法
定義為列級(jí)約束條件定義為表級(jí)約束條件對(duì)多個(gè)屬性構(gòu)成的碼只有一種說(shuō)明方法定義為表級(jí)約束條件實(shí)體完整性定義(續(xù))(1)在列級(jí)定義主碼CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
SsexCHAR(2),SageSMALLINT,
SdeptCHAR(20));(2)在表級(jí)定義主碼CREATETABLEStudent(SnoCHAR(9),
SnameCHAR(20)NOTNULL,
SsexCHAR(2),SageSMALLINT,
SdeptCHAR(20),
PRIMARYKEY(Sno));實(shí)體完整性定義(續(xù))CREATETABLESC(SnoCHAR(9)NOTNULL,
CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno)/*只能在表級(jí)定義主碼*/);實(shí)體完整性檢查和違約處理插入或?qū)χ鞔a列進(jìn)行更新操作時(shí),RDBMS按照實(shí)體完整性規(guī)則自動(dòng)進(jìn)行檢查。包括:1.檢查主碼值是否唯一,如果不唯一則拒絕插入或修改2.檢查主碼的各個(gè)屬性是否為空,只要有一個(gè)為空就拒絕插入或修改實(shí)體完整性檢查和違約處理(續(xù))檢查記錄中主碼值是否唯一的方法全表掃描索引參照完整性定義例如,關(guān)系SC中一個(gè)元組表示一個(gè)學(xué)生選修的某門(mén)課程的成績(jī),(Sno,Cno)是主碼。Sno,Cno分別參照引用Student表的主碼和Course表的主碼
CREATETABLESC(SnoCHAR(9)NOTNULL,
CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*在表級(jí)定義實(shí)體完整性*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*在表級(jí)定義參照完整性*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*在表級(jí)定義參照完整性*/);參照完整性檢查和違約處理可能破壞參照完整性的情況及違約處理被參照表(例如Student)參照表(例如SC)違約處理可能破壞參照完整性
插入元組拒絕可能破壞參照完整性
修改外碼值拒絕刪除元組
可能破壞參照完整性拒絕/級(jí)連刪除/設(shè)置為空值修改主碼值
可能破壞參照完整性拒絕/級(jí)連修改/設(shè)置為空值違約處理(續(xù))顯式說(shuō)明參照完整性的違約處理示例CREATETABLESC(SnoCHAR(9)NOTNULL,
CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno), FOREIGNKEY(Sno)REFERENCESStudent(Sno) ONDELETECASCADE/*級(jí)聯(lián)刪除SC表中相應(yīng)的元組*/
ONUPDATECASCADE,/*級(jí)聯(lián)更新SC表中相應(yīng)的元組*/
FOREIGNKEY(Cno)REFERENCESCourse(Cno)
ONDELETENOACTION
/*當(dāng)刪除course
表中的元組造成了與SC表不一致時(shí)拒絕刪除*/
ONUPDATECASCADE
/*當(dāng)更新course表中的cno時(shí),級(jí)聯(lián)更新SC表中相應(yīng)的元組*/
);用戶定義的完整性用戶定義的完整性就是針對(duì)某一具體應(yīng)用的數(shù)據(jù)必須滿足的語(yǔ)義要求
RDBMS提供,而不必由應(yīng)用程序承擔(dān)屬性上的約束條件的定義CREATETABLE時(shí)定義列值非空(NOTNULL)列值唯一(UNIQUE)檢查列值是否滿足一個(gè)布爾表達(dá)式(CHECK)屬性上的約束條件的定義(續(xù))Student表的Ssex只允許取“男”或“女”。CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,
SnameCHAR(8)NOTNULL,
SsexCHAR(2)CHECK(SsexIN(‘男’,‘女’))
,/*性別屬性Ssex只允許取'男'或'女'*/SageSMALLINT,
SdeptCHAR(20));屬性上的約束條件檢查和違約處理插入元組或修改屬性的值時(shí),RDBMS檢查屬性上的約束條件是否被滿足如果不滿足則操作被拒絕執(zhí)行
元組上的約束條件的定義在CREATETABLE時(shí)可以用CHECK短語(yǔ)定義元組上的約束條件,即元組級(jí)的限制同屬性值限制相比,元組級(jí)的限制可以設(shè)置不同屬性之間的取值的相互約束條件
元組上的約束條件的定義(續(xù))當(dāng)學(xué)生的性別是男時(shí),其名字不能以Ms.打頭。
CREATETABLEStudent(SnoCHAR(9),
SnameCHAR(8)NOTNULL,
SsexCHAR(2),SageSMALLINT,
SdeptCHAR(20),PRIMARYKEY(Sno),
CHECK(Ssex='女'ORSnameNOTLIKE'Ms.%')/*定義了元組中Sname和
Ssex兩個(gè)屬性值之間的約束條件*/);性別是女性的元組都能通過(guò)該項(xiàng)檢查,因?yàn)镾sex=‘女’成立;當(dāng)性別是男性時(shí),要通過(guò)檢查則名字一定不能以Ms.打頭元組上的約束條件檢查和違約處理插入元組或修改屬性的值時(shí),RDBMS檢查元組上的約束條件是否被滿足如果不滿足則操作被拒絕執(zhí)行
完整性約束命名子句CONSTRAINT
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025特許經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本
- 洛陽(yáng)師范學(xué)院《中學(xué)地理教學(xué)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024實(shí)驗(yàn)室設(shè)備選購(gòu)合同3篇
- 2024年城市核心區(qū)域房產(chǎn)交易定金合同范本2篇
- 2024專(zhuān)項(xiàng)工作合作合同
- 2024年度農(nóng)業(yè)智能化溫室建設(shè)與運(yùn)營(yíng)管理合同3篇
- 城市廣場(chǎng)綠化養(yǎng)護(hù)承包合同
- 商業(yè)易主協(xié)議
- 電子產(chǎn)品生產(chǎn)線招投標(biāo)流程
- 廣告市場(chǎng)應(yīng)急照明施工協(xié)議
- GB/T 5593-2015電子元器件結(jié)構(gòu)陶瓷材料
- GB/T 3871.6-1993農(nóng)業(yè)輪式和履帶拖拉機(jī)試驗(yàn)方法第6部分制動(dòng)試驗(yàn)
- GB/T 22844-2009配套床上用品
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 17646-2013小型風(fēng)力發(fā)電機(jī)組設(shè)計(jì)要求
- 中醫(yī)拔罐技術(shù)試題及答案
- 2023年蘇教版小學(xué)數(shù)學(xué)全套教材內(nèi)容安排表
- 滅火器驗(yàn)收表
- 裝修工程竣工驗(yàn)收?qǐng)?bào)告(7篇)
- 商務(wù)溝通-課件
- ommaya囊的護(hù)理教學(xué)課件
評(píng)論
0/150
提交評(píng)論