




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章數據的完整性上節回顧SQLSERVER表的概述在企業管理器中創建及管理表使用T-SQL語句創建及管理表預習檢查數據模型的概念數據完整性含義及分類本章目標數據模型完整性的概念約束的類型約束的創建及管理數據模型概念:數據(data)是描述事物的符號記錄。模型(Model)是現實世界的抽象。數據模型(DataModel)是數據特征的抽象。數據模型按不同的應用層次分成三種類型:概念數據模型邏輯數據模型物理數據模型數據模型概念數據模型概念數據模型(ConceptualDataModel):簡稱概念模型,是面向數據庫用戶實現世界的模型,主要用來描述世界的概念化結構,它使數據庫的設計人員在設計的初始階段,擺脫計算機系統及DBMS的具體技術問題,集中精力分析數據以及數據之間的聯系等,與具體的數據管理系統(DatabaseManagementSystem,即DBMS)無關。概念數據模型必須換成邏輯數據模型,才能在DBMS中實現
數據模型概念數據模型中的基本概念實體(Entity)屬性(Attribute)域(Domain)實體集(EntitySet)鍵(Key)聯系(Relationship)一對一聯系(1:1)一對多聯系(1:n)多對多聯系(m:n)數據模型邏輯數據模型邏輯數據模型(LogicalDataModel):簡稱數據模型,這是用戶從數據庫所看到的模型,是具體的DBMS所支持的數據模型,如網狀數據模型(NetworkDataModel)、層次數據模型(HierarchicalDataModel)、關系數據模型(RelationalDataModel)等等。主要用于數據庫管理系統(DBMS)的實現數據模型物理數據模型物理數據模型(PhysicalDataModel):簡稱物理模型,是面向計算機物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS有關,而且還與操作系統和硬件有關。每一種邏輯數據模型在實現時都有其對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,而設計者只設計索引、聚集等特殊結構。
數據模型數據模型所描述的內容包括三個部分:數據結構數據操作數據約束數據模型數據結構數據結構:數據模型中的數據結構主要描述數據的類型、內容、性質以及數據間的聯系等。數據結構是數據模型的基礎,數據操作和約束都建立在數據結構上數據操作數據模型中數據操作主要描述在相應的數據結構上的操作類型和操作方式數據約束數據模型中的數據約束主要描述數據結構內數據間的語法、詞義聯系、他們之間的制約和依存關系,以及數據動態變化的規則,以保證數據的正確、有效和相容完整性概念數據完整性是指存儲在數據庫中的數據正確無誤并且相關數據具有一致性輸入的類型是否正確?
——年齡必須是數字輸入的格式是否正確?
——身份證號碼必須是18位是否在允許的范圍內?
——性別只能是”男”或者”女”是否存在重復輸入?
——學員信息輸入了兩次是否符合其他特定要求?完整性概念根據數據完整性機制所作用的數據庫對象和范圍不同,數據完整性可分為以下四種類型實體完整性域完整性參照完整性(引用完整性)自定義完整性實體完整性實體是指表中的記錄,一個實體就是表中的一條記錄。實體完整性要求在表中不能存在完全相同的記錄,而且每條記錄都要具有一個非空且不重復的主鍵值。
完整性概念例如:“學生”表中的學號必須唯一,并且不能為空,這樣就可以保證學生記錄的唯一性實體完整性男劍南春0802003女王小云0802002女王樹彤0802001男易建聯0801002男姚明0801001….性別 姓名學號女王樹彤0802001×域完整性域完整性也稱列完整性域完整性要求向表中指定列輸入的數據必須具有正確的數據類型、格式以及有效的數據范圍完整性概念例如:在“選課表中”,對學生成績列輸入數據時,不能出現字符,也不能輸入小于0或大于100的數值域完整性男王剛08101000000×男劍南春0802003女王小云0802002女王樹彤0802001男易建聯0801002男姚明0801001….性別 姓名學號完整性概念參照完整性參照完整性又稱引用完整性參照完整性是指作用于有關聯的兩個或兩個以上的表,使表中的鍵值在相關表中保持一致例如:選課表中的“學號”列不能輸入學生表中沒有的學號男劍南春0802003女王小云0802002女王樹彤0802001男易建聯0801002男姚明0801001….性別 姓名學號參照完整性980802068數學×科目學號分數…數學080100188數學080100274語文080100167語文080200181數學080200398完整性概念自定義完整性自定義完整性是應用領域需要遵守的約束條件,其允許用戶定義不屬于其他任何完整性分類的特定業務規則。所有完整性類型都支持用戶定義完整性自定義完整性專科程序員MS0016專科程序員MS0014專科程序員MS0013本科項目主管MS0012碩士技術總監MS0011….學歷職務員工編號編號姓名學歷….00192觀音碩士00288唐三藏本科12333孫悟空專科93000紅孩兒初中×檢查學歷完整性概念域完整性實體完整性引用完整性自定義完整性約束的類型概念約束是SQLSERVER提供的自動強制數據完整性的一種方法,它是通過定義列的取值規則來維護數據的完整性約束類型PRIMARYKEY(主鍵)約束UNIQUE(唯一)約束FOREIGNKEY(外鍵)約束NOTNULL(非空)約束CHECK(檢查)約束DEFAULT(默認)約束PRIMARYKEY(主鍵約束)功能:主鍵約束用來強制數據的實體完整性,它是在表中定義一個主鍵來唯一標識表中的每行記錄。特點:①每個表中只能有一個主鍵
②主鍵值必須唯一并且不能為空例如:在“學生”表中可以將學號設置為主鍵,用來保證表中的學生記錄具有唯一性
約束的類型UNIQUE(唯一約束)功能:用來強制數據的實體完整性,限制表的非主鍵列中不允許輸入重復值特點:①一個表中可以定義多個唯一約束
②空值可以出現在某列中一次例如:在“科目表”中可以將科目代碼設置為主鍵,用來保證記錄的唯一性,如果不允許同名課程存在,應該為科目名稱定義唯一約束,保證非主鍵列中不出現重復值
約束的類型NOTNULL(非空約束)功能:非空約束用來強制數據的域完整性,它用于設定某列值不能為空特點:如果指定某列不能為空,則在進行插入記錄時,此列必須插入數據例如:對于“選課”表,存在一個學生,就必須存在其所選的課程,應該設置課程號不能為空
約束的類型CHECK(檢查約束)功能:檢查約束用來強制數據的域完整性,它使用邏輯表達式來限制表中的列可以接受哪些數據值例如:對于學生成績的取值應該限制在0-100之間,就應該為成績列創建檢查約束,使其取值在正常范圍內約束的類型DEFAULT(默認約束)功能:默認約束用來強制數據的域完整性,它為表中某列建立一個默認值,當用戶插入記錄時,如果沒有為該列提供輸入值,則系統會自動將默認值賦給該列特點:①默認值可以是常量、內置函數或表達式
②使用默認約束可以提高輸入記錄的速度例如:在“學生”表中可以將性別字段設置其默認值為‘男’,當輸入記錄時,對于男生就可以不輸入性別數據,而由默認值提供,這樣可以提高輸入效率
約束的類型FROEIGNKEY(外鍵約束)定義:外鍵是指一個表中的一列或列組合,它不是該表的主鍵,卻是另一個表的主鍵功能:通過外鍵約束可以為相關聯的兩個表建立聯系,實現數據的參照完整性。例如:如果要求選課表中“學號”列的取值必須是學生表中“學號”列的列值之一,就要在選課表的“學號”上創建外鍵約束
約束的類型一、創建主鍵1、使用企業管理器打開表設計器-右擊要設為主鍵的字段-設置主鍵
另:選擇字段-單擊工具欄中的“鑰匙”工具按鈕
約束的創建及管理約束的創建及管理2、使用SQL語句
USE數據庫名
GOALTERTABLE表名
ADDCONSTRAINT約束名PRIMARYKEY(列名)GO例:為科目表中的科目代號建立主鍵約束UsestudentGoAltertablesubjectinfoAddConstraintpk_subjectidprimaryKey(subjectID)Go二、創建唯一約束1、使用企業管理器(1)打開表設計器-右擊某個字段-屬性-索引/鍵(2)新建-輸入索引名(約束名)-選擇列名-選擇創建UNIQUE約束的創建及管理2、使用SQL語句use數據庫名goaltertable表名addconstraint約束名unique(列名)go例:為科目表中的“科目名稱”字段建立唯一約束usestudentgoaltertablesubjectInfoaddconstraintuk_subjectNameunique(subjectName)go約束的創建及管理約束的創建及管理三、創建檢查約束1、使用企業管理器(1)打開表設計器-右擊某個字段-屬性-CHECK約束(2)新建-輸入約束表達式-輸入相應約束名約束的創建及管理2、使用SQL語句use數據庫名goaltertable表名addconstraint約束名check(約束表達式)go例:使用SQL語句為選課表中的成績字段創建檢查約束,保證成績在0-100之間usestudentgoaltertableselectInfoaddconstraintck_scorecheck(score>=0andscore<=100)score為表中要創建檢查約束的字段約束的創建及管理四、創建默認約束1、使用企業管理器打開表設計器-選擇字段-輸入默認值約束的創建及管理2、使用SQL語句use數據庫名goaltertable表名addconstraint約束名default默認值for列名go例:為學生表“性別”字段創建默認約束,默認值為’男‘usestudentgoaltertablestudentInfoaddconstraintdk_stusexdefault'男'forstuSexgo約束的創建及管理五、創建外鍵約束1、使用企業管理器(1)打開外鍵表設計器-右擊某個字段-屬性-關系(2)新建-輸入關系名-選擇主鍵表和外鍵表及其對應的主鍵和外鍵(同名列)創建外鍵約束時,主鍵表必須已經創建了主鍵約束或唯一約束約束的創建及管理2、使用SQL語句use數據庫名goaltertable外鍵表名addconstraint約束名foreignkey(外鍵)references主鍵表名(主鍵)go例:在選課表上為“科目代碼”創建外鍵約束usestudentgoaltertableselectInfoaddconstraintfk_subjectidforeignkey(subjectID)referencessubjectInfo(subjectID)go約束的創建及管理管理約束一、查看約束的定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體育休閑廣場項目智能化系統設計評估報告
- 藥品營銷培訓管理制度
- 藥品陰涼冷藏管理制度
- 藥店醫保刷卡管理制度
- 藥店流動顧客管理制度
- 菊花技術文件管理制度
- 設備業務薪酬管理制度
- 設備加油規范管理制度
- 設備崗位合同管理制度
- 設備機房標準管理制度
- 2025至2030中國物理氣相沉積(PVD)設備行業行情監測與發展動向追蹤報告
- 電力咨詢費合同協議
- 2025-2030海洋環境監測行業市場深度調研及發展前景與投資研究報告
- 2025年中學生離隊入團活動實施方案
- 2025綠色建筑檢驗機構能力驗證要求
- 玻璃基板制備技術考核試卷
- 南極磷蝦油與紅曲、輔酶Q10聯用降低血脂效果研究
- 2025年上海市安全員C3證(專職安全員-綜合類)考試題庫
- 錢大媽加盟合同協議
- 基本公共衛生服務2025版培訓
- 《建筑工程識圖》課件-梁平法施工圖識讀一
評論
0/150
提交評論