第9章-數(shù)據(jù)完整性_第1頁
第9章-數(shù)據(jù)完整性_第2頁
第9章-數(shù)據(jù)完整性_第3頁
第9章-數(shù)據(jù)完整性_第4頁
第9章-數(shù)據(jù)完整性_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章

數(shù)據(jù)完整性第9章數(shù)據(jù)完整性ppt課件(全)本章的學(xué)習(xí)目標(biāo): 操縱數(shù)據(jù)時(shí)的問題和解決機(jī)制 約束的基本概念和類型 管理DEFAULT約束 管理CHECK約束 管理主鍵約束 管理UNIQUE約束 管理外鍵約束 禁止約束的場景第9章數(shù)據(jù)完整性ppt課件(全)9.1數(shù)據(jù)完整性概述數(shù)據(jù)完整性的含義包括以下內(nèi)容:(1)數(shù)值的完整性,指數(shù)據(jù)類型與取值的正確性。(2)表內(nèi)數(shù)據(jù)不相互矛盾。(3)表間數(shù)據(jù)不相互矛盾,指數(shù)據(jù)的關(guān)聯(lián)性不被破壞。第9章數(shù)據(jù)完整性ppt課件(全)實(shí)體完整性,要求表中每一條記錄(每一行數(shù)據(jù))是惟一的,即它必須至少擁有一個(gè)惟一標(biāo)識以區(qū)分不同的數(shù)據(jù)行。實(shí)現(xiàn)方法有:主鍵約束PRIMARYKEY、惟一性約束UNIQUE、惟一索引UNIQUEINDEX、標(biāo)識IDENTITY等。第9章數(shù)據(jù)完整性ppt課件(全)值域完整性,限定表中輸入數(shù)據(jù)的數(shù)據(jù)類型與取值范圍。實(shí)現(xiàn)方法:默認(rèn)值約束DEFAULT或默認(rèn)對象、核查約束CHECK、外鍵約束FOREIGNKEY、規(guī)則RULE、數(shù)據(jù)類型、非空性約束NOTNULL等。第9章數(shù)據(jù)完整性ppt課件(全)引用完整性,指對數(shù)據(jù)庫進(jìn)行添加、刪除、修改數(shù)據(jù)時(shí),要維護(hù)表間數(shù)據(jù)的一致性。實(shí)現(xiàn)方法:外鍵約束FOREIGNKEY、核查約束CHECK、觸發(fā)器TRIGGER、存儲過程PROCEDURE。第9章數(shù)據(jù)完整性ppt課件(全)用戶定義的完整性,用于實(shí)現(xiàn)用戶特殊要求的數(shù)據(jù)規(guī)則或格式。實(shí)現(xiàn)方法:默認(rèn)值DEFAULT、核查約束CHECK、規(guī)則RULE等。第9章數(shù)據(jù)完整性ppt課件(全)9.2使用約束實(shí)施數(shù)據(jù)的完整性 約束用于實(shí)現(xiàn)表內(nèi)數(shù)據(jù)的完整性,屬于對象級。SQLServer支持的約束有如下幾種:非空約束NOTNULL,主鍵約束PRIMARYKEY、惟一約束UNIQUE、核查約束CHECK、外鍵約束FOREIGNKEY、默認(rèn)值約束DEFAULT。第9章數(shù)據(jù)完整性ppt課件(全)9.3約束的概念和類型 在SQLServer中,對于基本表的約束分為列約束和表約束。列約束是對某一個(gè)特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名;表約束與列定義相互獨(dú)立,不包括在列定義中,通常用于對多個(gè)列一起進(jìn)行約束,與列定義用“,”分隔,定義表約束時(shí)必須指出要約束的列的名稱。 完整性約束的基本語法格式如下:[CONSTRAINTconstraint_name(約束名)]<約束類型>第9章數(shù)據(jù)完整性ppt課件(全)9.4管理約束9.4管理約束本節(jié)詳細(xì)研究各種DEFAULE、CHECK、主鍵、UNIQUE、外鍵等約束的特點(diǎn)、創(chuàng)建方式、修改等內(nèi)容。第9章數(shù)據(jù)完整性ppt課件(全)

