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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章

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

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

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

一個表通常可以通過一個列或多個列組合的數(shù)據(jù)來唯一標識表中的每一行,這個列或列的組合就被稱為表上的主鍵。創(chuàng)建表中的主鍵是為了保證數(shù)據(jù)的實體完整性。PRIMARYKEY(主鍵)約束用于定義基本表的主鍵,它是惟一確定表中每一條記錄的標識符,其值不能為NULL,也不能重復,以此來保證實體的完整性。第9章數(shù)據(jù)完整性ppt課件(全)使用Transact-SQL語句操作法設置主鍵約束,其語法形式如下: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)建默認約束用Transact-SQL語句創(chuàng)建默認約束。其語法形式如下:

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論