版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、An Introduction to Database System數(shù)據(jù)庫系統(tǒng)概論第五版數(shù)據(jù)庫系統(tǒng)概論第五版An Introduction to Database System數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性v數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性n數(shù)據(jù)的數(shù)據(jù)的正確性(輸入正確、存儲正確)正確性(輸入正確、存儲正確)l是指數(shù)據(jù)是符合現(xiàn)實世界語義,反映了當(dāng)前實際狀況的是指數(shù)據(jù)是符合現(xiàn)實世界語義,反映了當(dāng)前實際狀況的n數(shù)據(jù)的數(shù)據(jù)的相容性(符合要求、規(guī)則)相容性(符合要求、規(guī)則)l是指數(shù)據(jù)庫同一對象在不同關(guān)系表中的數(shù)據(jù)是符合邏輯的是指數(shù)據(jù)庫同一對象在不同關(guān)系表中的數(shù)據(jù)是符合邏輯的例如,例如,l學(xué)生的學(xué)號必須唯一學(xué)生的
2、學(xué)號必須唯一l性別只能是男或女,同一個人性別不同表要統(tǒng)一。性別只能是男或女,同一個人性別不同表要統(tǒng)一。l本科學(xué)生年齡的取值范圍為本科學(xué)生年齡的取值范圍為1450的整數(shù),只能是數(shù)字的整數(shù),只能是數(shù)字l學(xué)生所選的課程必須是學(xué)校開設(shè)的課程,學(xué)生所在的院系學(xué)生所選的課程必須是學(xué)校開設(shè)的課程,學(xué)生所在的院系必須是學(xué)校已成立的院系必須是學(xué)校已成立的院系l月份只能是月份只能是1-12,否則無效,否則無效An Introduction to Database System數(shù)據(jù)庫完整性(續(xù))數(shù)據(jù)庫完整性(續(xù))v數(shù)據(jù)的完整性和安全性是兩個不同概念數(shù)據(jù)的完整性和安全性是兩個不同概念n數(shù)據(jù)的完整性數(shù)據(jù)的完整性l防止數(shù)
3、據(jù)庫中存在不符合語義的數(shù)據(jù),也就是防止數(shù)據(jù)庫防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),也就是防止數(shù)據(jù)庫中存在不正確的數(shù)據(jù)中存在不正確的數(shù)據(jù)l防范對象:防范對象:不合語義的、不正確不合語義的、不正確的數(shù)據(jù)的數(shù)據(jù)n數(shù)據(jù)的安全性數(shù)據(jù)的安全性l保護(hù)數(shù)據(jù)庫保護(hù)數(shù)據(jù)庫 防止惡意的破壞和非法的存取防止惡意的破壞和非法的存取l防范對象:防范對象:非法用戶和非法操作非法用戶和非法操作An Introduction to Database System數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性(續(xù)續(xù))v為維護(hù)數(shù)據(jù)庫的完整性,數(shù)據(jù)庫管理系統(tǒng)必須:為維護(hù)數(shù)據(jù)庫的完整性,數(shù)據(jù)庫管理系統(tǒng)必須:1.提供定義完整性約束條件的機制提供定義完整性約束條件
4、的機制l完整性約束條件也稱為完整性規(guī)則,是數(shù)據(jù)庫中的數(shù)據(jù)完整性約束條件也稱為完整性規(guī)則,是數(shù)據(jù)庫中的數(shù)據(jù)必須滿足的必須滿足的語義約束條件語義約束條件lSQL標(biāo)準(zhǔn)使用了一系列概念來描述完整性,包括關(guān)系模標(biāo)準(zhǔn)使用了一系列概念來描述完整性,包括關(guān)系模型的實體完整性、參照完整性和用戶定義完整性型的實體完整性、參照完整性和用戶定義完整性l這些完整性一般由這些完整性一般由SQL的數(shù)據(jù)定義語言語句來實現(xiàn)的數(shù)據(jù)定義語言語句來實現(xiàn) An Introduction to Database System數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性(續(xù)續(xù))2.提供完整性檢查的方法提供完整性檢查的方法l數(shù)據(jù)庫管理系統(tǒng)中檢查數(shù)據(jù)是否滿足完整
5、性約束條件的機制數(shù)據(jù)庫管理系統(tǒng)中檢查數(shù)據(jù)是否滿足完整性約束條件的機制稱為完整性檢查。稱為完整性檢查。l一般在一般在INSERT、UPDATE、DELETE語句執(zhí)行后開始檢查,語句執(zhí)行后開始檢查,也可以在事務(wù)提交時檢查也可以在事務(wù)提交時檢查 An Introduction to Database System數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性(續(xù)續(xù))3.違約處理違約處理 l數(shù)據(jù)庫管理系統(tǒng)若發(fā)現(xiàn)用戶的操作違背了完整性約束條數(shù)據(jù)庫管理系統(tǒng)若發(fā)現(xiàn)用戶的操作違背了完整性約束條件,就采取一定的動作件,就采取一定的動作 拒絕拒絕(NO ACTION)執(zhí)行該操作執(zhí)行該操作 級連級連(CASCADE)執(zhí)行其他操作執(zhí)行其他
6、操作An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名字句完整性約束命名字句*5.5 域中的完整性限制域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System5.1 實體完整性實體完整性5.1.1 實體完整性定義實體完整性定義5.1.2 實體完整性檢查和違約處理實體完整性檢查和違約處理An Introduction to Database Sy
7、stem5.1.1 實體完整性定義實體完整性定義v 關(guān)系模型的實體完整性關(guān)系模型的實體完整性n 規(guī)定表的每一行在表中是唯一實體。通過索引、規(guī)定表的每一行在表中是唯一實體。通過索引、unique約束、主鍵約約束、主鍵約束、束、 identity(a,b)(ab均為正整數(shù),均為正整數(shù),a表示開始數(shù),表示開始數(shù),b表示增幅)等強表示增幅)等強制表中的實體唯一。制表中的實體唯一。n CREATE TABLE中用中用PRIMARY KEY定義定義v 單屬性構(gòu)成的碼有兩種說明方法單屬性構(gòu)成的碼有兩種說明方法 n 定義為定義為列級列級約束條件約束條件n 定義為定義為表級表級約束條件約束條件v 對多個屬性構(gòu)成
8、的碼只有一種說明方法對多個屬性構(gòu)成的碼只有一種說明方法n 定義為表級約束條件定義為表級約束條件 An Introduction to Database System實體完整性定義實體完整性定義(續(xù)續(xù))例例5.1 將將Student表中的表中的Sno屬性定義為碼屬性定義為碼 (1)在列級定義主碼在列級定義主碼 CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );An Introduction to Databas
9、e System實體完整性定義實體完整性定義(續(xù)續(xù))(2)在表級定義主碼在表級定義主碼 CREATE TABLE Student ( Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno) ); An Introduction to Database System實體完整性定義實體完整性定義(續(xù)續(xù))例例5.2 將將SC表中的表中的Sno,Cno屬性組定義為碼屬性組定義為碼 CREATE TABLE SC ( Sno CHAR(9) NOT NULL,
10、 Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*只能在表級定義主碼只能在表級定義主碼*/ ); An Introduction to Database System5.1 實體完整性實體完整性5.1.1 實體完整性定義實體完整性定義5.1.2 實體完整性檢查和違約處理實體完整性檢查和違約處理An Introduction to Database System5.1.2 實體完整性檢查和違約處理實體完整性檢查和違約處理v插入或?qū)χ鞔a列進(jìn)行更新操作時,關(guān)系數(shù)據(jù)庫管理插入或?qū)χ鞔a列進(jìn)行更新操作時,關(guān)系數(shù)據(jù)庫管理系統(tǒng)按照實體
11、完整性規(guī)則自動進(jìn)行檢查。系統(tǒng)按照實體完整性規(guī)則自動進(jìn)行檢查。v包括:包括:n檢查主碼值是否檢查主碼值是否唯一唯一,如果不唯一則拒絕插入或修改,如果不唯一則拒絕插入或修改n檢查主碼的各個屬性是否檢查主碼的各個屬性是否非空非空,只要有一個為空就拒絕,只要有一個為空就拒絕插入或修改插入或修改An Introduction to Database System實體完整性檢查和違約處理實體完整性檢查和違約處理(續(xù)續(xù))v檢查記錄中主碼值是否唯一的一種方法是進(jìn)行檢查記錄中主碼值是否唯一的一種方法是進(jìn)行全表全表掃描掃描n 依次判斷表中每一條記錄的主碼值與將插入記錄上的主碼依次判斷表中每一條記錄的主碼值與將插入
12、記錄上的主碼值(或者修改的新主碼值)是否相同值(或者修改的新主碼值)是否相同 An Introduction to Database System實體完整性檢查和違約處理實體完整性檢查和違約處理(續(xù)續(xù))v表掃描缺點表掃描缺點n 十分耗時十分耗時v為避免對基本表進(jìn)行全表掃描,為避免對基本表進(jìn)行全表掃描,RDBMS核心一核心一般都在般都在主碼主碼上自動建立一個上自動建立一個索引索引 ,一般作為主索一般作為主索引。引。An Introduction to Database System實體完整性檢查和違約處理實體完整性檢查和違約處理(續(xù)續(xù))v B+樹索引(多分樹、發(fā)散樹)樹索引(多分樹、發(fā)散樹)例如
13、,例如,n 新插入記錄的主碼值是新插入記錄的主碼值是25l通過主碼索引,從通過主碼索引,從B+樹的根結(jié)點開始查找樹的根結(jié)點開始查找l讀取讀取3個結(jié)點:根結(jié)點(個結(jié)點:根結(jié)點(51)、中間結(jié)點()、中間結(jié)點(12 30)、葉結(jié)點()、葉結(jié)點(15 20 25)l該主碼值已經(jīng)存在,不能插入這條記錄該主碼值已經(jīng)存在,不能插入這條記錄An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名字句完整性約束命名字句*5.5 域中的完整性限制
14、域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System5.2 參照完整性參照完整性5.2.1 參照完整性定義參照完整性定義也稱為引用完整,是指保持表之間已定義的關(guān)系??梢卜Q為引用完整,是指保持表之間已定義的關(guān)系??梢酝ㄟ^外鍵約束、以通過外鍵約束、check約束等。確保了鍵值在所有表中一約束等。確保了鍵值在所有表中一致,保證了表之間數(shù)據(jù)的一致性,防止了致,保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或不存在數(shù)據(jù)丟失或不存在的數(shù)據(jù)在數(shù)據(jù)庫中擴散。的數(shù)據(jù)在數(shù)據(jù)庫中擴散。5.2.2 參照完整性檢查和違約處理參照完整性檢查和違
15、約處理An Introduction to Database System5.2.1 參照完整性定義參照完整性定義v關(guān)系模型的參照完整性定義關(guān)系模型的參照完整性定義n在在CREATE TABLE中用中用FOREIGN KEY短語定義哪些短語定義哪些列為外碼列為外碼n用用REFERENCES短語指明這些外碼參照哪些表的主碼短語指明這些外碼參照哪些表的主碼 An Introduction to Database System參照完整性定義參照完整性定義(續(xù)續(xù))例如,關(guān)系例如,關(guān)系SC中(中(Sno,Cno)是主碼。)是主碼。Sno,Cno分別參照分別參照Student表表 的主碼和的主碼和Cour
16、se表的主碼表的主碼 例例5.3定義定義SC中的參照完整性中的參照完整性 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表級定義實體完整性在表級定義實體完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表級定義參照完整性在表級定義參照完整性*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*在表級定義參照完整性在表級定義參照完整性*/ );
17、An Introduction to Database System5.2 參照完整性參照完整性5.2.1 參照完整性定義參照完整性定義5.2.2 參照完整性檢查和違約處理參照完整性檢查和違約處理An Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理v一個參照完整性將兩個表中的相應(yīng)元組聯(lián)系起來一個參照完整性將兩個表中的相應(yīng)元組聯(lián)系起來v對被參照表和參照表進(jìn)行對被參照表和參照表進(jìn)行增刪改增刪改操作時有可能破操作時有可能破壞參照完整性,必須進(jìn)行檢查壞參照完整性,必須進(jìn)行檢查 An Introduction to Database Sys
18、tem參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))v 例如,對表例如,對表SC和和Student有四種可能破壞參照完整性的情況有四種可能破壞參照完整性的情況 :n SC表中增加一個元組表中增加一個元組,該元組的,該元組的Sno屬性的值在表屬性的值在表Student中找不到中找不到一個元組,其一個元組,其Sno屬性的值與之相等。屬性的值與之相等。n 修改修改SC表中的一個元組表中的一個元組,修改后該元組的,修改后該元組的Sno屬性的值在表屬性的值在表Student中找不到一個元組,其中找不到一個元組,其Sno屬性的值與之相等。屬性的值與之相等。n 從從Student表中刪除一個元組表
19、中刪除一個元組,造成,造成SC表中某些元組的表中某些元組的Sno屬性的值屬性的值在表在表Student中找不到一個元組,其中找不到一個元組,其Sno屬性的值與之相等。屬性的值與之相等。n 修改修改Student表中一個元組的表中一個元組的Sno屬性屬性,造成,造成SC表中某些元組的表中某些元組的Sno屬性的值在表屬性的值在表Student中找不到一個元組,其中找不到一個元組,其Sno屬性的值與之相等屬性的值與之相等 。An Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))表表5.1 可能破壞參照完整性的情況及違約處理可能破壞
20、參照完整性的情況及違約處理被參照表(例如被參照表(例如Student)參照表(例如參照表(例如SC)違約處理違約處理可能破壞參照完整性可能破壞參照完整性 插入元組插入元組拒絕拒絕可能破壞參照完整性可能破壞參照完整性 修改外碼值修改外碼值拒絕拒絕刪除元組刪除元組 可能破壞參照完整性可能破壞參照完整性拒絕拒絕/級連刪除級連刪除/設(shè)置為空值設(shè)置為空值修改主碼值修改主碼值 可能破壞參照完整性可能破壞參照完整性拒絕拒絕/級連修改級連修改/設(shè)置為空值設(shè)置為空值A(chǔ)n Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))v參照完整性違約處理參照
21、完整性違約處理(1) 拒絕拒絕(NO ACTION)執(zhí)行執(zhí)行l(wèi)不允許該操作執(zhí)行。該策略一般設(shè)置為默認(rèn)策略不允許該操作執(zhí)行。該策略一般設(shè)置為默認(rèn)策略(2) 級聯(lián)級聯(lián)(CASCADE)操作操作l當(dāng)刪除或修改當(dāng)刪除或修改被參照表被參照表(Student)的一個元組造成了的一個元組造成了與參照表與參照表(SC)的不一致,則刪除或修改的不一致,則刪除或修改參照表參照表中的所中的所有造成不一致的元組有造成不一致的元組(3)設(shè)置為空值()設(shè)置為空值(SET-NULL)l當(dāng)刪除或修改被參照表的一個元組時造成了不一致,則當(dāng)刪除或修改被參照表的一個元組時造成了不一致,則將參照表中的所有造成不一致的元組的對應(yīng)屬性設(shè)
22、置為將參照表中的所有造成不一致的元組的對應(yīng)屬性設(shè)置為空值??罩?。An Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))例如,有下面例如,有下面2個關(guān)系個關(guān)系 學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,姓名,性別,專業(yè)號專業(yè)號,年齡),年齡) 專業(yè)(專業(yè)(專業(yè)號專業(yè)號,專業(yè)名),專業(yè)名)l假設(shè)專業(yè)表中某個元組被刪除,專業(yè)號為假設(shè)專業(yè)表中某個元組被刪除,專業(yè)號為12l按照設(shè)置為空值的策略,就要把學(xué)生表中專業(yè)號按照設(shè)置為空值的策略,就要把學(xué)生表中專業(yè)號=12的所有的所有元組的專業(yè)號設(shè)置為空值元組的專業(yè)號設(shè)置為空值l對應(yīng)語義:某個專業(yè)刪除了
23、,該專業(yè)的所有學(xué)生專業(yè)未定,對應(yīng)語義:某個專業(yè)刪除了,該專業(yè)的所有學(xué)生專業(yè)未定,等待重新分配專業(yè)等待重新分配專業(yè) 外碼外碼An Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))n對于參照完整性,除了應(yīng)該定義外碼,還應(yīng)定義對于參照完整性,除了應(yīng)該定義外碼,還應(yīng)定義外碼列外碼列是否允許空值是否允許空值 n參見愛課程網(wǎng)數(shù)據(jù)庫系統(tǒng)概論參見愛課程網(wǎng)數(shù)據(jù)庫系統(tǒng)概論5.2節(jié)節(jié)動畫動畫參照完整性參照完整性An Introduction to Database System參照完整性檢查和違約處理參照完整性檢查和違約處理(續(xù)續(xù))例例5.4 顯
24、式說明參照完整性的違約處理示例顯式說明參照完整性的違約處理示例 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE /*級聯(lián)刪除級聯(lián)刪除SC表中相應(yīng)的元組表中相應(yīng)的元組*/ ON UPDATE CASCADE, /*級聯(lián)更新級聯(lián)更新SC表中相應(yīng)的元組表中相應(yīng)的元組*/ FOREIGN KEY (Cno) REFERENCES Co
25、urse(Cno) ON DELETE NO ACTION /*當(dāng)刪除當(dāng)刪除course 表中的元組造成了與表中的元組造成了與SC表不一致時表不一致時拒絕刪除拒絕刪除*/ ON UPDATE CASCADE /*當(dāng)更新當(dāng)更新course表中的表中的cno時,時,級聯(lián)更新級聯(lián)更新SC表中相應(yīng)的元組表中相應(yīng)的元組*/ );An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名字句完整性約束命名字句*5.5 域中的完整性限制域中的完
26、整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System5.3 用戶定義的完整性用戶定義的完整性v用戶定義的完整性是:用戶定義的完整性是:n 針對針對某一具體應(yīng)用某一具體應(yīng)用的數(shù)據(jù)必須滿足的語義要求的數(shù)據(jù)必須滿足的語義要求 。是針對某個特定。是針對某個特定關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的特定業(yè)務(wù)規(guī)則。足的特定業(yè)務(wù)規(guī)則。n 是除了前兩種以外,用戶認(rèn)為重要,讓系統(tǒng)保證的機制是除了前兩種以外,用戶認(rèn)為重要,讓系統(tǒng)保證的機制n 維護(hù)的方法有四種:維
27、護(hù)的方法有四種:約束、規(guī)則、默認(rèn)值、觸發(fā)器約束、規(guī)則、默認(rèn)值、觸發(fā)器v關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供了定義和檢驗用戶定義關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供了定義和檢驗用戶定義完整性的機制,不必由應(yīng)用程序承擔(dān)完整性的機制,不必由應(yīng)用程序承擔(dān)An Introduction to Database System5.3 用戶定義的完整性用戶定義的完整性5.3.1 屬性上的約束條件屬性上的約束條件5.3.2 元組上的約束條件元組上的約束條件 An Introduction to Database System1. 屬性上約束條件的定義屬性上約束條件的定義vCREATE TABLE時時定義屬性上的約束條件定義屬性上的約束條件
28、n列值非空(列值非空(NOT NULL)n列值唯一(列值唯一(UNIQUE)n檢查列值是否滿足一個條件表達(dá)式(檢查列值是否滿足一個條件表達(dá)式(CHECK)An Introduction to Database System屬性上約束條件的定義屬性上約束條件的定義(續(xù)續(xù))(1)不允許取空值不允許取空值 例例5.5 在定義在定義SC表時,說明表時,說明Sno、Cno、Grade屬性不允屬性不允許取空值。許取空值。 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT NOT NULL, PRIMAR
29、Y KEY (Sno, Cno), /* 如果在表級定義實體完整性,隱含了如果在表級定義實體完整性,隱含了Sno,Cno不允許取空值,則在不允許取空值,則在 列級不允許取空值的定義列級不允許取空值的定義 可以不寫可以不寫 * / ); An Introduction to Database System屬性上約束條件的定義屬性上約束條件的定義(續(xù)續(xù))(2)列值唯一列值唯一 例例5.6建立部門表建立部門表DEPT,要求部門名稱,要求部門名稱Dname列取值唯列取值唯一,部門編號一,部門編號Deptno列為主碼列為主碼 CREATE TABLE DEPT ( Deptno NUMERIC(2),
30、Dname CHAR(9) UNIQUE NOT NULL, /*要求要求Dname列值唯一列值唯一, 并且不能取空值并且不能取空值*/ Location CHAR(10), PRIMARY KEY (Deptno) );An Introduction to Database System屬性上約束條件的定義屬性上約束條件的定義(續(xù)續(xù))(3)用用CHECK短語指定列值應(yīng)該滿足的條件短語指定列值應(yīng)該滿足的條件 例例5.7 Student表的表的Ssex只允許取只允許取“男男”或或“女女”。 CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname
31、 CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男男,女女), /*性別屬性性別屬性Ssex只允許取只允許取男男或或女女 */ Sage SMALLINT, Sdept CHAR(20) );An Introduction to Database System屬性上約束條件的定義屬性上約束條件的定義(續(xù)續(xù))例例5.8 SC表的表的Grade的值應(yīng)該在的值應(yīng)該在0和和100之間。之間。 CREATE TABLE SC ( Sno CHAR(9) , Cno CHAR(4),Grade SMALLINT CHECK (Grade=0 AND Grad
32、e =100), /*Grade取值范圍是取值范圍是0到到100*/ PRIMARY KEY (Sno,Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) );An Introduction to Database Systemv屬性上的約束條件檢查和違約處理屬性上的約束條件檢查和違約處理n插入元組或修改屬性的值時,關(guān)系數(shù)據(jù)庫管理系統(tǒng)檢插入元組或修改屬性的值時,關(guān)系數(shù)據(jù)庫管理系統(tǒng)檢查屬性上的約束條件是否被滿足查屬性上的約束條件是否被滿足n如果不滿足則操作被如果不滿足則
33、操作被拒絕執(zhí)行拒絕執(zhí)行 2. 屬性上的約束條件檢查和違約處理屬性上的約束條件檢查和違約處理An Introduction to Database System5.3 用戶定義的完整性用戶定義的完整性5.3.1 屬性上的約束條件屬性上的約束條件5.3.2 元組上的約束條件元組上的約束條件An Introduction to Database System1. 元組上約束條件的定義元組上約束條件的定義v在在CREATE TABLE時可以用時可以用CHECK短語定義元短語定義元組上的約束條件,即組上的約束條件,即元組級的限制元組級的限制v同屬性值限制相比,元組級的限制可以設(shè)置多個同屬性值限制相比,元
34、組級的限制可以設(shè)置多個屬性之間的取值的相互約束條件屬性之間的取值的相互約束條件 An Introduction to Database System元組上約束條件的定義元組上約束條件的定義(續(xù)續(xù))例例5.9當(dāng)學(xué)生的性別是男時,其名字不能以當(dāng)學(xué)生的性別是男時,其名字不能以Ms.打頭。打頭。 CREATE TABLE Student ( Sno CHAR(9), Sname CHAR(8) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno), CHECK (Ssex=女女 OR Sname NOT LIK
35、E Ms.%) /*定義了元組中定義了元組中Sname和和 Ssex兩個屬性值之間的約束條件兩個屬性值之間的約束條件*/ ); 性別是女性的元組都能通過該項檢查,因為性別是女性的元組都能通過該項檢查,因為Ssex=女女成立成立; 當(dāng)性別是男性時,要通過檢查名字一定不能以當(dāng)性別是男性時,要通過檢查名字一定不能以Ms.打頭打頭An Introduction to Database Systemv元組上的約束條件檢查和違約處理元組上的約束條件檢查和違約處理n插入元組或修改屬性的值時,關(guān)系數(shù)據(jù)庫管理系統(tǒng)檢插入元組或修改屬性的值時,關(guān)系數(shù)據(jù)庫管理系統(tǒng)檢查元組上的約束條件是否被滿足查元組上的約束條件是否被
36、滿足n如果不滿足則操作被如果不滿足則操作被拒絕執(zhí)行拒絕執(zhí)行 2. 元組上約束條件檢查和違約處理元組上約束條件檢查和違約處理An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名子句完整性約束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System5.4 完整性約束命名子句完整性約束命名子句1.完整性約束命名子句完整
37、性約束命名子句 用來對完整性約束條件命名,可以靈活的增加、刪除一用來對完整性約束條件命名,可以靈活的增加、刪除一個完整性約束條件。個完整性約束條件。CONSTRAINT n包括包括NOT NULL、UNIQUE、PRIMARY KEY短語、短語、FOREIGN KEY短語、短語、CHECK短語等短語等An Introduction to Database System完整性約束命名子句完整性約束命名子句(續(xù)續(xù))例例5.10建立學(xué)生登記表建立學(xué)生登記表Student,要求學(xué)號在,要求學(xué)號在9000099999之間,之間,姓名不能取空值,年齡小于姓名不能取空值,年齡小于30,性別只能是,性別只能是
38、“男男”或或“女女”。 CREATE TABLE Student ( Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage = 3000) );An Introduction to Database System完整性約束命名子句完整性約束命名子句(續(xù)續(xù))2. 修改表中的完整性限制修改表中的完整性限制n使用使用ALTER TABLE語句修改表中的完整性限制語
39、句修改表中的完整性限制例例5.12去掉例去掉例5.10 Student表中對性別的限制。表中對性別的限制。 ALTER TABLE Student DROP CONSTRAINT C4;An Introduction to Database System完整性約束命名子句完整性約束命名子句(續(xù)續(xù)) 例例5.13 修改表修改表Student中的約束條件,要求學(xué)號改為在中的約束條件,要求學(xué)號改為在900000999999之間,年齡由小于之間,年齡由小于30改為小于改為小于40n可以先刪除原來的約束條件,再增加新的約束條件可以先刪除原來的約束條件,再增加新的約束條件 ALTER TABLE Stud
40、ent DROP CONSTRAINT C1; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999), ALTER TABLE Student DROP CONSTRAINT C3; ALTER TABLE Student ADD CONSTRAINT C3 CHECK(Sage 40);An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完
41、整性約束命名字句完整性約束命名字句*5.5 域中的完整性限制域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System斷言斷言vSQL中,可以使用中,可以使用 CREATE ASSERTION語句,語句,通過聲明性斷言來指定通過聲明性斷言來指定更具一般性的約束更具一般性的約束。v可以定義涉及可以定義涉及多個表多個表的或的或聚集操作聚集操作的比較復(fù)雜的的比較復(fù)雜的完整性約束。完整性約束。v斷言創(chuàng)建以后,任何對斷言中所涉及的關(guān)系的操斷言創(chuàng)建以后,任何對斷言中所涉及的關(guān)系的操作都會觸發(fā)關(guān)系數(shù)據(jù)庫管理系統(tǒng)對斷言的檢查,作都會
42、觸發(fā)關(guān)系數(shù)據(jù)庫管理系統(tǒng)對斷言的檢查,任何使斷言不為真值的操作都會被拒絕執(zhí)行任何使斷言不為真值的操作都會被拒絕執(zhí)行An Introduction to Database System斷言斷言(續(xù)續(xù))1. 創(chuàng)建斷言的語句格式創(chuàng)建斷言的語句格式nCREATE ASSERTIONn每個斷言每個斷言都被賦都被賦予一個名字,予一個名字,中的約束中的約束條件與條件與WHERE子句的條件表達(dá)式類似。子句的條件表達(dá)式類似。例例5.18 限制數(shù)據(jù)庫課程最多限制數(shù)據(jù)庫課程最多60名學(xué)生選修名學(xué)生選修CREATE ASSERTION ASSE_SC_DB_NUMCHECK (60 = (select count(*)
43、 /*此斷言的謂詞涉及聚集操此斷言的謂詞涉及聚集操作作count的的SQL語句語句*/ From Course,SC Where SC.Cno=Course.Cno and Course.Cname =數(shù)據(jù)庫數(shù)據(jù)庫) );An Introduction to Database System例例5.19限制每一門課程最多限制每一門課程最多60名學(xué)生選修名學(xué)生選修CREATE ASSERTION ASSE_SC_CNUM1CHECK(60 = ALL (SELECT count(*) FROM SC GROUP by cno) ); /*此斷言的謂詞,涉及聚集操作此斷言的謂詞,涉及聚集操作coun
44、t 和分組函數(shù)和分組函數(shù)group by的的SQL語句語句*/斷言斷言(續(xù)續(xù))An Introduction to Database System例例5.20限制每個學(xué)期每一門課程最多限制每個學(xué)期每一門課程最多60名學(xué)生選修名學(xué)生選修 首先需要修改首先需要修改SC表的模式,增加一個表的模式,增加一個“學(xué)期(學(xué)期(TERM)”屬性屬性 ALTER TABLE SC ADD TERM DATE; 然后,定義斷言:然后,定義斷言: CREATE ASSERTION ASSE_SC_CNUM2 CHECK(60 = ALL (SELECT count(*) FROM SC GROUP by cno,T
45、ERM) );斷言斷言(續(xù)續(xù))An Introduction to Database System2. 刪除斷言的語句格式為刪除斷言的語句格式為nDROP ASSERTION ;n如果斷言很復(fù)雜,則系統(tǒng)在檢測和維護(hù)斷言的如果斷言很復(fù)雜,則系統(tǒng)在檢測和維護(hù)斷言的開銷開銷較較高,這是在使用斷言時應(yīng)該注意的高,這是在使用斷言時應(yīng)該注意的斷言斷言(續(xù)續(xù))An Introduction to Database System第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名字句完整性約束命名字句*5.
46、5 域中的完整性限制域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System觸發(fā)器觸發(fā)器v觸發(fā)器(觸發(fā)器(Trigger)是用戶定義在關(guān)系表上的一類)是用戶定義在關(guān)系表上的一類由由事件驅(qū)動事件驅(qū)動的特殊過程的特殊過程n 觸發(fā)器保存在數(shù)據(jù)庫服務(wù)器中觸發(fā)器保存在數(shù)據(jù)庫服務(wù)器中n任何用戶對表的增、刪、改操作均由服務(wù)器自動激活任何用戶對表的增、刪、改操作均由服務(wù)器自動激活相應(yīng)的觸發(fā)器相應(yīng)的觸發(fā)器n觸發(fā)器可以實施更為觸發(fā)器可以實施更為復(fù)雜的復(fù)雜的檢查和操作,具有檢查和操作,具有更精細(xì)更精細(xì)和更強大和更強大的數(shù)據(jù)控制能力的數(shù)據(jù)
47、控制能力 An Introduction to Database System5.7 觸發(fā)器觸發(fā)器5.7.1 定義觸發(fā)器定義觸發(fā)器 5.7.2 激活觸發(fā)器激活觸發(fā)器 5.7.3 刪除觸發(fā)器刪除觸發(fā)器 An Introduction to Database System5.7.1 定義觸發(fā)器定義觸發(fā)器v CREATE TRIGGER語法格式語法格式 CREATE TRIGGER BEFORE | AFTER ON REFERENCING NEW|OLD ROW AS FOR EACH ROW | STATEMENT WHEN 觸發(fā)器又叫做事件觸發(fā)器又叫做事件-條件條件-動作(動作(event-c
48、ondition-action)規(guī)則。)規(guī)則。當(dāng)特定的系統(tǒng)事件發(fā)生時,對規(guī)則的條件進(jìn)行檢查,如果條件成立則執(zhí)當(dāng)特定的系統(tǒng)事件發(fā)生時,對規(guī)則的條件進(jìn)行檢查,如果條件成立則執(zhí)行規(guī)則中的動作,否則不執(zhí)行該動作。規(guī)則中的動作體可以很復(fù)雜,通行規(guī)則中的動作,否則不執(zhí)行該動作。規(guī)則中的動作體可以很復(fù)雜,通常是一段常是一段SQL存儲過程存儲過程。An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))v定義觸發(fā)器的語法說明定義觸發(fā)器的語法說明(1)表的)表的擁有者擁有者才可以在表上創(chuàng)建觸發(fā)器才可以在表上創(chuàng)建觸發(fā)器(2)觸發(fā)器名)觸發(fā)器名l觸發(fā)器名可以包含模式名,也可以
49、不包含模式名觸發(fā)器名可以包含模式名,也可以不包含模式名l同一模式下,觸發(fā)器名必須是唯一的同一模式下,觸發(fā)器名必須是唯一的l觸發(fā)器名和表名必須在同一模式下觸發(fā)器名和表名必須在同一模式下(3)表名)表名l觸發(fā)器只能定義在觸發(fā)器只能定義在基本表基本表上,不能定義在視圖上上,不能定義在視圖上l當(dāng)基本表的數(shù)據(jù)發(fā)生變化時,將激活定義在該表上相應(yīng)觸當(dāng)基本表的數(shù)據(jù)發(fā)生變化時,將激活定義在該表上相應(yīng)觸 發(fā)事件的觸發(fā)器發(fā)事件的觸發(fā)器An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))(4)觸發(fā)事件)觸發(fā)事件l觸發(fā)事件可以是觸發(fā)事件可以是INSERT、DELETE或或UP
50、DATE 也可以是這幾個事件的組合也可以是這幾個事件的組合l還可以還可以UPDATE OF,即進(jìn)一步指明修改哪,即進(jìn)一步指明修改哪些列時激活觸發(fā)器些列時激活觸發(fā)器lAFTER/BEFORE是觸發(fā)的時機是觸發(fā)的時機AFTER表示在觸發(fā)事件的操作執(zhí)行表示在觸發(fā)事件的操作執(zhí)行之后之后激活觸發(fā)器激活觸發(fā)器BEFORE表示在觸發(fā)事件的操作執(zhí)行表示在觸發(fā)事件的操作執(zhí)行之前之前激活觸發(fā)器激活觸發(fā)器An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))(5)觸發(fā)器類型)觸發(fā)器類型行級觸發(fā)器(行級觸發(fā)器(FOR EACH ROW)語句級觸發(fā)器(語句級觸發(fā)器(FOR EA
51、CH STATEMENT) 例如例如,在例在例5.11的的TEACHER表上創(chuàng)建一個表上創(chuàng)建一個AFTER UPDATE觸發(fā)器,觸發(fā)事件觸發(fā)器,觸發(fā)事件是是UPDATE語句:語句: UPDATE TEACHER SET Deptno=5; 假設(shè)表假設(shè)表TEACHER有有1000行行 l 如果是語句級觸發(fā)器,那么執(zhí)行完該語句后,觸發(fā)動作只發(fā)生一次如果是語句級觸發(fā)器,那么執(zhí)行完該語句后,觸發(fā)動作只發(fā)生一次l如果是如果是行級行級觸發(fā)器,觸發(fā)動作將執(zhí)行觸發(fā)器,觸發(fā)動作將執(zhí)行1000次次(6)觸發(fā)條件)觸發(fā)條件l觸發(fā)器被激活時,只有當(dāng)觸發(fā)器被激活時,只有當(dāng)觸發(fā)條件為真觸發(fā)條件為真時觸發(fā)動作體才執(zhí)行時觸發(fā)
52、動作體才執(zhí)行;否則觸發(fā)否則觸發(fā)動作體不執(zhí)行。動作體不執(zhí)行。l如果省略如果省略WHEN觸發(fā)條件,則觸發(fā)動作體在觸發(fā)器激活后立即執(zhí)行觸發(fā)條件,則觸發(fā)動作體在觸發(fā)器激活后立即執(zhí)行An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))(7)觸發(fā)動作體)觸發(fā)動作體l觸發(fā)動作體可以是一個匿名觸發(fā)動作體可以是一個匿名PL/SQL過程塊,過程塊, 也可以是對已也可以是對已創(chuàng)建存儲過程的調(diào)用創(chuàng)建存儲過程的調(diào)用l如果是行級觸發(fā)器,用戶可以在過程體中使用如果是行級觸發(fā)器,用戶可以在過程體中使用NEW和和OLD引用事件之后的新值和事件之前的舊值引用事件之后的新值和事件之前的舊
53、值l如果是語句級觸發(fā)器,則不能在觸發(fā)動作體中使用如果是語句級觸發(fā)器,則不能在觸發(fā)動作體中使用NEW或或OLD進(jìn)行引用進(jìn)行引用l如果觸發(fā)動作體執(zhí)行失敗,激活觸發(fā)器的事件就會終止執(zhí)行如果觸發(fā)動作體執(zhí)行失敗,激活觸發(fā)器的事件就會終止執(zhí)行,觸發(fā)器的目標(biāo)表或觸發(fā)器可能影響的其他對象不發(fā)生任何,觸發(fā)器的目標(biāo)表或觸發(fā)器可能影響的其他對象不發(fā)生任何變化變化 注意:不同的RDBMS產(chǎn)品觸發(fā)器語法各不相同An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))例例5.21當(dāng)對表當(dāng)對表SC的的Grade屬性進(jìn)行修改時,若分?jǐn)?shù)增加了屬性進(jìn)行修改時,若分?jǐn)?shù)增加了10%則將此次操作
54、記則將此次操作記錄到下面表中:錄到下面表中: SC_U(Sno,Cno,Oldgrade,Newgrade) 其中其中Oldgrade是修改前的分?jǐn)?shù),是修改前的分?jǐn)?shù),Newgrade是修改后的分?jǐn)?shù)。是修改后的分?jǐn)?shù)。CREATE TRIGGER SC_TAFTER UPDATE OF Grade ON SC REFERENCING OLD row AS OldTuple, NEW row AS NewTupleFOR EACH ROW WHEN (NewTuple.Grade = 1.1*OldTuple.Grade) INSERT INTO SC_U(Sno,Cno,OldGrade,NewG
55、rade) VALUES(OldTuple.Sno,OldTuple.Cno,OldTuple.Grade,NewTuple.Grade)An Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))例例5.22 將每次對表將每次對表Student的插入操作所增加的學(xué)生個數(shù)的插入操作所增加的學(xué)生個數(shù)記錄到表記錄到表StudentInsertLog中。中。CREATE TRIGGER Student_CountAFTER INSERT ON Student /*指明觸發(fā)器激活的時間是在執(zhí)行指明觸發(fā)器激活的時間是在執(zhí)行INSERT后后*/ REFERENCING
56、NEW TABLE AS DELTAFOR EACH STATEMENT /*語句級觸發(fā)器語句級觸發(fā)器, 即執(zhí)行完即執(zhí)行完INSERT語句后下面的觸發(fā)動作體才執(zhí)行一次語句后下面的觸發(fā)動作體才執(zhí)行一次*/INSERT INTO StudentInsertLog (Numbers) SELECT COUNT(*) FROM DELTAAn Introduction to Database System定義觸發(fā)器定義觸發(fā)器(續(xù)續(xù))例例5.23 定義一個定義一個BEFORE行級觸發(fā)器,為教師表行級觸發(fā)器,為教師表Teacher定義完整性規(guī)則定義完整性規(guī)則“教授的工資不得低于教授的工資不得低于4000元
57、,如果低元,如果低于于4000元,自動改為元,自動改為4000元元”。 CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher /*觸發(fā)事件是插入或更新操作觸發(fā)事件是插入或更新操作*/ FOR EACH ROW /*行級觸發(fā)器行級觸發(fā)器*/ BEGIN /*定義觸發(fā)動作體,是定義觸發(fā)動作體,是PL/SQL過程塊過程塊*/ IF (new.Job=教授教授) AND (new.Sal 4000) THEN new.Sal :=4000; END IF; END; An Introduction to Datab
58、ase System5.7 觸發(fā)器觸發(fā)器5.7.1 定義觸發(fā)器定義觸發(fā)器 5.7.2 激活觸發(fā)器激活觸發(fā)器 5.7.3 刪除觸發(fā)器刪除觸發(fā)器 An Introduction to Database System5.7.2 激活觸發(fā)器激活觸發(fā)器v觸發(fā)器的執(zhí)行,是由觸發(fā)器的執(zhí)行,是由觸發(fā)事件激活觸發(fā)事件激活的,并由數(shù)據(jù)的,并由數(shù)據(jù)庫服務(wù)器自動執(zhí)行庫服務(wù)器自動執(zhí)行v一個數(shù)據(jù)表上可能定義了一個數(shù)據(jù)表上可能定義了多個觸發(fā)器多個觸發(fā)器,遵循如下,遵循如下的執(zhí)行順序的執(zhí)行順序:(1) 執(zhí)行該表上的執(zhí)行該表上的BEFORE觸發(fā)器觸發(fā)器;(2) 激活觸發(fā)器的激活觸發(fā)器的SQL語句語句;(3) 執(zhí)行該表上的執(zhí)行該
59、表上的AFTER觸發(fā)器。觸發(fā)器。An Introduction to Database System5.7 觸發(fā)器觸發(fā)器5.7.1 定義觸發(fā)器定義觸發(fā)器 5.7.2 激活觸發(fā)器激活觸發(fā)器 5.7.3 刪除觸發(fā)器刪除觸發(fā)器 An Introduction to Database System5.7.3 刪除觸發(fā)器刪除觸發(fā)器v刪除觸發(fā)器的刪除觸發(fā)器的SQL語法:語法: DROP TRIGGER ON ;v觸發(fā)器必須是一個已經(jīng)創(chuàng)建的觸發(fā)器,并且只能觸發(fā)器必須是一個已經(jīng)創(chuàng)建的觸發(fā)器,并且只能由具有相應(yīng)權(quán)限的用戶刪除。由具有相應(yīng)權(quán)限的用戶刪除。An Introduction to Database Sy
60、stem第五章第五章 數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性5.1 實體完整性實體完整性5.2 參照完整性參照完整性5.3 用戶定義的完整性用戶定義的完整性5.4 完整性約束命名字句完整性約束命名字句*5.5 域中的完整性限制域中的完整性限制5.6 斷言斷言5.7 觸發(fā)器觸發(fā)器5.8 小結(jié)小結(jié)An Introduction to Database System5.8 小結(jié)小結(jié)v數(shù)據(jù)庫的完整性是為了保證數(shù)據(jù)庫中存儲的數(shù)據(jù)數(shù)據(jù)庫的完整性是為了保證數(shù)據(jù)庫中存儲的數(shù)據(jù)是正確的、有效的是正確的、有效的v關(guān)系數(shù)據(jù)庫管理系統(tǒng)完整性實現(xiàn)的機制關(guān)系數(shù)據(jù)庫管理系統(tǒng)完整性實現(xiàn)的機制n完整性約束定義機制(建表時定義、約束子語句、斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年精簡版汽車短期租賃合同范本版B版
- 《初產(chǎn)婦母乳喂養(yǎng)的認(rèn)知及自我效能感現(xiàn)狀調(diào)查》
- 《明萬歷時期巡按御史巡按遼東研究》
- 《La-N、Gd-N摻雜量對ZnO電子結(jié)構(gòu)及吸收光譜影響的研究》
- 《含溶濕粕制取醇法大豆?jié)饪s蛋白工藝及蛋白特性研究》
- 《《勞動合同》漢英翻譯實踐報告》
- 2024年智能制造與工業(yè)4.0投資借款合作合同范本3篇
- 2024年砌體施工勞務(wù)分包合同工程保險與爭議解決
- 2024年危險貨物運輸安全評估與監(jiān)控合同3篇
- 下學(xué)期工作計劃模板集合四篇
- 2023年10月上海社會科學(xué)院工作人員招考聘用筆試歷年難易錯點考題薈萃附帶答案詳解
- 《法理學(xué)》(第三版教材)形成性考核作業(yè)1234答案
- 植物的抗熱性
- 《人際關(guān)系與溝通技巧》(第3版)-教學(xué)大綱
- 2023年中醫(yī)養(yǎng)生之藥膳食療考試試題
- 某土石方施工工程主要施工機械設(shè)備表
- 硅PU(塑料面層)檢驗批質(zhì)量驗收記錄表
- 高空除銹刷漆施工方案模板
- 信訪面試資料
- 【課件】《“敬畏生命珍愛生命”》主題班會課件
- 住宅物業(yè)危險源辨識評價表
評論
0/150
提交評論