TP4-實(shí)現(xiàn)SQL SERVER 2000數(shù)據(jù)完整性_第1頁
TP4-實(shí)現(xiàn)SQL SERVER 2000數(shù)據(jù)完整性_第2頁
TP4-實(shí)現(xiàn)SQL SERVER 2000數(shù)據(jù)完整性_第3頁
TP4-實(shí)現(xiàn)SQL SERVER 2000數(shù)據(jù)完整性_第4頁
TP4-實(shí)現(xiàn)SQL SERVER 2000數(shù)據(jù)完整性_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章數(shù)據(jù)的完整性上節(jié)回顧SQLSERVER表的概述在企業(yè)管理器中創(chuàng)建及管理表使用T-SQL語句創(chuàng)建及管理表預(yù)習(xí)檢查數(shù)據(jù)模型的概念數(shù)據(jù)完整性含義及分類本章目標(biāo)數(shù)據(jù)模型完整性的概念約束的類型約束的創(chuàng)建及管理數(shù)據(jù)模型概念:數(shù)據(jù)(data)是描述事物的符號(hào)記錄。模型(Model)是現(xiàn)實(shí)世界的抽象。數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象。數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型:概念數(shù)據(jù)模型邏輯數(shù)據(jù)模型物理數(shù)據(jù)模型數(shù)據(jù)模型概念數(shù)據(jù)模型概念數(shù)據(jù)模型(ConceptualDataModel):簡(jiǎn)稱概念模型,是面向數(shù)據(jù)庫(kù)用戶實(shí)現(xiàn)世界的模型,主要用來描述世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫(kù)的設(shè)計(jì)人員在設(shè)計(jì)的初始階段,擺脫計(jì)算機(jī)系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)(DatabaseManagementSystem,即DBMS)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在DBMS中實(shí)現(xiàn)

數(shù)據(jù)模型概念數(shù)據(jù)模型中的基本概念實(shí)體(Entity)屬性(Attribute)域(Domain)實(shí)體集(EntitySet)鍵(Key)聯(lián)系(Relationship)一對(duì)一聯(lián)系(1:1)一對(duì)多聯(lián)系(1:n)多對(duì)多聯(lián)系(m:n)數(shù)據(jù)模型邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(LogicalDataModel):簡(jiǎn)稱數(shù)據(jù)模型,這是用戶從數(shù)據(jù)庫(kù)所看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型(NetworkDataModel)、層次數(shù)據(jù)模型(HierarchicalDataModel)、關(guān)系數(shù)據(jù)模型(RelationalDataModel)等等。主要用于數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的實(shí)現(xiàn)數(shù)據(jù)模型物理數(shù)據(jù)模型物理數(shù)據(jù)模型(PhysicalDataModel):簡(jiǎn)稱物理模型,是面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實(shí)現(xiàn)時(shí)都有其對(duì)應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨(dú)立性與可移植性,大部分物理數(shù)據(jù)模型的實(shí)現(xiàn)工作由系統(tǒng)自動(dòng)完成,而設(shè)計(jì)者只設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。

數(shù)據(jù)模型數(shù)據(jù)模型所描述的內(nèi)容包括三個(gè)部分:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)約束數(shù)據(jù)模型數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),數(shù)據(jù)操作和約束都建立在數(shù)據(jù)結(jié)構(gòu)上數(shù)據(jù)操作數(shù)據(jù)模型中數(shù)據(jù)操作主要描述在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)上的操作類型和操作方式數(shù)據(jù)約束數(shù)據(jù)模型中的數(shù)據(jù)約束主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、詞義聯(lián)系、他們之間的制約和依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容完整性概念數(shù)據(jù)完整性是指存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)正確無誤并且相關(guān)數(shù)據(jù)具有一致性輸入的類型是否正確?

——年齡必須是數(shù)字輸入的格式是否正確?

——身份證號(hào)碼必須是18位是否在允許的范圍內(nèi)?

——性別只能是”男”或者”女”是否存在重復(fù)輸入?

——學(xué)員信息輸入了兩次是否符合其他特定要求?完整性概念根據(jù)數(shù)據(jù)完整性機(jī)制所作用的數(shù)據(jù)庫(kù)對(duì)象和范圍不同,數(shù)據(jù)完整性可分為以下四種類型實(shí)體完整性域完整性參照完整性(引用完整性)自定義完整性實(shí)體完整性實(shí)體是指表中的記錄,一個(gè)實(shí)體就是表中的一條記錄。實(shí)體完整性要求在表中不能存在完全相同的記錄,而且每條記錄都要具有一個(gè)非空且不重復(fù)的主鍵值。