約束:完整性類型約束類型描述域DEFAULT指定列的默認(rèn)值CHECK指定列的允許值FOREIGNKEY指定必須存在值的列NULL指定是否允許為NULL實(shí)體PRIMARYKEY唯一標(biāo)識每一行UNIQUE防止非主鍵重復(fù)引用FOREIGNKEY定義值與同一個(gè)表或另一個(gè)表的主鍵值匹配的一列或多列組合

CHECK指定根據(jù)同一個(gè)表中其他列的值可在列中接受的數(shù)據(jù)值第9章數(shù)據(jù)完整性ppt課件(全)PRIMARYKEY約束:

一個(gè)表通??梢酝ㄟ^一個(gè)列或多個(gè)列組合的數(shù)據(jù)來唯一標(biāo)識表中的每一行,這個(gè)列或列的組合就被稱為表上的主鍵。創(chuàng)建表中的主鍵是為了保證數(shù)據(jù)的實(shí)體完整性。PRIMARYKEY(主鍵)約束用于定義基本表的主鍵,它是惟一確定表中每一條記錄的標(biāo)識符,其值不能為NULL,也不能重復(fù),以此來保證實(shí)體的完整性。第9章數(shù)據(jù)完整性ppt課件(全)使用Transact-SQL語句操作法設(shè)置主鍵約束,其語法形式如下:CONSTRAINTconstraint_namePRIMARYKEY(column_name)第9章數(shù)據(jù)完整性ppt課件(全)UNIQUE約束通過SSMS可以完成創(chuàng)建和修改唯一性約束的操作使用Transact-SQL語句完成惟一性約束的操作,其語法形式如下:

CONSTRAINTconstraint_nameUNIQUE(column_name)第9章數(shù)據(jù)完整性ppt課件(全)CHECK約束使用SSMS圖形化界面創(chuàng)建檢查約束

用Transact-SQL語句創(chuàng)建檢查約束。其語法形式如下:

CONSTRAINTconstraint_nameCHECK(logical_expression)第9章數(shù)據(jù)完整性ppt課件(全)DEFAULT約束使用SSMS圖形化界面創(chuàng)建默認(rèn)約束用Transact-SQL語句創(chuàng)建默認(rèn)約束。其語法形式如下:

CONSTRAINTconstraint_nameDEFAULTconstraint_expression[FORcolumn_name]第9章數(shù)據(jù)完整性ppt課件(全)NULL約束使用SSMS圖形化界面設(shè)置空值約束。用Transact-SQL語句創(chuàng)建空值約束。其語法形式如下:直接在相應(yīng)的語句后書寫[NULL|NOTNULL]第9章數(shù)據(jù)完整性ppt課件(全)FOREIGNKEY約束在SSMS圖形化平臺上添加外鍵約束。第9章數(shù)據(jù)完整性ppt課件(全)使用Transact-SQL語句設(shè)置外部鍵約束,其語法形式如下:CONSTRAINTconstraint_nameFOREIGNKEY(column_name[,…n])REFERENCESref_table[(ref_column[,…n])]第9章數(shù)據(jù)完整性ppt課件(全)9.5禁止約束約束是作用于表的數(shù)據(jù)庫對象,離開了表,約束將不再存在。除了約束外,SQLServer還提供了兩個(gè)獨(dú)立于表的數(shù)據(jù)庫對象用以維護(hù)數(shù)據(jù)庫的完整性,即默認(rèn)和規(guī)則。規(guī)則的作用類似于核查約束,若將一個(gè)規(guī)則綁定到指定列上,則可以檢查該列的數(shù)據(jù)是否符合規(guī)則的要求。第9章數(shù)據(jù)完整性ppt課件(全)9.5.1創(chuàng)建規(guī)則創(chuàng)建規(guī)則的語法如下。命令格式:CREATERULErule_nameASrule_expression命令說明: (1)rule_name為要建立的規(guī)則的名稱。 (2)rule_expression為規(guī)則表達(dá)式,它與WHERE子句中的條件表達(dá)式類似,可以使用比較表達(dá)式、邏輯表達(dá)式、LIKE子句等,所不同的是需要將WHERE子句中的列名改為一個(gè)以@開頭并符合SQLServer命名規(guī)則的參數(shù)。第9章數(shù)據(jù)完整性ppt課件(全)9.5.2綁定規(guī)則

