數(shù)據(jù)庫(kù)系統(tǒng)第05章 數(shù)據(jù)庫(kù)完整性_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第05章 數(shù)據(jù)庫(kù)完整性_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第05章 數(shù)據(jù)庫(kù)完整性_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第05章 數(shù)據(jù)庫(kù)完整性_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第05章 數(shù)據(jù)庫(kù)完整性_第5頁(yè)
已閱讀5頁(yè),還剩66頁(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)介

AnIntroductiontoDatabaseSystem1數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第五章數(shù)據(jù)庫(kù)完整性AnIntroductiontoDatabaseSystem2第五章數(shù)據(jù)庫(kù)完整性什么是數(shù)據(jù)庫(kù)的完整性?數(shù)據(jù)的正確性和相容性防止不合語(yǔ)義的、不正確的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)。例:學(xué)生的年齡必須是整數(shù),取值在6-50間;學(xué)生的性別只能是男或女;學(xué)生的學(xué)號(hào)一定是唯一的;學(xué)生所在的系必須是學(xué)校已有的系;完整性:保證數(shù)據(jù)庫(kù)能否真實(shí)地反映現(xiàn)實(shí)世界.區(qū)別數(shù)據(jù)完整性和安全性的兩個(gè)概念。AnIntroductiontoDatabaseSystem3

完整性約束條件是數(shù)據(jù)模型的組成部分,約束數(shù)據(jù)庫(kù)中數(shù)據(jù)的語(yǔ)義。

檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件。

操作違背了完整性約束條件,則采取一定的操作來(lái)保證數(shù)據(jù)的完整性。為保證完整性,DBMS必須做到:1.完整性約束的定義機(jī)制2.完整性的檢查機(jī)制3.違約反應(yīng)第五章數(shù)據(jù)庫(kù)完整性AnIntroductiontoDatabaseSystem4第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義完整性5.4完整性約束命名子句5.5觸發(fā)器AnIntroductiontoDatabaseSystem55.1實(shí)體完整性1.實(shí)體完整性定義在CREATETABLE語(yǔ)句中用PRIMARYKEY定義AnIntroductiontoDatabaseSystem65.1實(shí)體完整性[例5.1]在數(shù)據(jù)庫(kù)中,定義Student表的Sno屬性為主碼。定義在列級(jí)約束:

CREATETABLEStudent(SnoCHAR(8),SnameCHAR(8),SageINT);

定義在表級(jí)約束:

CREATETABLEStudent(SnoCHAR(8),

SnameCHAR(8),SageINT,

);PRIMARYKEY,PRIMARYKEY(Sno));AnIntroductiontoDatabaseSystem75.1實(shí)體完整性[例5.2]在SC表中定義(Sno,Cno)為主碼。

CREATETABLESC(SnoCHAR(5),CnoCHAR(2),GradeSMALLINT,

PRIMARYKEY(Sno,Cno));AnIntroductiontoDatabaseSystem85.1實(shí)體完整性1.實(shí)體完整性定義在CREATETABLE語(yǔ)句中用PRIMARYKEY定義

碼由單字段構(gòu)成:

定義可以為列級(jí)或表級(jí)約束;

碼由多字段構(gòu)成:

定義只能為表級(jí)約束;AnIntroductiontoDatabaseSystem95.1實(shí)體完整性2.實(shí)體完整性檢查和違約處理

(1)完整性檢查

當(dāng)用戶插入記錄或修改主碼時(shí),DBMS自動(dòng)檢查:每個(gè)主屬性值是否為空;主碼值是否惟一。

(2)違約處理拒絕操作。AnIntroductiontoDatabaseSystem105.1實(shí)體完整性2.實(shí)體完整性檢查和違約處理

(3)檢查主碼是否惟一的方法

全表掃描判斷新的主碼值在表中是否已存在。缺點(diǎn):效率低利用主碼的B+索引優(yōu)點(diǎn):效率高AnIntroductiontoDatabaseSystem115.1實(shí)體完整性keyF1F2F33………25………20………15………93………79………65………84………71………51………7………30………41………54………65………69………68………25511230667837152025304151546568697176798493AnIntroductiontoDatabaseSystem12第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義完整性5.4完整性約束命名子句5.5觸發(fā)器AnIntroductiontoDatabaseSystem135.2參照完整性1.參照完整性定義

