第5章 數(shù)據(jù)完整性_第1頁(yè)
第5章 數(shù)據(jù)完整性_第2頁(yè)
第5章 數(shù)據(jù)完整性_第3頁(yè)
第5章 數(shù)據(jù)完整性_第4頁(yè)
第5章 數(shù)據(jù)完整性_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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)介

第5章數(shù)據(jù)完整性5.1數(shù)據(jù)完整性概述5.2完整性的實(shí)現(xiàn)5.1數(shù)據(jù)完整性概述

關(guān)系模型中數(shù)據(jù)完整性主要是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行約束,以保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)的正確性和相容性。 關(guān)系模型中提供了3類完整性規(guī)則:實(shí)體完整性參照完整性自定義完整性。5.1數(shù)據(jù)完整性概述1.實(shí)體完整性實(shí)體完整性是指基本關(guān)系的主屬性(或主鍵)不能取空值。2.參照完整性參照完整性是指兩個(gè)表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)對(duì)應(yīng)一致。3.用戶定義完整性用戶定義完整性是針對(duì)某一特定關(guān)系數(shù)據(jù)庫(kù)的約束條件,由應(yīng)用環(huán)境所決定5.2完整性的實(shí)現(xiàn)5.2.1列約束和表約束5.2.2默認(rèn)約束5.2.3主鍵約束5.2.4惟一約束5.2.5CHECK約束5.2.6外鍵約束5.2.1列約束和表約束約束又分為列約束(ColumnConstraint)和表約束(TableConstraint)。列約束作為列定義的一部分只作用于此列本身。表約束作為表定義的一部分,可以作用于多個(gè)列。5.2.1列約束和表約束【例5.1】創(chuàng)建表BorrowList分別定義了列約束和表約束。CREATETABLEBorrowList(

借閱編號(hào)intidentity(1,1)NOTNULL,

圖書(shū)編號(hào)varchar(50),

借書(shū)證編號(hào)varchar(50),

借閱時(shí)間datetime,

應(yīng)還書(shū)時(shí)間datetime,

實(shí)際歸還時(shí)間datetime,

續(xù)借時(shí)間datetime,

逾期罰款moneycheck(逾期罰款>=1and逾期罰款<=10),/*列約束*/constraintpk_編號(hào)primarykey(借閱編號(hào),圖書(shū)編號(hào),借書(shū)證編號(hào))/*表約束*/)5.2.2默認(rèn)約束默認(rèn)約束通過(guò)定義列的默認(rèn)值或使用數(shù)據(jù)庫(kù)的默認(rèn)值對(duì)象綁定表的列,來(lái)指定列的默認(rèn)值?!纠?.2】在SSMS界面中,為圖書(shū)借閱信息管理系統(tǒng)中的ReaderCard表的“性別”列創(chuàng)建缺省約束。5.2.2默認(rèn)約束【例5.3】使用T-SQL語(yǔ)句,為圖書(shū)借閱信息管理系統(tǒng)中的ReaderCard表創(chuàng)建名為DF_性別的DEFAULT約束,該約束的值為男。ALTERTABLEReaderCardADDCONSTRAINTDF_性別

DEFAULT(’男’)for性別5.2.3主鍵約束主鍵約束是一種基礎(chǔ)性約束,主鍵約束(primarykey)定義了用于惟一標(biāo)識(shí)某一行的一列或多列數(shù)據(jù)。在SQLServer2008中,主鍵約束具備以下幾個(gè)特點(diǎn):(1)被定義的主鍵列數(shù)據(jù)不允許有相同的值(2)被定義為主鍵約束的列,值不能為空值。(3)一張表只能定義一個(gè)主鍵約束。5.2.3主鍵約束1.在SSMS界面中,創(chuàng)建表時(shí)定義主鍵約束【例5.4】在SSMS界面中,為圖書(shū)借閱信息管理系統(tǒng)中的BookInfo表的“圖書(shū)編號(hào)”列創(chuàng)建主鍵約束,以保證圖書(shū)編號(hào)的惟一性。5.2.3主鍵約束2.通過(guò)T-SQL語(yǔ)句為數(shù)據(jù)庫(kù)中已經(jīng)存在的表添加主鍵?!纠?.5】使用T-SQL語(yǔ)句,為圖書(shū)借閱信息管理系統(tǒng)中的CardType表的“卡類型編號(hào)”列添加主鍵約束,以保證“卡類型編號(hào)”的惟一性。ALTERTABLECardTypeADDCONSTRAINTpk_CardNoPRIMARYKEY(卡類型編號(hào))5.2.4唯一約束惟一性(UNIQUE)約束指定一個(gè)或多個(gè)列的組合的值具有惟一性,以防止在列中輸入重復(fù)的值。 惟一性約束指定的列可以有NULL

屬性。由于主關(guān)鍵字值是具有惟一性的,因此主關(guān)鍵字列不能再設(shè)定惟一性約束。5.2.4唯一約束【例5.6】使用T-SQL語(yǔ)句,為圖書(shū)借閱信息管理系統(tǒng)中的BorrowList表的“圖書(shū)編號(hào)”和“借書(shū)證編號(hào)”兩列添加惟一性約束。ALTERTABLEBorrowListADDCONSTRAINT

Uq_book_card_NoUNIQUE(圖書(shū)編號(hào),借書(shū)證編號(hào))5.2.5檢查(Check)約束

檢查約束對(duì)輸入列或整個(gè)表中的值設(shè)置檢查條件,以限制輸入值,保證數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性??梢詫?duì)每個(gè)列設(shè)置檢查約束。5.2.5檢查(Check)約束【例5.7】使用T-SQL語(yǔ)句,為圖書(shū)借閱信息管理系統(tǒng)中的BorrowList表“續(xù)借時(shí)間”添加檢查約束,續(xù)借時(shí)間必須在應(yīng)還書(shū)時(shí)間的10天前。ALTERTABLEBorrowListADDCONSTRAINTCK_tcheck(續(xù)借時(shí)間<應(yīng)還書(shū)時(shí)間-10)5.2.6外鍵約束

外鍵約束(foreignkey)定義了表之間的關(guān)系。當(dāng)一個(gè)表中的一個(gè)列或多個(gè)列的組合和其它表中的主關(guān)鍵字定義相同時(shí),就可以將這些列或列的組合定義為外關(guān)鍵字,并設(shè)定它適合哪個(gè)表中哪些列相關(guān)聯(lián)。5.2.6外鍵約束【例5.8】使用T-SQL語(yǔ)句,為圖書(shū)借閱信息管理系統(tǒng)中的BookInfo表中的圖書(shū)編號(hào)和BorrowList表的圖書(shū)編號(hào)建立外鍵約束。ALTERTABLEBorrowListAD

溫馨提示

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