完整性概念例如:“學(xué)生”表中的學(xué)號(hào)必須唯一,并且不能為空,這樣就可以保證學(xué)生記錄的唯一性實(shí)體完整性男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號(hào)女王樹彤0802001×域完整性域完整性也稱列完整性域完整性要求向表中指定列輸入的數(shù)據(jù)必須具有正確的數(shù)據(jù)類型、格式以及有效的數(shù)據(jù)范圍完整性概念例如:在“選課表中”,對(duì)學(xué)生成績(jī)列輸入數(shù)據(jù)時(shí),不能出現(xiàn)字符,也不能輸入小于0或大于100的數(shù)值域完整性男王剛08101000000×男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號(hào)完整性概念參照完整性參照完整性又稱引用完整性參照完整性是指作用于有關(guān)聯(lián)的兩個(gè)或兩個(gè)以上的表,使表中的鍵值在相關(guān)表中保持一致例如:選課表中的“學(xué)號(hào)”列不能輸入學(xué)生表中沒有的學(xué)號(hào)男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號(hào)參照完整性980802068數(shù)學(xué)×科目學(xué)號(hào)分?jǐn)?shù)…數(shù)學(xué)080100188數(shù)學(xué)080100274語文080100167語文080200181數(shù)學(xué)080200398完整性概念自定義完整性自定義完整性是應(yīng)用領(lǐng)域需要遵守的約束條件,其允許用戶定義不屬于其他任何完整性分類的特定業(yè)務(wù)規(guī)則。所有完整性類型都支持用戶定義完整性自定義完整性??瞥绦騿TMS0016??瞥绦騿TMS0014??瞥绦騿TMS0013本科項(xiàng)目主管MS0012碩士技術(shù)總監(jiān)MS0011….學(xué)歷職務(wù)員工編號(hào)編號(hào)姓名學(xué)歷….00192觀音碩士00288唐三藏本科12333孫悟空專科93000紅孩兒初中×檢查學(xué)歷完整性概念域完整性實(shí)體完整性引用完整性自定義完整性約束的類型概念約束是SQLSERVER提供的自動(dòng)強(qiáng)制數(shù)據(jù)完整性的一種方法,它是通過定義列的取值規(guī)則來維護(hù)數(shù)據(jù)的完整性約束類型PRIMARYKEY(主鍵)約束UNIQUE(唯一)約束FOREIGNKEY(外鍵)約束NOTNULL(非空)約束CHECK(檢查)約束DEFAULT(默認(rèn))約束PRIMARYKEY(主鍵約束)功能:主鍵約束用來強(qiáng)制數(shù)據(jù)的實(shí)體完整性,它是在表中定義一個(gè)主鍵來唯一標(biāo)識(shí)表中的每行記錄。特點(diǎn):①每個(gè)表中只能有一個(gè)主鍵

②主鍵值必須唯一并且不能為空例如:在“學(xué)生”表中可以將學(xué)號(hào)設(shè)置為主鍵,用來保證表中的學(xué)生記錄具有唯一性

約束的類型UNIQUE(唯一約束)功能:用來強(qiáng)制數(shù)據(jù)的實(shí)體完整性,限制表的非主鍵列中不允許輸入重復(fù)值特點(diǎn):①一個(gè)表中可以定義多個(gè)唯一約束

②空值可以出現(xiàn)在某列中一次例如:在“科目表”中可以將科目代碼設(shè)置為主鍵,用來保證記錄的唯一性,如果不允許同名課程存在,應(yīng)該為科目名稱定義唯一約束,保證非主鍵列中不出現(xiàn)重復(fù)值

約束的類型NOTNULL(非空約束)功能:非空約束用來強(qiáng)制數(shù)據(jù)的域完整性,它用于設(shè)定某列值不能為空特點(diǎn):如果指定某列不能為空,則在進(jìn)行插入記錄時(shí),此列必須插入數(shù)據(jù)例如:對(duì)于“選課”表,存在一個(gè)學(xué)生,就必須存在其所選的課程,應(yīng)該設(shè)置課程號(hào)不能為空

約束的類型CHECK(檢查約束)功能:檢查約束用來強(qiáng)制數(shù)據(jù)的域完整性,它使用邏輯表達(dá)式來限制表中的列可以接受哪些數(shù)據(jù)值例如:對(duì)于學(xué)生成績(jī)的取值應(yīng)該限制在0-100之間,就應(yīng)該為成績(jī)列創(chuàng)建檢查約束,使其取值在正常范圍內(nèi)約束的類型DEFAULT(默認(rèn)約束)功能:默認(rèn)約束用來強(qiáng)制數(shù)據(jù)的域完整性,它為表中某列建立一個(gè)默認(rèn)值,當(dāng)用戶插入記錄時(shí),如果沒有為該列提供輸入值,則系統(tǒng)會(huì)自動(dòng)將默認(rèn)值賦給該列特點(diǎn):①默認(rèn)值可以是常量、內(nèi)置函數(shù)或表達(dá)式