在CREATETABLE語(yǔ)句中:

用FOREIGNKEY短語(yǔ)定義外碼列;用REFERENCES短語(yǔ)指明外碼參照哪個(gè)表的主碼。AnIntroductiontoDatabaseSystem145.2參照完整性[例5.3]在SC表中的參照完整性。

CREATETABLESC(SnoCHAR(8)NOTNULL,CnoCHAR(3)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Cno)REFERENCEScourse(Cno)

);REFERENCESstudent(Sno),AnIntroductiontoDatabaseSystem155.2參照完整性[例]在SC表中的參照完整性。

ALTERTABLESC

ADDFOREIGNKEY(SNO)REFERENCESSTUDENT(SNO)AnIntroductiontoDatabaseSystem162.參照完整性檢查和違約處理對(duì)被參照表和參照表進(jìn)行增、刪、改操作時(shí)進(jìn)行檢查有四種情況可能破壞參照完整性:參照表中插入新元組;修改外碼值;被參照表中刪除元組;修改主碼值。5.2參照完整性AnIntroductiontoDatabaseSystem17

當(dāng)參照完整性不一致時(shí),系統(tǒng)采取以下策略:拒絕執(zhí)行(默認(rèn)策略)

級(jí)聯(lián)操作(CASCADE)當(dāng)刪除或修改被參照表的一個(gè)元組造成與參照表不一致時(shí),則刪除或修改參照表中所有不一致的元組。設(shè)置為空(SET-NULL)當(dāng)刪除或修改被參照表的一個(gè)元組造成與參照表不一致時(shí),則將參照表中所有造成不一致的元組對(duì)應(yīng)屬性置空。5.2參照完整性

定義參照完整性時(shí),除了定義外碼,還應(yīng)定義外碼是否級(jí)聯(lián)、是否為空。AnIntroductiontoDatabaseSystem185.2參照完整性[例5.4]在SC表中的參照完整性。

CREATETABLESC(SnoCHAR(8)NOTNULL,CnoCHAR(3)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Cno)REFERENCEScourse(Cno)

ONDELETECASCADEONUPDATECASCADE);REFERENCESstudent(Sno),AnIntroductiontoDatabaseSystem19例:要?jiǎng)h除Student關(guān)系中Sno=2012215121的元組,而SC關(guān)系中有5個(gè)元組的Sno都等于201215121。置空值刪除:

將SC關(guān)系中所有Sno=201215121的元組Sno置空。√×√級(jí)聯(lián)刪除:

將SC關(guān)系中所有5個(gè)Sno=201215121的元組一起刪除。依此類推可以繼續(xù)級(jí)聯(lián)下去。

受限刪除:

系統(tǒng)將拒絕執(zhí)行此刪除操作。5.2參照完整性AnIntroductiontoDatabaseSystem20第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義完整性5.4完整性約束命名子句5.5觸發(fā)器AnIntroductiontoDatabaseSystem215.3用戶定義的完整性1.屬性上約束條件的定義

使用CREATETABLE語(yǔ)句在定義屬性的同時(shí),定義對(duì)屬性值的限制。

包括:列值非空(NOTNULL)

列值唯一(UNIQUE)

檢查列值是否滿足一個(gè)布爾表達(dá)式(CHECK子句)。AnIntroductiontoDatabaseSystem225.3用戶定義的完整性(1)不允許取空值[例5.5]在定義SC表時(shí),說(shuō)明Sno、Cno屬性不取空

CREATETABLESC(SnoCHAR(5)NOTNULL,CnoCHAR(2)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno));AnIntroductiontoDatabaseSystem235.3用戶定義的完整性(2)列值惟一[例5.6]建立部門表Dept,要求部門名稱Dname惟一,部門編號(hào)為主碼。

CREATETABLEDept(DnoNUMERIC(2)NOTNULL,DnameCHAR(20)UNIQUE,LocationCHAR(10),PRIMARYKEY(Dno));AnIntroductiontoDatabaseSystem245.3用戶定義的完整性(2)列值惟一[例]若部門表Dept已建立,添加部門名稱Dname惟一的約束。

