版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章數(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)是描述事物的符號記錄。模型(Model)是現(xiàn)實世界的抽象。數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象。數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型:概念數(shù)據(jù)模型邏輯數(shù)據(jù)模型物理數(shù)據(jù)模型數(shù)據(jù)模型概念數(shù)據(jù)模型概念數(shù)據(jù)模型(ConceptualDataModel):簡稱概念模型,是面向數(shù)據(jù)庫用戶實現(xiàn)世界的模型,主要用來描述世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫的設(shè)計人員在設(shè)計的初始階段,擺脫計算機系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)(DatabaseManagementSystem,即DBMS)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在DBMS中實現(xiàn)
數(shù)據(jù)模型概念數(shù)據(jù)模型中的基本概念實體(Entity)屬性(Attribute)域(Domain)實體集(EntitySet)鍵(Key)聯(lián)系(Relationship)一對一聯(lián)系(1:1)一對多聯(lián)系(1:n)多對多聯(lián)系(m:n)數(shù)據(jù)模型邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(LogicalDataModel):簡稱數(shù)據(jù)模型,這是用戶從數(shù)據(jù)庫所看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型(NetworkDataModel)、層次數(shù)據(jù)模型(HierarchicalDataModel)、關(guān)系數(shù)據(jù)模型(RelationalDataModel)等等。主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實現(xiàn)數(shù)據(jù)模型物理數(shù)據(jù)模型物理數(shù)據(jù)模型(PhysicalDataModel):簡稱物理模型,是面向計算機物理表示的模型,描述了數(shù)據(jù)在儲存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實現(xiàn)時都有其對應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨立性與可移植性,大部分物理數(shù)據(jù)模型的實現(xiàn)工作由系統(tǒng)自動完成,而設(shè)計者只設(shè)計索引、聚集等特殊結(jié)構(gòu)。
數(shù)據(jù)模型數(shù)據(jù)模型所描述的內(nèi)容包括三個部分:數(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ù)動態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容完整性概念數(shù)據(jù)完整性是指存儲在數(shù)據(jù)庫中的數(shù)據(jù)正確無誤并且相關(guān)數(shù)據(jù)具有一致性輸入的類型是否正確?
——年齡必須是數(shù)字輸入的格式是否正確?
——身份證號碼必須是18位是否在允許的范圍內(nèi)?
——性別只能是”男”或者”女”是否存在重復(fù)輸入?
——學(xué)員信息輸入了兩次是否符合其他特定要求?完整性概念根據(jù)數(shù)據(jù)完整性機制所作用的數(shù)據(jù)庫對象和范圍不同,數(shù)據(jù)完整性可分為以下四種類型實體完整性域完整性參照完整性(引用完整性)自定義完整性實體完整性實體是指表中的記錄,一個實體就是表中的一條記錄。實體完整性要求在表中不能存在完全相同的記錄,而且每條記錄都要具有一個非空且不重復(fù)的主鍵值。
完整性概念例如:“學(xué)生”表中的學(xué)號必須唯一,并且不能為空,這樣就可以保證學(xué)生記錄的唯一性實體完整性男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號女王樹彤0802001×域完整性域完整性也稱列完整性域完整性要求向表中指定列輸入的數(shù)據(jù)必須具有正確的數(shù)據(jù)類型、格式以及有效的數(shù)據(jù)范圍完整性概念例如:在“選課表中”,對學(xué)生成績列輸入數(shù)據(jù)時,不能出現(xiàn)字符,也不能輸入小于0或大于100的數(shù)值域完整性男王剛08101000000×男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號完整性概念參照完整性參照完整性又稱引用完整性參照完整性是指作用于有關(guān)聯(lián)的兩個或兩個以上的表,使表中的鍵值在相關(guān)表中保持一致例如:選課表中的“學(xué)號”列不能輸入學(xué)生表中沒有的學(xué)號男劍南春0802003女王小云0802002女王樹彤0802001男易建聯(lián)0801002男姚明0801001….性別 姓名學(xué)號參照完整性980802068數(shù)學(xué)×科目學(xué)號分?jǐn)?shù)…數(shù)學(xué)080100188數(shù)學(xué)080100274語文080100167語文080200181數(shù)學(xué)080200398完整性概念自定義完整性自定義完整性是應(yīng)用領(lǐng)域需要遵守的約束條件,其允許用戶定義不屬于其他任何完整性分類的特定業(yè)務(wù)規(guī)則。所有完整性類型都支持用戶定義完整性自定義完整性??瞥绦騿TMS0016??瞥绦騿TMS0014??瞥绦騿TMS0013本科項目主管MS0012碩士技術(shù)總監(jiān)MS0011….學(xué)歷職務(wù)員工編號編號姓名學(xué)歷….00192觀音碩士00288唐三藏本科12333孫悟空???3000紅孩兒初中×檢查學(xué)歷完整性概念域完整性實體完整性引用完整性自定義完整性約束的類型概念約束是SQLSERVER提供的自動強制數(shù)據(jù)完整性的一種方法,它是通過定義列的取值規(guī)則來維護(hù)數(shù)據(jù)的完整性約束類型PRIMARYKEY(主鍵)約束UNIQUE(唯一)約束FOREIGNKEY(外鍵)約束NOTNULL(非空)約束CHECK(檢查)約束DEFAULT(默認(rèn))約束PRIMARYKEY(主鍵約束)功能:主鍵約束用來強制數(shù)據(jù)的實體完整性,它是在表中定義一個主鍵來唯一標(biāo)識表中的每行記錄。特點:①每個表中只能有一個主鍵
②主鍵值必須唯一并且不能為空例如:在“學(xué)生”表中可以將學(xué)號設(shè)置為主鍵,用來保證表中的學(xué)生記錄具有唯一性
約束的類型UNIQUE(唯一約束)功能:用來強制數(shù)據(jù)的實體完整性,限制表的非主鍵列中不允許輸入重復(fù)值特點:①一個表中可以定義多個唯一約束
②空值可以出現(xiàn)在某列中一次例如:在“科目表”中可以將科目代碼設(shè)置為主鍵,用來保證記錄的唯一性,如果不允許同名課程存在,應(yīng)該為科目名稱定義唯一約束,保證非主鍵列中不出現(xiàn)重復(fù)值
約束的類型NOTNULL(非空約束)功能:非空約束用來強制數(shù)據(jù)的域完整性,它用于設(shè)定某列值不能為空特點:如果指定某列不能為空,則在進(jìn)行插入記錄時,此列必須插入數(shù)據(jù)例如:對于“選課”表,存在一個學(xué)生,就必須存在其所選的課程,應(yīng)該設(shè)置課程號不能為空
約束的類型CHECK(檢查約束)功能:檢查約束用來強制數(shù)據(jù)的域完整性,它使用邏輯表達(dá)式來限制表中的列可以接受哪些數(shù)據(jù)值例如:對于學(xué)生成績的取值應(yīng)該限制在0-100之間,就應(yīng)該為成績列創(chuàng)建檢查約束,使其取值在正常范圍內(nèi)約束的類型DEFAULT(默認(rèn)約束)功能:默認(rèn)約束用來強制數(shù)據(jù)的域完整性,它為表中某列建立一個默認(rèn)值,當(dāng)用戶插入記錄時,如果沒有為該列提供輸入值,則系統(tǒng)會自動將默認(rèn)值賦給該列特點:①默認(rèn)值可以是常量、內(nèi)置函數(shù)或表達(dá)式
②使用默認(rèn)約束可以提高輸入記錄的速度例如:在“學(xué)生”表中可以將性別字段設(shè)置其默認(rèn)值為‘男’,當(dāng)輸入記錄時,對于男生就可以不輸入性別數(shù)據(jù),而由默認(rèn)值提供,這樣可以提高輸入效率
約束的類型FROEIGNKEY(外鍵約束)定義:外鍵是指一個表中的一列或列組合,它不是該表的主鍵,卻是另一個表的主鍵功能:通過外鍵約束可以為相關(guān)聯(lián)的兩個表建立聯(lián)系,實現(xiàn)數(shù)據(jù)的參照完整性。例如:如果要求選課表中“學(xué)號”列的取值必須是學(xué)生表中“學(xué)號”列的列值之一,就要在選課表的“學(xué)號”上創(chuàng)建外鍵約束
約束的類型一、創(chuàng)建主鍵1、使用企業(yè)管理器打開表設(shè)計器-右擊要設(shè)為主鍵的字段-設(shè)置主鍵
另:選擇字段-單擊工具欄中的“鑰匙”工具按鈕
約束的創(chuàng)建及管理約束的創(chuàng)建及管理2、使用SQL語句
USE數(shù)據(jù)庫名
GOALTERTABLE表名
ADDCONSTRAINT約束名PRIMARYKEY(列名)GO例:為科目表中的科目代號建立主鍵約束UsestudentGoAltertablesubjectinfoAddConstraintpk_subjectidprimaryKey(subjectID)Go二、創(chuàng)建唯一約束1、使用企業(yè)管理器(1)打開表設(shè)計器-右擊某個字段-屬性-索引/鍵(2)新建-輸入索引名(約束名)-選擇列名-選擇創(chuàng)建UNIQUE約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫名goaltertable表名addconstraint約束名unique(列名)go例:為科目表中的“科目名稱”字段建立唯一約束usestudentgoaltertablesubjectInfoaddconstraintuk_subjectNameunique(subjectName)go約束的創(chuàng)建及管理約束的創(chuàng)建及管理三、創(chuàng)建檢查約束1、使用企業(yè)管理器(1)打開表設(shè)計器-右擊某個字段-屬性-CHECK約束(2)新建-輸入約束表達(dá)式-輸入相應(yīng)約束名約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫名goaltertable表名addconstraint約束名check(約束表達(dá)式)go例:使用SQL語句為選課表中的成績字段創(chuàng)建檢查約束,保證成績在0-100之間usestudentgoaltertableselectInfoaddconstraintck_scorecheck(score>=0andscore<=100)score為表中要創(chuàng)建檢查約束的字段約束的創(chuàng)建及管理四、創(chuàng)建默認(rèn)約束1、使用企業(yè)管理器打開表設(shè)計器-選擇字段-輸入默認(rèn)值約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫名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è)計器-右擊某個字段-屬性-關(guān)系(2)新建-輸入關(guān)系名-選擇主鍵表和外鍵表及其對應(yīng)的主鍵和外鍵(同名列)創(chuàng)建外鍵約束時,主鍵表必須已經(jīng)創(chuàng)建了主鍵約束或唯一約束約束的創(chuàng)建及管理2、使用SQL語句use數(shù)據(jù)庫名goaltertable外鍵表名addconstraint約束名foreignkey(外鍵)references主鍵表名(主鍵)go例:在選課表上為“科目代碼”創(chuàng)建外鍵約束usestudentgoaltertableselectInfoaddconstraintfk_subjectidforeignkey(subjectID)referencessubjectInfo(subjectID)go約束的創(chuàng)建及管理管理約束一、查看約束的定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024建筑工程地勘合同正規(guī)范本
- 專用藥品配送代理合同2024年范本版B版
- 2025高考生物備考說課稿:胚胎工程
- 福建省南平市武夷山第三中學(xué)2022年高三數(shù)學(xué)理上學(xué)期期末試題含解析
- 福建省南平市吳屯中學(xué)2020-2021學(xué)年高三數(shù)學(xué)文期末試題含解析
- 福建省南平市松溪縣職業(yè)中學(xué)高二化學(xué)聯(lián)考試卷含解析
- 2024版飛機購銷合同
- 專利與商標(biāo)權(quán)歸屬合同范本2024一
- 母愛市場之策略洞察
- 外籍人才中介合同(2篇)
- 2025年中國華能集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 光伏安裝施工合同范本
- 北京郵電大學(xué)《數(shù)學(xué)物理方法概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年無錫市數(shù)學(xué)三年級第一學(xué)期期末質(zhì)量檢測試題含解析
- 人教版(2024)數(shù)學(xué)七年級上冊期末測試卷(含答案)
- 2024年學(xué)校意識形態(tài)工作總結(jié)(3篇)
- 《人工智能基礎(chǔ)》課件-AI的前世今生:她從哪里來
- ISO28000:2022供應(yīng)鏈安全管理體系
- 鋁合金型材切割作業(yè)指導(dǎo)書
- Windows錯誤代碼解釋大全
- 海南作協(xié)入會申請表
評論
0/150
提交評論