規(guī)則創(chuàng)建后,它僅僅是一個(gè)數(shù)據(jù)庫對象,與其他數(shù)據(jù)庫對象并沒有聯(lián)系。要將規(guī)則應(yīng)用于一個(gè)表(或用戶定義的數(shù)據(jù)類型)中,必須將其與表中的指定列(或用戶定義的數(shù)據(jù)類型)相結(jié)合,稱之為將規(guī)則綁定(bind)到列(或用戶定義的數(shù)據(jù)類型),或稱綁定規(guī)則。綁定規(guī)則需要使用系統(tǒng)存儲過程sp_bindrule,語法如下。命令格式:sp_bindrulerule_name,'table_name.column_name'或sp_bindrulerule_name,'user_defined_datatype'[,'futureonly_flag']命令說明:第9章數(shù)據(jù)完整性ppt課件(全)9.5.3解除綁定當(dāng)表中不再需要規(guī)則時(shí),可以將規(guī)則與列分離,稱為解除綁定。解除綁定需要使用系統(tǒng)存儲過程sp_unbindrule,語法如下。命令格式:sp_unbindrule'table_name.column_name'或sp_unbindrule'user_defined_datatype'[,'futureonly_flag']第9章數(shù)據(jù)完整性ppt課件(全)9.5.4刪除規(guī)則刪除規(guī)則的前提是解除數(shù)據(jù)庫中所有表的綁定。刪除規(guī)則語法如下。命令格式:DROPRULErule_name第9章數(shù)據(jù)完整性ppt課件(全)9.6默認(rèn)9.6.1創(chuàng)建默認(rèn)創(chuàng)建默認(rèn)的語法如下。命令格式:CREATEDEFAULTdefault_nameASdefault_expression命令說明: (1)default_name是符合SQLServer標(biāo)識符規(guī)則的默認(rèn)值名稱。 (2)default_expression是常量,用以指出默認(rèn)值的具體數(shù)值或字符串。第9章數(shù)據(jù)完整性ppt課件(全)9.6.2綁定默認(rèn)綁定默認(rèn)的語法如下。命令格式:sp_bindefaultdefault_name,'table_name.column_name'或sp_bindefaultdefault_name,'user_defined_datatype'[,'futureonly_flag']命令說明: (1)default_name為默認(rèn)值數(shù)據(jù)庫對象的名稱。 (2)其他語法項(xiàng)目的用法與規(guī)則類似。第9章數(shù)據(jù)完整性ppt課件(全)9.6.3解除綁定解除默認(rèn)綁定的語法如下。命令格式:sp_unbindefault'table_name.column_name'或sp_unbindefault'user_defined_datatype'[,'futureonly_flag']第9章數(shù)據(jù)完整性ppt課件(全)9.6.4刪除默認(rèn)刪除默認(rèn)之前要先解除默認(rèn)綁定。刪除默認(rèn)的語法如下。命令格式:DROPDEFAULTdefault_name第9章數(shù)據(jù)完整性ppt課件(全)9.6.5使用SSMS圖形化界面管理默認(rèn)值對象與管理規(guī)則類似,在企業(yè)管理器中展開指定數(shù)據(jù)庫節(jié)點(diǎn),單擊“默認(rèn)”,在窗口右邊可以看到當(dāng)前數(shù)據(jù)庫中的所有默認(rèn)值對象。右擊“默認(rèn)”,選擇“新建默認(rèn)”,在彈出的窗口輸入默認(rèn)名稱及其取值。或右擊某個(gè)現(xiàn)有的默認(rèn)值對象,選擇“屬性”,可以查看、修改或綁定該默認(rèn)值對象。注意在修改之前需要解除綁定。第9章數(shù)據(jù)完整性ppt課件(全)9.7使用自動(dòng)編號IDENTITYSQLServer為自動(dòng)進(jìn)行順序編號而引入了自動(dòng)編號的IDENTITY屬性。當(dāng)需要對某一列輸入的數(shù)據(jù)進(jìn)行有規(guī)律的順序編號且保證每個(gè)編號惟一時(shí),最好是采用IDENTI

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論