ALTERTABLEDeptADDUNIQUE(Dname);AnIntroductiontoDatabaseSystem255.3用戶定義的完整性[例5.7]Student表中Ssex只允許取“男”和“女”。CREATETABLEStudent(SnoCHAR(5)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR(2)CHECK(SsexIN(‘男’,’女’)),SageSMALLINT,SdeptCHAR(20));(3)用CHECK短語(yǔ)指定列值應(yīng)該滿足的條件AnIntroductiontoDatabaseSystem265.3用戶定義的完整性[例]向Student表添加Ssex只許取“男”和“女”的約束。ALTERTABLEStudentADDCHECK(SsexIN(‘男’,’女’));(3)用CHECK短語(yǔ)指定列值應(yīng)該滿足的條件AnIntroductiontoDatabaseSystem275.3用戶定義的完整性[例5.8]在定義SC表時(shí),說(shuō)明Grade應(yīng)該在0和100之間。

CREATETABLESC(SnoCHAR(5)NOTNULL,CnoCHAR(2)NOTNULL,GradeSMALLINTCHECK(Grade>=0ANDGrade<=100),PRIMARYKEY(Sno,Cno)

……

);

(3)用CHECK短語(yǔ)指定列值應(yīng)該滿足的條件AnIntroductiontoDatabaseSystem285.3用戶定義的完整性2.屬性上約束條件檢查和違約處理

當(dāng)往表中插入元組或修改屬性的值時(shí),RDBMS就檢查屬性上的約束條件是否被滿足,如果不滿足操作被拒絕執(zhí)行。AnIntroductiontoDatabaseSystem295.3用戶定義的完整性3.元組上的約束條件的定義

在CREATETABLE語(yǔ)句可以用CHECK短語(yǔ)定義元組上的約束條件,即元組級(jí)限制元組級(jí)限制可以設(shè)置不同屬性之間的取值的相互約束條件。AnIntroductiontoDatabaseSystem305.3用戶定義的完整性3.元組上的約束條件的定義

在CREATETABLE語(yǔ)句可以用CHECK短語(yǔ)定義元組上的約束條件,即元組級(jí)限制元組級(jí)限制可以設(shè)置不同屬性之間的取值的相互約束條件。4.元組上的約束條件檢查和違約處理

例:當(dāng)學(xué)生的性別是男時(shí),姓名中不能包含“花”

AnIntroductiontoDatabaseSystem31第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義完整性5.4完整性約束命名子句5.5觸發(fā)器AnIntroductiontoDatabaseSystem325.4完整性約束命名子句

SQL在提供了完整性約束命名子句CONSTRAINT,用來(lái)對(duì)完整性約束條件進(jìn)行命名。1.完整性約束命名子句格式:

CONSTRAINT<約束命名>[PRIMARYKEY短語(yǔ)|FOREIGNKEY短語(yǔ)|CHECK短語(yǔ)]

放置在任何一個(gè)約束短語(yǔ)的前面。AnIntroductiontoDatabaseSystem33[例5.10]建立學(xué)生表student,姓名不能取空值,年齡小于30,性別只能取“男”或“女”。

CREATETABLEStudent

(SnoNUMERIC(6)

SnameCHAR(8)

NOTNULL,

SsexCHAR(2)CHECK(SsexIN(‘男’,’女’)),

SageINTCHECK(Sage<30),PRIMARYKEY(Sno));

CONSTRAINTC1

CONSTRAINT

C2

CONSTRAINTC3

CONSTRAINT

StuKey

AnIntroductiontoDatabaseSystem345.4完整性約束命名子句

2.修改表中的完整性限制

(1)刪除完整性限制格式:ALTERTABLEStudent

DROP[CONSTRAINT]<約束命名>[例5.12]去掉[例10]student表中對(duì)性別的限制。

ALTERTABLEStudentDROP[CONSTRAINT]C3;(2)修改完整性限制

先刪除,再添加。AnIntroductiontoDatabaseSystem35第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義完整性5.4完整性約束命名子句5.5觸發(fā)器AnIntroductiontoDatabaseSystem365.5觸發(fā)器1.觸發(fā)器

