版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目五:數(shù)據(jù)完整性數(shù)據(jù)完整性的概念強制性完整性的選項實現(xiàn)約束任務(wù)一任務(wù)二任務(wù)三數(shù)據(jù)完整性
5.1任務(wù)1:數(shù)據(jù)完整性的概念5.1.1相關(guān)知識數(shù)據(jù)完整性的概念數(shù)據(jù)庫中的數(shù)據(jù)質(zhì)量很大程度上決定了依賴于這些數(shù)據(jù)的應用程序的有用程度和效率,它對企業(yè)或商業(yè)活動的成敗起著重要作用,為了提高數(shù)據(jù)質(zhì)量,需要采用某些特定的方式對數(shù)據(jù)進行約束,以保數(shù)據(jù)值的完整性,維護高質(zhì)量數(shù)據(jù)。不論是在首次輸入信息或收集,直至存儲,都應在數(shù)據(jù)的所有級別強制實施數(shù)據(jù)完整性。1.數(shù)據(jù)完整性的概念數(shù)據(jù)完整性是指數(shù)據(jù)是否正確和是否可靠。以防止數(shù)據(jù)庫中的數(shù)據(jù)存在錯誤并防止因錯誤信息的輸入輸出造成數(shù)據(jù)庫的無效操作或錯誤信息。2.數(shù)據(jù)完整性的分類在SQLServer2008中,數(shù)據(jù)完整性主要分為以下三類:域完整性(列)、實體完整性(行)、引用完整性(表之間或同表的列之間),其中:(1)域完整性域完整性也稱為列完整性,它主要指定對列有效的一組數(shù)據(jù)值,并確定是否允許NULL空值。域完整性通常是使用驗證檢查實施的,并且可通過限制列允許的數(shù)據(jù)類型,格式或可能的值的范圍來進行約束。相關(guān)知識數(shù)據(jù)完整性的概念(2)實體完整性
實體完整性也稱為表完整性,主要要求表中的所有行都有唯一的標識符,也稱為主鍵值。主鍵值是否可以更改,或者整行數(shù)據(jù)是否可以刪除,都取決于主鍵與任何其它表之間所需的完整度級別。(3)引用完整性
引用完整性主要確保主鍵(在被引用表中)和外鍵(在引用表中)之間的關(guān)系是否總是得以維持。如果外鍵引用某一行數(shù)據(jù),那么除非級聯(lián)操作允許,否則不可以刪除被引用表中這一行的數(shù)據(jù),也不可以更改主鍵。引用完整性還可以被用來定義同表中或異表數(shù)據(jù)間的引用關(guān)系。域完整性、實體完整性、引用完整性三者之間的關(guān)系如圖5-1所示。相關(guān)知識數(shù)據(jù)完整性的概念圖5-1數(shù)據(jù)完整性關(guān)系圖相關(guān)知識數(shù)據(jù)完整性的概念3.主鍵與外鍵(1)主鍵主關(guān)鍵字是表中的一個或多個字段,它的值用于惟一的標識表中的某一條記錄。在兩個表的關(guān)系中,主關(guān)鍵字用來在一個表中引用來自于另一個表中的特定記錄。主關(guān)鍵字是一種唯一關(guān)鍵字,表定義的一部分。一個表不能有多個主關(guān)鍵字,并且主關(guān)鍵字的列不能包含空值。主關(guān)鍵字是可選的,并且可在CREATETABLE或ALTERTABLE語句中定義。(2)外鍵如果公共關(guān)鍵字在一個關(guān)系中是主關(guān)鍵字,那么這個公共關(guān)鍵字被稱為另一個關(guān)系的外鍵。由此可見,外鍵表示了兩個關(guān)系之間的聯(lián)系。以另一個關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。換而言之,如果關(guān)系模式R中的某屬性集不是R的主鍵,而是另一個關(guān)系R1的主鍵則該屬性集是關(guān)系模式R的外鍵,通常在數(shù)據(jù)庫設(shè)計中縮寫為FK。5.2任務(wù)2:強制性完整性的選項5.2.1相關(guān)知識強制性完整性的選項強制性保障數(shù)據(jù)完整性的方式有很多,具體如表5-1所示:方式說明數(shù)據(jù)類型用于定義可存儲在列中的數(shù)據(jù)的類型規(guī)則定義可插入列中的可接受值默認值定義未指定列值時應取的列值約束定義數(shù)據(jù)庫引擎如何強制實施數(shù)據(jù)完整性觸發(fā)器定義在修改表時自動執(zhí)行的代碼表5-1強制性保障數(shù)據(jù)完整性方式5.3任務(wù)3:實現(xiàn)約束5.3.1相關(guān)知識實現(xiàn)約束1.實現(xiàn)約束的主要類型數(shù)據(jù)約束是實現(xiàn)數(shù)據(jù)完整性的首選方法。約束能確保有效的數(shù)據(jù)值輸入列,并保持表間關(guān)系。約束的類型有很多,總體來說數(shù)據(jù)庫約束分為以下5種,總的來說有五種:唯一性和主鍵約束、外鍵約束、檢查約束、空值約束、默認值約束。主要的關(guān)鍵詞包括有五大關(guān)鍵詞,UNIQUE和PrimaryKey,F(xiàn)oreignKey,CHECK,NOTNULL,DEFAULT。約束的分類如表5-2所示:完整性類型約束類型說明域DEAULT指定列的默認值CHECK指定列的允許值FOREIGN指定必須有值存在的列NULL指定是否允許NULL實體PRIMARY唯一標識每一行UNIQE防止非主鍵重復引用FOREIGNKEY定義值必須與此表的主鍵匹配的列CHECK指定列的允許值必須基于另一個列的內(nèi)容表5-2約束分類2.實現(xiàn)約束的主要方式實現(xiàn)數(shù)據(jù)約束主要方式包括兩種,即利用SMSS工具和T-SQL語句。3.創(chuàng)建約束的語法創(chuàng)建約束的語法如下:①創(chuàng)建主鍵約束:CREATETABLE(Table_Name)(……PrimaryKey(Key_Name)……)②創(chuàng)建外鍵約束:ALTTABLEALTERTABLE(Table_Name)ADDFOREIGNKEY(ID)REFERENCESTable_Name(ID)③創(chuàng)建DEAULT約束:ALTERTABLE(Table_Name)ADDCONSTRAINT字段名DEFAULT'值'FOR字段名④創(chuàng)建CHECK約束ALTERTABLE(Table_Name)ADDCONSTRAINT字段CHECK(性別='值1'OR性別='值2')⑤創(chuàng)建UNIQUE約束ALTERTABLE(Table_Name)ADDUNIQUE(字段名)4.刪除約束的語法ALTERTABLE(Table_Name)DROPPRIMARYKEY約束名DROPFOREIGNKEY約束名5.3.2任務(wù)實施實現(xiàn)約束(1)鍵約束PrimaryKey約束與FOREIGNKEY約束也被稱為鍵約束,其中PrimaryKey約束又稱主鍵約束,F(xiàn)OREIGNKEY約束稱為外鍵約束。PrimaryKey約束定義表中構(gòu)成主鍵的一列或多列。每個表只能有一個PrimaryKey約束,并不能允許NULL值。5.3.2任務(wù)實施實現(xiàn)約束步驟1:在“SQLServerManagermentStudio”管理工具中展開數(shù)據(jù)庫對象文件夾,選擇并展要創(chuàng)建視圖的數(shù)據(jù)庫如“Student”。新建表“社團”,包括“姓名”、“社團名稱”、“社團編號”、“院系”、“性別”等字段。如圖5-2所示。主鍵約束方法1:使用“SSMS”管理工具創(chuàng)建索引操作圖示步驟2:設(shè)置“社團編號”為主鍵,創(chuàng)建PrimaryKey約束??梢栽凇吧鐖F編號”上單擊圖標
,也可以右擊“社團編號”,點擊設(shè)置主鍵,如圖5-3所示。操作圖示任務(wù)實施實現(xiàn)約束在數(shù)據(jù)庫(Student)中,創(chuàng)建“社團表”,并建立PrimaryKey約束,執(zhí)行語句如下:USEStudentGOCREATETABLE社團(社團編號varchar(3)NOTNULL,社團名稱nchar(30)NOTNULL,院系名稱nchar(30),性別char(2),姓名nvarchar(10),PRIMARYKEY(社團編號))更新數(shù)據(jù)庫表節(jié)點,可以看到新建了一張社團表,并創(chuàng)建了相應的約束條件,如圖5-4所示。方法2:使用T-SQL創(chuàng)建主鍵約束操作圖示任務(wù)實施實現(xiàn)約束在數(shù)據(jù)庫中將班級表的主鍵(班級編號)作為學生表的外鍵并創(chuàng)建外鍵約束。步驟1:打開班級表和學生表,確定要建立外鍵關(guān)系的列與主鍵表中的數(shù)據(jù)類型完全一致如圖5-5、圖5-6所示。外鍵約束FOREIGNKEY約束,用于建立和強制實施兩個表中數(shù)據(jù)之間的關(guān)聯(lián)。主要用于同表或異表中的列之間的引用,此外FOREIGNKEY必須采PRIMARYKEY或UNIQUE約束。操作圖示方法1:使用SMSS創(chuàng)建外鍵約束圖5?5主鍵表數(shù)據(jù)列
圖5?6外鍵表數(shù)據(jù)列任務(wù)實施實現(xiàn)約束步驟2:在外鍵表上任意列單擊右鍵選擇關(guān)系選項,進入外鍵關(guān)系對話框,如圖5-7所示。操作圖示步驟3:單擊“添加”按鈕,并在表和列規(guī)范中單擊右側(cè)按鈕如圖5-8所示。操作圖示步驟4:在表和列的對話框中選擇主鍵表為“班級表”,并在下拉菜單中選擇“班級編號”。在外鍵表中選擇“學生表”,并在下拉菜單中選擇“班級編號”。如圖5-9所示。操作圖示步驟5:單擊“確定”,即成功創(chuàng)建外鍵約束。任務(wù)實施實現(xiàn)約束步驟1:在數(shù)據(jù)庫(Student)中,修改班級表,并對“班級編號”建立FOREIGNKEY約束,執(zhí)行語句如下:USEStudentGOALTERTABLE學生表ADDFOREIGNKEY(班級編號)REFERENCES班級表(班級編號)方法2:使用T-SQL創(chuàng)建外鍵約束任務(wù)實施實現(xiàn)約束(2)其他約束在創(chuàng)建其他約束時需要注意以下幾個方面情況,如表5-3所示約束注意事項DEFAULT(用于向列中插入默認值,如果沒有規(guī)定插入其他的值,那么會將默認值添加到所有的新記錄)定義未指定列值時應取的列值每列只有一個DEFAULT允許某些系統(tǒng)函數(shù)CHECK(用于限制列中的值的范圍)
限制可輸入列的值每列允許多個CHECK約束可引用同表中的列,無子查詢UNIQUE(用于約束唯一標識數(shù)據(jù)庫表中的每條記錄。每個表可以有多個UNIQUE約束,但是每個表只能有一個PRIMARYKEY約束)確保列中的每一個值都是唯一的唯一列中只允許一個NULL值可包含一列或多列表5?3其他約束注意事項任務(wù)實施實現(xiàn)約束DEFAULT約束方法1:使用SMSS創(chuàng)建DEFAULT約束在學生數(shù)據(jù)庫(Student)中的表學生表,為郵編列設(shè)置為“310000”步驟1:打開數(shù)據(jù)庫(Student),右鍵單擊學生表,選擇設(shè)計,打開設(shè)計窗口。如圖5-10所示。操作圖示步驟2:選擇“郵編”列,在下方的列屬性表中選擇“默認值或綁定”,輸入“31000”,即完成DEFAULT約束設(shè)置,如圖5-11所示。操作圖示任務(wù)實施實現(xiàn)約束DEFAULT約束方法2:使用T-SQL語句創(chuàng)建DEFAYLT約束在學生數(shù)據(jù)庫(Student)中的學生表,對列“性別”設(shè)置DEFAULT約束,將性別默認為“男”,執(zhí)行語句如下:USEStudentGOALTERTABLE學生表ADDCONSTRAINT性別DEFAULT'男'FOR性別如圖5-12所示。操作圖示任務(wù)實施實現(xiàn)約束CHECK約束方法1:使用SMSS創(chuàng)建CHECK約束為“院系表”中的列“院系名稱”添加CHECK約束,約束為只能是“建筑系”或“信息系”。步驟1:在學生數(shù)據(jù)庫(Student)中單擊“院系表”,打開表設(shè)計器。如圖5-13所示。操作圖示步驟2:右擊“院系名稱”列,選擇CHECK約束,打開CHECK約束編輯器,如圖5-14所示。操作圖示任務(wù)實施實現(xiàn)約束步驟3:在CHECK約束對話框中選擇“添加”按鈕,在表達式行中單擊“編輯”按鈕,打開表達式編輯對話框,如圖5-15所示。操作圖示步驟4:在表達式編輯對話框中添加約束條件,并單擊“確定”按鈕。如圖5-16所示。操作圖示任務(wù)實施實現(xiàn)約束方法2:使用S-SQL創(chuàng)建CHECK約束操作1:在學生數(shù)據(jù)庫(Student)中的學生表,對性別設(shè)置CHECK約束,約束為“男”或者“女”,執(zhí)行語句如下:USEStudentGOALTERTABLE學生表ADDCONSTRAINT性別CHECK(性別='男'OR性別='女')任務(wù)實施實現(xiàn)約束UNIOUE約束方法1:使用SMSS創(chuàng)建CHECK約束在學生數(shù)據(jù)庫(Student)中的“班級表”,為“班級名稱”列設(shè)置UNIQUE約束。步驟1:在學生數(shù)據(jù)庫(Student)中單擊班級表,打開表設(shè)計器。如圖5-17所示。操作圖示步驟2:右擊“班級名稱”列,選擇“索引/鍵”選項,如圖5-18所示。操作圖示任務(wù)實施實現(xiàn)約束步驟3:在索引/鍵對話框中選擇“班級名稱”列,在右側(cè)的常規(guī)選項卡中,單擊“是唯一的”選項右側(cè)的下拉菜單,選擇是。即完成約束設(shè)置。如圖5-19所示。操作圖示任務(wù)實施實現(xiàn)約束方法2:使用S-SQL創(chuàng)建UNIQUE約束學生數(shù)據(jù)庫(Student)中的“院系表”,對列“院系編號”設(shè)置UNIQUE約束,執(zhí)行語句如下:USEStudentGOALTERTABLE院系表ADDUNIQUE(院系編號)任務(wù)實施實現(xiàn)約束步驟1:在學生數(shù)據(jù)庫(Student)中單擊班級表,打開表設(shè)計器。如圖5-20所示。約束的刪除方法1:使用SMSS刪除約束在學生數(shù)據(jù)庫(Student)中的“班級表”,刪除班級編號列的PRIMARYKEY約束。操作圖示步驟2:右擊“班級編號”列,選擇“索引/鍵”選項,如圖5-21所示。操作圖示任務(wù)實施實現(xiàn)約束步驟3:在索引/鍵對話框中選擇索引,單擊下方的刪除按鈕。即完成約束的刪除。如圖5-22所示。操作圖示任務(wù)實施實現(xiàn)約束方法2:使用S-SQL刪除約束在學生數(shù)據(jù)庫(Student)中的“班級表”,刪除班級編號列的PRIMARYKEY約束。學生數(shù)據(jù)庫(Student)中的院系表,對列院系編號設(shè)置UNIQUE約束,執(zhí)行語句如下:USEStudentGOALTERTABLE院系表DROPUNIQUE約束名稱項目小結(jié)本章主要介紹了保證數(shù)據(jù)完整性的重要性,以及數(shù)據(jù)完整性的分類,同時介紹了數(shù)據(jù)完整性的主要保證手段,接著介紹了數(shù)據(jù)約束的分類,數(shù)據(jù)完整性總的來說有五種:唯一性和主鍵約束、外鍵約束、檢查約束、空值約束、默認值約束。主要的關(guān)鍵詞包括有五大關(guān)鍵詞,UNIQUE和PrimaryKey、ForeignKey、CHECK、NOTNULL、DEFAULT。接下來主要介紹了如何使用SMSS以及T-SQL語句來創(chuàng)建約束,以及如何利用SMSS和SQL語句完成約束的刪除。
實訓項目綜合實訓1:創(chuàng)建約束實訓項目實訓目的:掌握數(shù)據(jù)完整性的概念及分類,理解約束的概念和使用約束保證數(shù)據(jù)完整性的方法。掌握運用SMS及Transact-SQL語言進行不同類型約束的創(chuàng)建及調(diào)試。實訓內(nèi)容:在數(shù)據(jù)庫“Library”中完成下列操作:利于T-SQL創(chuàng)建author表,包括“Name”,“Book_No”,“Sex”,“age”,“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- PPR水管安裝施工技術(shù)交底三篇
- 低年級識字教研活動記錄(3篇)
- 證券交易轉(zhuǎn)讓合同書
- 過戶車輛轉(zhuǎn)讓協(xié)議書模板
- 施工管理合同范本
- 2025-2030全球足部止痛膏行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國可持續(xù)磷行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 二零二五年度信用卡透支資金借用及監(jiān)管協(xié)議4篇
- 旅游業(yè)務(wù)居間協(xié)議怎么起草
- 武術(shù)館裝修施工人員協(xié)議
- GB/T 45102-2024機采棉采收技術(shù)要求
- 2023年全國4月高等教育自學考試管理學原理00054試題及答案新編
- 稀土配合物和量子點共摻雜構(gòu)筑發(fā)光軟材料及其熒光性能研究
- 河北省大學生調(diào)研河北社會調(diào)查活動項目申請書
- JJG 921-2021環(huán)境振動分析儀
- 中藥炮制學-第五、六章
- 中國風軍令狀誓師大會PPT模板
- 小兒高熱驚厥精品課件
- 兩段焙燒除砷技術(shù)簡介 - 文字版(1)(2)課件
- 實習證明模板免費下載【8篇】
- 2022年電拖實驗報告伍宏淳
評論
0/150
提交評論