




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第8章,第8節(jié)SQL Server 2005數(shù)據(jù)庫控制和維護(hù),數(shù)據(jù)庫應(yīng)用教程,數(shù)據(jù)庫完整性控制,數(shù)據(jù)庫安全管理,數(shù)據(jù)庫備份和恢復(fù),第8節(jié)SQL Server 2005數(shù)據(jù)庫控制和維護(hù),第8.1.1節(jié)數(shù)據(jù)完整性概述,第8.1.2節(jié)使用約束的數(shù)據(jù)完整性控制,第8.1.3節(jié)使用規(guī)則實(shí)現(xiàn)數(shù)據(jù)完整性控制,第8.1節(jié)數(shù)據(jù)庫完整性控制,第8.1.4節(jié)使用默認(rèn)值實(shí)現(xiàn)數(shù)據(jù)完整性控制,第8.1.5節(jié)使用觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)完整性控制,第8.1.1節(jié)數(shù)據(jù)完整性概述,第1節(jié)完整性的概念由于數(shù)據(jù)庫是一個(gè)動(dòng)態(tài)集合,并且數(shù)據(jù)是不斷插入和修改的,因此數(shù)據(jù)庫的數(shù)據(jù)完整性可能會(huì)因主觀或客觀原因而被破壞。2.數(shù)據(jù)庫的數(shù)據(jù)完整性被破壞。(
2、1)無效數(shù)據(jù)被添加到數(shù)據(jù)庫。例如,在教師管理系統(tǒng)中,輸入的教師編號(hào)不存在。(2)對數(shù)據(jù)庫的修改不一致。例如,在兩個(gè)不同的表格中,同一個(gè)老師的部門編號(hào)是不同的。(3)將現(xiàn)有數(shù)據(jù)修改成無效數(shù)據(jù)。例如,教師的部門編號(hào)被更改為不存在的部門。8.1.1數(shù)據(jù)完整性概述,3完整性機(jī)制,為了保證存儲(chǔ)數(shù)據(jù)的完整性,數(shù)據(jù)庫管理系統(tǒng)應(yīng)該能夠控制數(shù)據(jù)庫的數(shù)據(jù)完整性。在SQL Server2000中,提供了約束、默認(rèn)值、規(guī)則和觸發(fā)器等維護(hù)機(jī)制來控制數(shù)據(jù)完整性。在SQL Server中,數(shù)據(jù)完整性分為四類:實(shí)體完整性、域完整性、引用完整性和用戶定義的完整性。8.1.1數(shù)據(jù)完整性概述,域完整性:也稱為列完整性。域完整性要求
3、輸入表中指定列的數(shù)據(jù)必須具有正確的數(shù)據(jù)類型、格式和有效的數(shù)據(jù)范圍。例如,在學(xué)院管理系統(tǒng)數(shù)據(jù)庫的“選擇課程”表中,在“分?jǐn)?shù)”列中輸入數(shù)據(jù)時(shí),不能出現(xiàn)字符,也不能輸入小于0或大于100的值。域完整性的控制方法主要包括CHECK約束、外鍵約束、默認(rèn)約束、默認(rèn)值、非空定義、規(guī)則和創(chuàng)建表時(shí)設(shè)置的數(shù)據(jù)類型。實(shí)體完整性的控制方法主要包括主鍵約束、唯一索引、唯一約束和指定身份屬性。完整性控制方法,引用完整性控制方法:主要有外鍵約束,有時(shí)引用完整性控制可以通過使用觸發(fā)器來實(shí)現(xiàn)。8.1.2使用約束來實(shí)現(xiàn)數(shù)據(jù)完整性控制。在SQL Server中,數(shù)據(jù)庫的數(shù)據(jù)完整性控制可以通過約束來實(shí)現(xiàn)。常用的約束有非空、檢查、唯一
4、、主鍵、外鍵和默認(rèn)值。1約束建立,formatalter table table _ name add constraint _ name primary key clustered | nonclustered(列,n),(1)主鍵約束創(chuàng)建,函數(shù)將一個(gè)名為constraint _ name的主鍵約束添加到由table _ name指定為表名的表中。示例8-1在CollegeMIS數(shù)據(jù)庫的SelectCourse表中刪除主鍵pk _ xuanke,然后重新構(gòu)建它。使用學(xué)院名稱更改表選擇課程刪除約束PK _玄可更改表選擇課程添加約束PK _玄可主鍵(StuNo,TeaNo,CourseNo) G
5、O,8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-2在學(xué)院名稱數(shù)據(jù)庫中為部門表的部門名稱字段創(chuàng)建唯一的約束,約束名稱為IX_DepartName。(2)創(chuàng)建唯一約束企業(yè)管理器用于創(chuàng)建唯一約束。有時(shí),在數(shù)據(jù)表中,除了主鍵,其他列也需要是唯一的。例如,在“部門”表中,主鍵是“部門代碼”,但盡管其他字段“部門名稱”不是主鍵,但有必要確保其唯一性,因此有必要在表中創(chuàng)建唯一約束。使用對象資源管理器創(chuàng)建唯一約束。以“部門”表為例,為“部門名稱”字段創(chuàng)建唯一的約束。操作步驟如下:(1)在“對象資源管理器”窗格中,右鍵單擊需要設(shè)置唯一約束的表(在本例中為“部門”表),然后從彈出的快捷菜單中選擇“修
6、改”命令,打開“表設(shè)計(jì)器”窗口。(2)在表設(shè)計(jì)器窗口中,右鍵單擊需要設(shè)置為唯一約束的字段(在本例中為部門名稱字段),從彈出的快捷菜單中選擇索引/鍵命令,如圖6-7所示。您也可以直接點(diǎn)擊工具欄中的管理索引和鍵按鈕,打開索引/鍵對話框,如圖6-7所示。選擇圖6-7中的“索引/鍵”命令和圖6-8中的“索引/鍵”對話框。(3)在打開的“索引/關(guān)鍵字”對話框中點(diǎn)擊“添加”按鈕,結(jié)果如圖6-9所示。圖6-9單擊添加創(chuàng)建一個(gè)唯一的約束;(4)設(shè)置相關(guān)選項(xiàng)后,單擊關(guān)閉完成唯一約束的創(chuàng)建。此時(shí),不僅表的主鍵必須是唯一的,而且設(shè)置為唯一約束的字段也必須是唯一的。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,格
7、式更改表名添加約束名唯一聚集|非聚集(列,(2) Transact-SQL語句用于創(chuàng)建唯一約束。函數(shù)向表名指定的表中添加一個(gè)由約束名指定名稱的唯一約束。注意:唯一約束的默認(rèn)索引類型是非聚集的。8.1.2實(shí)現(xiàn)帶約束的數(shù)據(jù)完整性控制,1建立約束,示例8-3通過Transact-SQL語句為學(xué)院管理系統(tǒng)數(shù)據(jù)庫中的部門表的電話字段創(chuàng)建唯一的約束,約束名稱為IX _ Phone。(2)使用Transact-SQL語句創(chuàng)建唯一約束,使用學(xué)院misgo alter table department添加約束IX _ telphone unique(電話)go,8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,
8、示例8-4為學(xué)院管理系統(tǒng)數(shù)據(jù)庫中“課程”的“學(xué)分”字段創(chuàng)建檢查約束。約束名稱是CK _等級。檢查條件只允許17分,不得少于1分和多于7分。(3)檢查約束的創(chuàng)建使用對象資源管理器來檢查輸入數(shù)據(jù)的值,這可以限制數(shù)據(jù)輸入,從而保持?jǐn)?shù)據(jù)的域完整性。操作步驟如下:(1)在對象資源管理器窗格中,右鍵單擊需要設(shè)置唯一約束的表(在本例中為課程計(jì)劃),并從彈出的快捷菜單中選擇修改以打開表設(shè)計(jì)器窗口。(2)在表設(shè)計(jì)器窗口中,右鍵單擊要?jiǎng)?chuàng)建檢查約束的字段(在本例中為信用字段),從彈出的快捷菜單中選擇檢查約束命令,如圖6-11所示,打開檢查約束對話框。圖6-11選擇“檢查約束”命令,(3)在“檢查約束”對話框中,點(diǎn)擊
9、“添加”按鈕,然后在“(名稱)”文本框中輸入檢查約束的名稱,在“約束表達(dá)式”文本框中輸入約束條件,并在這里輸入“(信用=1且信用=7)”,如圖6-11,圖6-12設(shè)置“檢查約束”條件;(4)單擊“關(guān)閉”按鈕關(guān)閉對話框,并完成檢查約束的創(chuàng)建。注意:如果表中有數(shù)據(jù),并且數(shù)據(jù)類型或范圍與創(chuàng)建的約束沖突,將無法成功創(chuàng)建約束。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,格式更改表名添加約束名檢查(邏輯表達(dá)式),(3)使用Transact-SQL語句創(chuàng)建檢查約束,以及函數(shù)使用約束名指定的名稱向表名指定的表添加檢查約束。描述:“l(fā)ogic _ expression”是用于檢查約束的檢查條件,通常是關(guān)系
10、表達(dá)式或邏輯表達(dá)式。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-5使用Transact-SQL語句為學(xué)院管理系統(tǒng)數(shù)據(jù)庫中的學(xué)生表的生日字段創(chuàng)建檢查約束,約束名稱為CK _生日。檢查條件是生日字段的值必須小于當(dāng)前日期。,(3)使用Transact-SQL語句檢查約束的創(chuàng)建,使用college misgo alter table student add constraint CK _生日檢查(生日=getdate () go,8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-6在CollegeMIS數(shù)據(jù)庫中為Student表的Sexture字段創(chuàng)建默認(rèn)約束。默認(rèn)值為“男性”。
11、(4)默認(rèn)約束是使用對象資源管理器創(chuàng)建的。操作步驟如下:(1)在對象資源管理器窗格中,右鍵單擊需要?jiǎng)?chuàng)建默認(rèn)約束的表(這里是學(xué)生表),從彈出的快捷菜單中選擇修改命令,打開表設(shè)計(jì)器窗口。(2)選擇要?jiǎng)?chuàng)建默認(rèn)約束的字段(此處為“性別”字段),然后在下方“列屬性”選項(xiàng)卡的“默認(rèn)值或綁定”文本框中輸入默認(rèn)值。在本例中,選擇“性別”字段,并在默認(rèn)值中輸入“男性”,如圖6-13所示。當(dāng)用戶輸入一些數(shù)據(jù)時(shí),他希望一些數(shù)據(jù)將被自動(dòng)輸入而沒有特殊情況。例如,學(xué)生的注冊日期應(yīng)該是數(shù)據(jù)輸入的日期;學(xué)生的學(xué)習(xí)時(shí)間是一個(gè)固定值;默認(rèn)情況下,學(xué)生的性別是“男性”,因此有必要在數(shù)據(jù)表上創(chuàng)建默認(rèn)約束。以下示例用于說明如何分別在
12、對象資源管理器和SQL語句中創(chuàng)建默認(rèn)約束。圖6 | 13輸入默認(rèn)值。注意:單引號(hào)不需要輸入。保存表格后,單引號(hào)外會(huì)自動(dòng)生成一對括號(hào)。(3)關(guān)閉表設(shè)計(jì)器窗口。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,格式更改表名,為列名添加約束名默認(rèn)常量表達(dá)式,(4)默認(rèn)約束的創(chuàng)建使用Transact-SQL語句,函數(shù)向表名指定的表中添加由約束名指定名稱的默認(rèn)約束。描述:“列名”是設(shè)置默認(rèn)約束的列名,“常量表達(dá)式”是默認(rèn)值。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-7在學(xué)院管理系統(tǒng)數(shù)據(jù)庫中為“學(xué)生”表的“年級”字段創(chuàng)建默認(rèn)約束,約束名稱為DF_Grade,默認(rèn)值為1。(4)使用Trans
13、act-SQL語句創(chuàng)建默認(rèn)約束,使用college misgo alter table student add constraint df _ grade default 1 for grade go,8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-8為CollegeMIS數(shù)據(jù)庫中的“教師”表創(chuàng)建外鍵約束。約束名稱是FK_教師_部門。約束對應(yīng)的主鍵表為部門(引用的主鍵字段為部門代碼),該表的外鍵字段為部門代碼(教師表)。(5)外鍵約束是使用對象資源管理器創(chuàng)建的,操作步驟如下:(1)在對象資源管理器窗格中,右鍵單擊需要?jiǎng)?chuàng)建外鍵約束的表(這里是教師表),從彈出的快捷菜單中選擇修改,打開表
14、設(shè)計(jì)器窗口。(2)選擇要?jiǎng)?chuàng)建外鍵約束的字段(此處為“部門代碼”字段),單擊工具欄中的“關(guān)系”按鈕,或者右鍵單擊該字段,從彈出的快捷菜單中選擇“關(guān)系”命令,打開“外鍵關(guān)系”對話框,如圖6-14所示。外鍵是一種用于維護(hù)表之間對應(yīng)和唯一關(guān)系的方法。您可以使用對象資源管理器或SQL語句來創(chuàng)建外鍵約束。圖6-14“外鍵關(guān)系”對話框,(3)在“外鍵關(guān)系”對話框中,單擊“添加”按鈕,然后單擊“表和列規(guī)范”按鈕,打開“表和列”對話框。在主鍵表下拉列表中選擇部門表,在外鍵表下拉列表框中選擇教師表,分別選擇主鍵表和外鍵表下的部門編碼字段,如圖6-15所示。圖6-15“表和列”對話框,(4)點(diǎn)擊“確定”按鈕,然后在“外鍵關(guān)系”對話框中進(jìn)行相關(guān)設(shè)置,點(diǎn)擊“關(guān)閉”按鈕。,8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,格式更改表名添加約束名外鍵(列名,n)引用rel _ table (ref _ column,n)刪除級聯(lián)時(shí)|更新級聯(lián)時(shí)無操作|不復(fù)制時(shí)無操作,(5)外鍵約束是使用Transact-SQL語句創(chuàng)建的。函數(shù)為由表名指定為表名的表創(chuàng)建一個(gè)外鍵約束,約束名為約束名。8.1.2使用約束實(shí)現(xiàn)數(shù)據(jù)完整性控制,1建立約束,示例8-9在學(xué)院管理系統(tǒng)數(shù)據(jù)庫中為選擇課程表創(chuàng)建外鍵約束,約束名稱為FK _選擇課程_學(xué)生。與該約束對應(yīng)的主鍵表是學(xué)生(引用的主鍵字段是StUto),該表的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年安徽省銅陵義安區(qū)事業(yè)單位招聘82人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省滁州市來安縣事業(yè)單位招聘101人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省合肥市包河區(qū)政府購買崗招聘209人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宿州蕭縣事業(yè)單位招考(288人)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市鄞州區(qū)事業(yè)單位招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市北侖區(qū)交通運(yùn)輸局編外人員招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年瀝青試驗(yàn)儀器項(xiàng)目資金申請報(bào)告代可行性研究報(bào)告
- 2024貴州黔東南州凱里市供銷集團(tuán)有限責(zé)任公司職業(yè)經(jīng)理人招聘1人筆試參考題庫附帶答案詳解
- 2025年冶金輥項(xiàng)目可行性研究報(bào)告
- 2024福建寧德市交通投資集團(tuán)有限公司研究生專場招聘8人筆試參考題庫附帶答案詳解
- GB/T 30839.2-2015工業(yè)電熱裝置能耗分等第2部分:三相煉鋼電弧爐
- GB/T 23859-2009勞動(dòng)定額測時(shí)方法
- GB/T 1692-2008硫化橡膠絕緣電阻率的測定
- 人教版PEP初中英語中考總復(fù)習(xí):復(fù)習(xí)重點(diǎn)課件
- 數(shù)字化消防管理解決方案
- 二類汽修廠汽車維修管理新規(guī)制度匯編
- 交接班流程綱要綱要圖
- 浙江省衢州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 品德家庭小賬本
- 癥狀性大腦中動(dòng)脈慢性閉塞血管內(nèi)開通治療課件
- 大象版科學(xué)四年級下冊第一單元測試卷(含答案)
評論
0/150
提交評論