②使用默認(rèn)約束可以提高輸入記錄的速度例如:在“學(xué)生”表中可以將性別字段設(shè)置其默認(rèn)值為‘男’,當(dāng)輸入記錄時(shí),對(duì)于男生就可以不輸入性別數(shù)據(jù),而由默認(rèn)值提供,這樣可以提高輸入效率

約束的類型FROEIGNKEY(外鍵約束)定義:外鍵是指一個(gè)表中的一列或列組合,它不是該表的主鍵,卻是另一個(gè)表的主鍵功能:通過外鍵約束可以為相關(guān)聯(lián)的兩個(gè)表建立聯(lián)系,實(shí)現(xiàn)數(shù)據(jù)的參照完整性。例如:如果要求選課表中“學(xué)號(hào)”列的取值必須是學(xué)生表中“學(xué)號(hào)”列的列值之一,就要在選課表的“學(xué)號(hào)”上創(chuàng)建外鍵約束

約束的類型一、創(chuàng)建主鍵1、使用企業(yè)管理器打開表設(shè)計(jì)器-右擊要設(shè)為主鍵的字段-設(shè)置主鍵

另:選擇字段-單擊工具欄中的“鑰匙”工具按鈕

約束的創(chuàng)建及管理約束的創(chuàng)建及管理2、使用SQL語句

USE數(shù)據(jù)庫(kù)名

GOALTERTABLE表名

ADDCONSTRAINT約束名PRIMARYKEY(列名)GO例:為科目表中的科目代號(hào)建立主鍵約束UsestudentGoAltertablesubjectinfoAddConstraintpk_subjectidprimaryKey(subjectID)Go二、創(chuàng)建唯一約束1、使用企業(yè)管理器(1)打開表設(shè)計(jì)器-右擊某個(gè)字段-屬性-索引/鍵(2)新建-輸入索引名(約束名)-選擇列名-選擇創(chuàng)建UNIQUE約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫(kù)名goaltertable表名addconstraint約束名unique(列名)go例:為科目表中的“科目名稱”字段建立唯一約束usestudentgoaltertablesubjectInfoaddconstraintuk_subjectNameunique(subjectName)go約束的創(chuàng)建及管理約束的創(chuàng)建及管理三、創(chuàng)建檢查約束1、使用企業(yè)管理器(1)打開表設(shè)計(jì)器-右擊某個(gè)字段-屬性-CHECK約束(2)新建-輸入約束表達(dá)式-輸入相應(yīng)約束名約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫(kù)名goaltertable表名addconstraint約束名check(約束表達(dá)式)go例:使用SQL語句為選課表中的成績(jī)字段創(chuàng)建檢查約束,保證成績(jī)?cè)?-100之間usestudentgoaltertableselectInfoaddconstraintck_scorecheck(score>=0andscore<=100)score為表中要?jiǎng)?chuàng)建檢查約束的字段約束的創(chuàng)建及管理四、創(chuàng)建默認(rèn)約束1、使用企業(yè)管理器打開表設(shè)計(jì)器-選擇字段-輸入默認(rèn)值約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫(kù)名goaltertable表名addconstraint約束名default默認(rèn)值for列名go例:為學(xué)生表“性別”字段創(chuàng)建默認(rèn)約束,默認(rèn)值為’男‘usestudentgoaltertablestudentInfoaddconstraintdk_stusexdefault'男'forstuSexgo約束的創(chuàng)建及管理五、創(chuàng)建外鍵約束1、使用企業(yè)管理器(1)打開外鍵表設(shè)計(jì)器-右擊某個(gè)字段-屬性-關(guān)系(2)新建-輸入關(guān)系名-選擇主鍵表和外鍵表及其對(duì)應(yīng)的主鍵和外鍵(同名列)創(chuàng)建外鍵約束時(shí),主鍵表必須已經(jīng)創(chuàng)建了主鍵約束或唯一約束約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫(kù)名goaltertable外鍵表名addconstraint約束名foreignkey(外鍵)references主鍵表名(主鍵)go例:在選課表上為“科目代碼”創(chuàng)建外鍵約束usestudentgoaltertableselectInfoaddconstraintfk_subjectidforeignkey(subjectID)referencessubjectInfo(subjectID)go約束的創(chuàng)建及管理管理約束一、查看約束的定義

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論