(1)什么是觸發(fā)器?

它是定義在表上的一類由事件驅(qū)動(dòng)的特殊過(guò)程作用:

用來(lái)實(shí)現(xiàn)當(dāng)使用update、insert、delete對(duì)表進(jìn)行操作時(shí),自動(dòng)觸發(fā)的處理方法;實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)要求,類似于約束保證數(shù)據(jù)的一致性。AnIntroductiontoDatabaseSystem375.5觸發(fā)器1.觸發(fā)器

(2)觸發(fā)器的分類

After觸發(fā)器:(默認(rèn)類型)

觸發(fā)Insert、Update、Delete動(dòng)作之后執(zhí)行。(表中數(shù)據(jù)已經(jīng)變動(dòng)之后)

Insteadof觸發(fā)器:

當(dāng)執(zhí)行Insert、Update、Delete操作時(shí)用觸發(fā)器中的操作來(lái)代替該操作。

(表中數(shù)據(jù)改動(dòng)之前)AnIntroductiontoDatabaseSystem385.5觸發(fā)器2.定義觸發(fā)器格式:(P169)

CreateTrigger<觸發(fā)器名>on<對(duì)象名>{for|after|insteadof}{[delete],[insert],[update]}

as<觸發(fā)器的條件和操作>觸發(fā)器的類型觸發(fā)事件AnIntroductiontoDatabaseSystem395.5觸發(fā)器[例1]創(chuàng)建一個(gè)向?qū)W生表添加新記錄時(shí)顯示歡迎信息的觸發(fā)器。

CreateTriggerT_InOnstudentafterinsertasprint‘歡迎新同學(xué)的到來(lái)!'

AnIntroductiontoDatabaseSystem405.5觸發(fā)器3.建立觸發(fā)器的條件

CREATETRIGGER語(yǔ)句必須是批處理語(yǔ)句中的第一條;只有表的擁有者可以創(chuàng)建觸發(fā)器;一個(gè)表只能創(chuàng)建一定數(shù)量的觸發(fā)器;在同一模式下,觸發(fā)器名必須惟一;當(dāng)觸發(fā)器被激活時(shí),只有觸發(fā)條件為真時(shí)觸發(fā)體才被執(zhí)行。AnIntroductiontoDatabaseSystem415.5觸發(fā)器4.觸發(fā)器工作原理

(1)觸發(fā)器工作時(shí)建立兩個(gè)表:

inserted表:

存儲(chǔ)insert和update語(yǔ)句所影響的數(shù)據(jù)行副本

inserted中的行是觸發(fā)器表中新行的副本。

deleted表:

存儲(chǔ)delete和update語(yǔ)句所影響的數(shù)據(jù)行副本

deleted中的行是從觸發(fā)器表中刪除的行。

觸發(fā)器作用的表和deleted表沒有相同的行AnIntroductiontoDatabaseSystem425.5觸發(fā)器4.觸發(fā)器工作原理

(2)這兩個(gè)表的特點(diǎn):

系統(tǒng)自動(dòng)維護(hù)對(duì)用戶而言,是只讀的表結(jié)構(gòu)與觸發(fā)器作用的表結(jié)構(gòu)相同與觸發(fā)器同時(shí)存在(觸發(fā)器運(yùn)行結(jié)束,系統(tǒng)自動(dòng)刪除這兩表)AnIntroductiontoDatabaseSystem435.5觸發(fā)器4.觸發(fā)器工作原理

(3)各種操作時(shí)觸發(fā)器的工作:

insert操作

insert觸發(fā)器被觸發(fā)激活

新記錄會(huì)添加到基本表和inserted表。

delete操作

delete觸發(fā)器被觸發(fā)激活

被刪除的記錄會(huì)存放到deleted表中。

update操作

相當(dāng)于刪除一條舊記錄,插入一條新紀(jì)錄。AnIntroductiontoDatabaseSystem445.5觸發(fā)器[例2]創(chuàng)建一個(gè)限制年齡不能小于10的觸發(fā)器

CREATETRIGGERt_ageonStudentFORInsert,UpdateASIF()<10BEGINPRINT'年齡不能小于10,操作失敗'

ROLLBACK

