版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、An Introduction to Database System,第5章數(shù)據(jù)庫完整性,數(shù)據(jù)庫的安全性是盡量保證非法用戶不損害數(shù)據(jù)的正確性。 數(shù)據(jù)庫的完整性是盡量保證合法用戶不會損害數(shù)據(jù)的準(zhǔn)確性。 問題:您記得實體的完整性約束和引用的完整性約束是怎樣的嗎? 數(shù)據(jù)的完整性是為了防止不符合意義的數(shù)據(jù)存在于數(shù)據(jù)庫中。 因此,DBMS必須完成:提供定義完整性約束的機制來提供完整性檢查的方法違反完整性分類進行處理:實體完整性、參照完整性和用戶定義完整性、An Introduction to Database System、約束、約束:強制性規(guī)定SQL Server的6個約束: not null非空約束
2、check檢查約束unique唯一約束primary key主代碼約束foreign key外代碼約束創(chuàng)建默認(rèn)約束:在創(chuàng)建表的同時注意現(xiàn)有表:在表中創(chuàng)建數(shù)據(jù)1、創(chuàng)建非空約束: altertablecoursealtercolumncreditsmallintnotnull必須在此指定列類型。 2 .創(chuàng)建唯一約束條件: altertablecourseaddconstraintuq _ cname unique (cname )其中constraint關(guān)鍵字命名該約束條件。 也就是說,uq_cname是約束的約束名稱。注意:命名每個約束是一個好習(xí)慣。an introduction to數(shù)據(jù)庫系統(tǒng)
3、、check約束條件、1、創(chuàng)建表時建立check約束條件:創(chuàng)建表tu (SnO char (9) constraint PK _ stu agesmallintconstraintc _ age檢查(age0a ndag e0andage0andage00 andage 100 )、邏輯表達(dá)式、問題:此時age列的值是否可以為空?an introduction to數(shù)據(jù)庫系統(tǒng),check約束(續(xù)),3,check表達(dá)式可以包含多個屬性。 CS系學(xué)生必須在25歲以下: altertablestudentaddconstraintc _ cs _ age check (sdeptcsorsage=
4、25 )問題:你知道這個制約條件是怎么得到的嗎? 4 .只有男性或女性取規(guī)則性的另一個值: altertablestudentaddconstraintc _ ssex check (ssex in (男性,女性) 問題:此時ssex列的值是空的嗎? altertablestudentaddconstraintc _ ssex檢查(男、女、空)、an指導(dǎo)到數(shù)據(jù)庫系統(tǒng)和deex性別列的默認(rèn)值為男性。 1 .在創(chuàng)建表格時建立默認(rèn)約束條件:創(chuàng)建表格標(biāo)準(zhǔn)(不計算機(9)主密鑰、計算機(2)約束條件c _ ssex _ def默認(rèn)男性) 2。 將默認(rèn)約束條件添加到表中: alter tablestude
5、ntaddconstraintc _ ssex _ def default for ssex刪除約束條件: alter table表名稱drop constraint約束條件名稱: alter table表名稱、An Introduction to Database System、規(guī)則、規(guī)則:可用于限制屬性取值的范圍,實現(xiàn)強制數(shù)據(jù)的域一致性,類似于check約束。 check約束條件可以單獨創(chuàng)建,也可以單獨創(chuàng)建,或者只創(chuàng)建一次,然后創(chuàng)建多個表1、createrulerange _ ruleas range0and range 100 createrulelel 其中,局部變量引用在update
6、或insert語句中輸入的值。將規(guī)則綁定到數(shù)據(jù)庫系統(tǒng)、規(guī)則(續(xù))、createrulepattern _ ruleasvaluelike _-%0- 92、將規(guī)則綁定到student.sageexecsp _ bindrule范圍sc.grade 3、解除表列的規(guī)則綁定exec sp_unbindrule student.sage 4、刪除規(guī)則綁定的規(guī)則刪除失敗。An Introduction to Database System、缺省值、缺省值:作用與default約束條件相同,使用方法與規(guī)則相似。1 .創(chuàng)建默認(rèn)值create default def_sex as男2,將默認(rèn)值綁定到表列ex
7、ec sp_bindefault def_sex,student.ssex 3,解除表列的默認(rèn)綁定execsp _ unbindefault 缺省值drop default def_sex、缺省名稱,其中是常量表達(dá)式、An Introduction to Database System、完整性違規(guī)處理、1、實體完整性違規(guī)處理實體完整性通過在表中定義主代碼來實現(xiàn)如果更新操作違反了實體的完整性,則該更新操作將被拒絕。 2 .參照完整性違規(guī)處理問題:在SC表中插入?yún)⒄胀暾赃`規(guī)的數(shù)據(jù)時,您認(rèn)為如何合理處理? 從Student表格中刪除第一名學(xué)生。 如果他選了課,你認(rèn)為對SC表怎么處理才合理呢?把1號
8、學(xué)生的學(xué)號改為10號,對SC表怎么處理才合理呢? 從Course表中刪除第一節(jié)課,第二節(jié)課的先行課是第一節(jié)課,怎么做才合理呢? 1天的課號改為10天,2天的先行課是1天的話,怎么做才合理呢? 3、用戶定義的完整性違反的,拒絕執(zhí)行。an introduction to數(shù)據(jù)庫系統(tǒng)、參照完整性違規(guī)處理、2、參照完整性違規(guī)處理create table sc (sno char(9)、cno char(4)、gradesmaaar constraint fk _ SnO foreign k 參考標(biāo)準(zhǔn)(SnO )建議更新參考標(biāo)準(zhǔn)(ondeletecascadeonupdatecascade ) 創(chuàng)建表計算
9、命名卡(40 ) not null、cpno卡(4)、credit smallint、constraint fk _ cpnoforeignkey (cpno )參考問題:實現(xiàn)此功能要求如果沒有明確提供違約處理,則默認(rèn)為no action。An Introduction to Database System、觸發(fā)器和觸發(fā)器:用戶在關(guān)系表中定義的事件驅(qū)動的特殊過程。 常見事件:插入、刪除、更新(即數(shù)據(jù)更新操作)定義觸發(fā)器的常見格式: createtriggerontable _ name|view _ name for|after | 更新as begin t-SQL語句結(jié)束示例: create
10、triggerinsert _ studentonstudentforinsertasbeginprinthitrigger。 end,問題:這個程序什么時候運行? 如果將事件insert寫成delete或update,或者寫成它們的組合會怎么樣? 扳機有什么用?An Introduction to Database System、觸發(fā)器(續(xù))、after :觸發(fā)事件的SQL語句的所有操作(包括各種約束條件檢查)如果成功執(zhí)行,將觸發(fā)。 使用for關(guān)鍵字時,默認(rèn)值為after。 對于表格中的相同操作,表格中只能定義多個觸發(fā)器instead of。 定義的更新動作不會執(zhí)行,只會執(zhí)行觸發(fā)器本身。 只
11、能定義一個觸發(fā)器alter trigger命令,用于以與創(chuàng)建觸發(fā)器完全匹配的格式修改表和視圖中的同一觸發(fā)器操作。 刪除drop觸發(fā)器觸發(fā)器_ name觸發(fā)器。 exec sp_rename old_name,new_name變更觸發(fā)器名稱。 顯示exec sp _ help觸發(fā)器表_ name表的觸發(fā)器信息。 exec sp _ helptext觸發(fā)器_ name顯示觸發(fā)器定義信息。An Introduction to Database System、觸發(fā)器(續(xù))、disable trigger on無效觸發(fā)器啟用觸發(fā)器啟用觸發(fā)器問題:如果在同一表中為同一更新操作定義了多個觸發(fā)器,則它們將啟用
12、execsp _ settriggerordertriggername,value,type其中第二個關(guān)殘奧字元是第一個、最后一個或無字串。 第三個殘奧元可以是insert、delete或update字符串。 此存儲過程指定要對表執(zhí)行的第一個和最后一個after觸發(fā)器。 每個更新操作只能在表中指定一個第一個和最后一個after觸發(fā)器。 如果同一表中存在其他after觸發(fā)器,則隨機執(zhí)行這些觸發(fā)器。、an introduction to數(shù)據(jù)庫系統(tǒng)、觸發(fā)器的遞歸觸發(fā)、createtabletmpt (idintprimarykeyidentity,numint ) 單擊createtriggerin
13、s _ tmptontmptforinsertasbegininsertintotmpt (num ) values (3) endinsertintotmpt (num )以標(biāo)識唯一行的id列默認(rèn)初始值1,步驟1。 查看和修改數(shù)據(jù)庫選項。 sp_dboption和sp _配置。 其中,如果recursive triggers選項設(shè)置為true,則啟用觸發(fā)器遞歸觸發(fā)器。 如果為false (默認(rèn)值),則僅禁止直接遞歸。 要禁用間接遞歸,請使用sp_configure將nested triggers服務(wù)器選項設(shè)置為0。 或者,使用數(shù)據(jù)庫屬性進行設(shè)置。 注意:是否進行遞歸觸發(fā)取決于應(yīng)用程序的需求,
14、但請注意遞歸出口問題。an introduction to數(shù)據(jù)庫系統(tǒng),如何實現(xiàn)此功能? 中的組合圖層性質(zhì)變更選項。 將各轉(zhuǎn)系學(xué)生的原系信息記錄在history_dept_info表中。 此表中必須存儲學(xué)生編號、學(xué)生為原系、學(xué)生為轉(zhuǎn)入系、轉(zhuǎn)入時間的信息。 分析: history_dept_info關(guān)系的代碼是什么? 如何獲取系統(tǒng)的當(dāng)前時間觸發(fā)器的觸發(fā)條件是什么? 觸發(fā)器需要什么? 觸發(fā)器如何知道sdept屬性的修改前和修改后的價值,創(chuàng)建表history _ dept _ info (idintprimarykeyidentity,sno char(9),old_dept char(20 )、 an introduction to數(shù)據(jù)庫系統(tǒng)、deleted表和inserted表、deleted表和inserted表是SQL Server在觸發(fā)器執(zhí)行期間自動創(chuàng)建和管理的兩個虛擬表的兩
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年朔州陶瓷職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 2026年四川大學(xué)錦江學(xué)院單招綜合素質(zhì)考試參考題庫帶答案解析
- 2025年全國第一屆安全知識競賽題庫及答案
- 2026年西南交通大學(xué)希望學(xué)院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 2024年鍋爐本體檢修中級工理論題庫及答案
- 2025GMP考試試題及答案
- 2025年公共營養(yǎng)師(健康飲食、營養(yǎng)搭配)等知識考試題庫與答案
- 2026年自貢職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題有答案解析
- 2025年第一季度家醫(yī)服務(wù)培訓(xùn)試題附答案
- 2026年云南新興職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試參考題庫有答案解析
- 2025年門診部工作總結(jié)及2026年工作計劃
- 《馬克思主義基本原理概論》習(xí)題庫完整版
- 2025年涉密信息系統(tǒng)集成資質(zhì)保密知識測試新版題庫(附答案)
- 基本體操課件
- 2026年中國蒽醌行業(yè)市場需求分析及趨勢預(yù)測
- 2025年重慶梁平低空經(jīng)濟產(chǎn)業(yè)帶規(guī)劃與實施路徑報告
- 電梯轎廂內(nèi)裝飾施工方案
- 行政領(lǐng)導(dǎo)學(xué)-形考任務(wù)二-國開-參考資料
- 門窗打膠施工方案
- 家紡?fù)赓Q(mào)工作總結(jié)
- 高校教師年終述職報告
評論
0/150
提交評論