END;selectsagefrominsertedAnIntroductiontoDatabaseSystem455.5觸發(fā)器[例3]為student表建立一個(gè)觸發(fā)器t_del,禁止刪除學(xué)號(hào)為201215122的學(xué)生createtriggert_delonstudentforupdate,deleteasif((selectsnofromdeleted)=‘201215122')

beginprint'不允許刪除該學(xué)生,操作失??!'rollbackendAnIntroductiontoDatabaseSystem465.5觸發(fā)器[例4]為student表建立一個(gè)觸發(fā)器t_sno,要求在更新操作中不能修改學(xué)號(hào)。

CREATETRIGGERt3ONStudentFORUpdateASIFUpdate(sno)BEGINPRINT'學(xué)號(hào)不允許修改!'ROLLBACKEND

AnIntroductiontoDatabaseSystem475.5觸發(fā)器[例5]建立觸發(fā)器t_sc,要求修改SC表的成績(jī)時(shí),同時(shí)將記錄插入的old_sc。createtableold_sc(snovarchar(12),cnochar(4),gradeint,unamevarchar(10),udatedatetimedefaultgetdate())AnIntroductiontoDatabaseSystem48CREATETRIGGERupdate_scONscFORUPDATEAS

ifupdate(grade)

begin

insertintoold_sc(sno,cno,grade)

select*fromdeleted

updateold_sc

setuname=user

wheresno=(selectsnofromdeleted)

andcno=(selectcnofromdeleted)

endAnIntroductiontoDatabaseSystem495.5觸發(fā)器[例6]創(chuàng)建V1視圖,包括如下四個(gè)屬性,解決不能利用該視圖插入數(shù)據(jù)的問題。

createviewv1

as

selectStudent.sno,sname,cno,grade

fromstudent,sc

wherestudent.sno=sc.snoAnIntroductiontoDatabaseSystem50createtriggert_ins_v1onv1insteadofINSERTasbeginINSERTINTOStudent(sno,sname)

SELECTsno,snamefrominserted

INSERTINTOSC

SELECTsno,cno,gradefrominserted

endAnIntroductiontoDatabaseSystem515.5觸發(fā)器5.激活觸發(fā)器的過(guò)程

(1)執(zhí)行insteadof觸發(fā)器

(2)執(zhí)行SQL語(yǔ)句

(3)執(zhí)行after觸發(fā)器6.刪除管理

droptrigger<觸發(fā)器名>on<表名>

AnIntroductiontoDatabaseSystem525.5觸發(fā)器7.觸發(fā)器和約束的比較

相同:觸發(fā)器和約束都可用于處理數(shù)據(jù)的輸入

不同:

(1)約束:表中所有的數(shù)據(jù)均滿足

(2)觸發(fā)器

創(chuàng)建觸發(fā)器前表中的數(shù)據(jù)可不滿足實(shí)施瞬時(shí)約束,即數(shù)據(jù)改變時(shí)約束AnIntroductiontoDatabaseSystem53分析該觸發(fā)器的作用createtriggert5onscforinsert,updateasifupdate(grade)updatestudentsetssum=(selectsum(ccredit)oin(ofromsc,insertedwheresc.sno=inserted.snoandsc.grade>=60))wheresno=(selectsnofrominserted)

某工廠的倉(cāng)庫(kù)管理數(shù)據(jù)庫(kù)的部分關(guān)系模式如下:倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),面積,負(fù)責(zé)人,電話)原材料(編號(hào),名稱,數(shù)量,儲(chǔ)備量,倉(cāng)庫(kù)號(hào))

訂購(gòu)計(jì)劃(原材料編號(hào),訂購(gòu)數(shù)量)要求觸發(fā)器實(shí)現(xiàn):當(dāng)倉(cāng)庫(kù)中的任一原材料的數(shù)量小于其儲(chǔ)備量時(shí),向訂購(gòu)計(jì)劃表中插入該原材料的訂購(gòu)計(jì)劃,其訂購(gòu)量為儲(chǔ)備量的3倍練習(xí)倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),面積,負(fù)責(zé)人,電話)原材料(編號(hào),名稱,數(shù)量,儲(chǔ)備量,倉(cāng)庫(kù)號(hào))

訂購(gòu)計(jì)劃(原材料編號(hào),訂購(gòu)數(shù)量)

CREATETRIGGERt_訂購(gòu)

ON原材料FOR

AS

IF

<

)Insertinto訂購(gòu)計(jì)劃VALUES(

,

)

Insert,Update(select編號(hào)frominserted)(select數(shù)量

frominserted)(select儲(chǔ)備量

frominserted)(select儲(chǔ)備量*

3

frominserted)CREATETRIGGERt_訂購(gòu)ONscFORInsert,UpdateASIF(select儲(chǔ)備量frominserted)<(select數(shù)量frominserted)begin

ifexists(select原材料編號(hào)from訂購(gòu)計(jì)劃

where原材料編號(hào)=(select編號(hào)frominserted))print‘已存在該材料的訂購(gòu)計(jì)劃!'elseInsertinto訂購(gòu)計(jì)劃

VALUES((select編號(hào)frominserted),(select儲(chǔ)備量*3frominserted))end避免重復(fù)添加訂購(gòu)計(jì)劃的觸發(fā)器AnIntroductiontoDatabaseSystem57補(bǔ)充—規(guī)則規(guī)則(Rule)是數(shù)據(jù)庫(kù)對(duì)存儲(chǔ)在表中的列或用戶自定義數(shù)據(jù)類型的取值規(guī)定和限制。特點(diǎn)①規(guī)則與其作用的對(duì)象是相互獨(dú)立的,即對(duì)象的刪除、修改不會(huì)對(duì)與之相連的規(guī)則產(chǎn)生影響;②規(guī)則與CHECK類似,與約束可同時(shí)使用;③一列可以有一個(gè)規(guī)則及多個(gè)約束;④規(guī)則可作用于自定義數(shù)據(jù)類型,但約束不能。AnIntroductiontoDatabaseSystem58補(bǔ)充—規(guī)則1.創(chuàng)建規(guī)則CREATERULE規(guī)則名AS約束條件

[例1]

創(chuàng)建學(xué)生年齡在18~60歲的規(guī)則。

CREATERULEage_ruleAS@age>=18and@age<=60局部變量Where中的任何表達(dá)式AnIntroductiontoDatabaseSystem59補(bǔ)充—規(guī)則2.規(guī)則的綁定與松綁若要規(guī)則發(fā)生作用,需將其與數(shù)據(jù)庫(kù)表或用戶自定義對(duì)象聯(lián)系起來(lái)。綁定:指定規(guī)則作用于哪個(gè)表的哪一列或哪個(gè)用戶自定義數(shù)據(jù)類型。松綁:解除規(guī)則與對(duì)象的綁定。AnIntroductiontoDatabaseSystem60補(bǔ)充2.規(guī)則的綁定與松綁(1)用存儲(chǔ)過(guò)程sp_bindrule綁定規(guī)則

sp_bindrule[@rulename=]規(guī)則名,[@objname=]對(duì)象名[,‘futureonly’]

[例2]

綁定規(guī)則age_rule到Student表Sage屬性EXECsp_bindruleage_rule,'Student.Sage'只在自定義數(shù)據(jù)類型時(shí)用AnIntroductiontoDatabaseSystem61補(bǔ)充[例3]

創(chuàng)建一個(gè)規(guī)則,并綁定到C表的CNo列,用于限定CNo的輸入范圍。CREATERULECno_ruleAS@rangelike'[1-5][0-9][0-9]'EXECsp_bindrule'Cno_rule',C.CNoAnIntroductiontoDatabaseSystem62(2)用存儲(chǔ)過(guò)程sp_unbindrule解除規(guī)則的綁定

sp_unbindrule[@objname=]'object_name' [,'futureonly'][例4]

解除已綁定到S表Age屬性的規(guī)則。

EXECsp_unbindrule'S.Age'補(bǔ)充2.規(guī)則的綁定與松綁AnIntroductiontoDatabaseSystem63提醒:在刪除一個(gè)規(guī)則前必須先將與其綁定的對(duì)象松綁。3.刪除規(guī)則

使用DROPRULE命令刪除規(guī)則

DROPRULE{rule_name}[,...n]

[例5]

刪除ag

溫馨提示

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