




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章關系完整性
什么是關系完整性完整性的類型數據庫約束
返回目錄關系的完整性是對關系的某種約束條件,保證數據庫中數據的正確性與一致性完整性類型實體完整性參照完整性用戶自定義完整性實體完整性與參照完整性是關系必須模型必須滿足的約束,稱為兩個不變性實體完整性定義:若屬性A是關系R的主屬性,則A不能取空值保證實體集中的每個實體唯一且可標識例:學生實體的主屬性是學號,則每個學生實體的學號都不能為空實體完整性是針對基本關系而言的,一個關系只需要定義一個實體完整性參照完整性指關系間的引用,用來反應關系之間的相互聯系學生(學號,姓名,性別,專業號)專業(專業號,專業名)學生實體中的專業號引用專業實體中的專業號‘學生’關系稱為參照關系,或從表,‘專業’關系稱為被參照關系,或主表其中學生實體中的專業號被稱為外碼(外鍵)外碼須引用被參照關系的主碼參照完整性約束若屬性F是基本關系R的外碼,它與基本關系S中的主碼K相對應,則對于R中每個元組在F上的值必須為:或者空值或者等于S中某個元組的主碼值參照完整性約束還體現在對主表的刪除和更新操作上刪除操作:若刪除主表記錄,該記錄主碼被從表的外碼引用,則限制刪除。級聯刪除:若刪除主表記錄,凡引用自該記錄主碼值的外碼對應記錄也一并刪除級聯更新:若更新主表中主碼的值記錄,凡引用自該記錄主碼值的外碼值也一并更新分析:選修(學號,課程號,成績)關系中,學號和課程號兩個外碼的取值課程號課程名學分01數據結構402操作系統303數據庫4學號姓名性別專業號801吳平女10802張良男20803周錦女30804林風男20學號課程號成績8010170802016580503858020690用戶自定義完整性不同的關系型數據庫針對自身環境的不同,所定義的完整性只適用于自身特定的數據庫如某個屬性的值必須取自某一個區間,某個非主碼不能取空值等。SQLSERVER數據庫完整性約束數據完整性包括:實體完整性域完整性參照完整性(引用)用戶自定義完整性(觸發器)確保數據完整性的方法主要有:約束規則觸發器實體完整性實體完整性:保證數據庫表中的每行記錄都是唯一的PRIMARYKEY約束 主鍵UNIQUE約束 唯一IDENTITY屬性 標識列主鍵約束主鍵(PRIMARYKEY)約束一個表中可以有一個或一個以上的列組合,這些組合能惟一標識表中的行,每個組合就是一個候選鍵數據庫管理員從候選鍵中選擇一個作為主鍵在一個表中,不能有兩行包含相同的主鍵值。不能在主鍵內的任何列中輸入NULL值。
11-31定義主鍵主鍵的表級定義方式
create
tableStudent
(
sid
int
primarykey,
s_name
varchar(20),
s_age
smallint,s_sex
char(2))主鍵添加主鍵altertableStudentaddconstraintpk_studprimarykey(sid);聯合主鍵prod_idfactory_idp_namepriceN124F102酸牛奶24.5N124F368酸牛奶24.5N216F102純牛奶19.0N216F247純牛奶19.0?聯合主鍵聯合主鍵聯合主鍵:指在多個列上創建一個主鍵聯合主鍵的創建:create
table
score(
score_id
intnotnull
,
sid
int,
score
float,
datesmalldatetime,
constraintpk_scoreprimarykey(
score_id,
sid))聯合主鍵15-31主鍵的限制一張表只能有一個主鍵,但是可以創建聯合主鍵不能在可以為空的字段上添加主鍵主鍵所在的字段中的記錄不能為空,不能重復當主鍵所在的列正被其他表的外鍵引用時,不能被刪除16-31唯一性約束唯一(UNIQUE)性約束UNIQUE約束在列集內強制執行值的惟一性
如果用戶試圖輸入一個該列中已經存在的值,此行將被拒絕并產生一個錯誤創建唯一性約束在創建表的同時指定唯一性約束:
給表添加唯一約束
createtable
Student(
s_idintnotnull
,s_namevarchar(20)Unique,s_agesmallint,s_sexchar(2))
唯一性altertableStudentaddconstraintuk_stuunique(s_name);注意事項一個表可以定義多個UNIQUE約束,但只能定義一個PRIMARYKEY約束如果該列有允許空值的約束,唯一性(UNIQUE)約束也允許空值(null)FOREIGNKEY約束可以引用UNIQUE約束標識列(自動增長)標識(IDENTITY)屬性標識屬性用于在表中創建一個標識列IDENTITY[(seed,increment)]seed,increment要么同時指定,要么都不指定標識列通常與PRIMARYKEY約束一起用作表的唯一行標識符種子數增長量創建標識列創建一個新表,該表將IDENTITY屬性用于獲得自動增加的標識號標識列在表已創建之后,不能再添加,也不能刪除或修改
createtable
Student(
s_idintidentity(1001,1)
,s_namevarchar(20),s_agesmallint,s_sexchar(2))
自增長標識列標識約束的限制標識列的種子數和增長數要么同時指定,要么都不指定,不指定默認為identity(1,1)一張表只能由一個標識列標識列只能在數據類型為decimal、int、numeric、smallint、bigint或tinyint的列上定義標識列和默認值約束不能同時出現在一個字段上標識約束的限制插入數據時,不能指定自增長列的值
insert
intoStudentvalues(‘liubei’,36,‘M’)指定自增長的同時定義主鍵
createtable
Student(
s_idintidentity(1001,1)primarykey
,s_namevarchar(20),s_agesmallint,s_sexchar(2))
域完整性為列指定數據類型檢查約束check默認值約束非空約束notnullCHECK約束CHECK約束檢查約束通過邏輯判斷限定插入到該列的值為表添加檢查約束
createtable
Student(
s_idintprimarykey
,s_namevarchar(20),s_agesmallint,s_sexchar(2)Check(
s_sex='F'ors_sex='M'))
檢查約束altertableStudentaddconstraintck_studcheck(
s_agelike‘[0-9][0-9]’);默認值約束創建表時指定DEFAULT約束Check(sex='F'orsex='M')
createtable
Student(
s_idintprimarykey
,s_namevarchar(20),s_agesmallintdefault18
,s_sexchar(2)default‘M’)
默認值添加默認值約束給已創建的表添加默認值約束ALTERTABLESTUDENT
ADDCONSTRAINTDF_STUDENT
DEFAULT18FORs_age非空約束NOTNULL約束這種類型的約束用來迫使用戶一定要在表中指定列中輸入一個值。
createtable
Student(
s_idintprimarykey
,s_namevarchar(20)notnull,s_agesmallint,s_sexchar(2))
非空參照完整性外鍵約束用來在兩張表中建立一個引用
當一個表中的一列被增加到另一個表中,鏈接就建立了
外鍵約束的主要功能是阻止用戶鍵入在另一個表中沒有相關行的數據到表中
外鍵在創建表時設置外鍵
createtable
scores(
score_idintprimarykey
,s_idintReferencesstudent(s_id),s_agesmallintdefault18
,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 風電場項目未來發展潛力分析報告
- 2025年有機飾扣項目可行性研究報告
- 課題開題報告:自適應學習情境下調節厭倦情緒的反饋策略研究
- 2025年員工三級安全培訓考試試題完整答案
- 心理咨詢師的實踐反思能力提升試題及答案
- 健康管理師考試知識點回顧試題及答案
- 鐵路安全意識培訓
- 2024年系統架構設計師考試考點分析試題及答案
- 人力資源管理師考試多維度考試介紹試題及答案
- 臨床執業醫師考試新技術探討試題及答案
- 海南省省直轄縣級各縣區鄉鎮行政村村莊村名明細居民村民委員會
- 簡約喜慶元宵節介紹模板 教學課件
- 西藏林芝嘉園小區項目可研(可研發)
- 喪假證明模板
- summary-writing-概要寫作-優質課件
- 按期取得畢業證和學位證承諾書
- T∕CIC 049-2021 水泥窯用固體替代燃料
- 部編版高中語文必修下冊第八單元《單元導讀》教學設計
- 第五章 學校教育的主要活動形式:課堂教學
- 大會—冠脈微循環障礙
- 《辦公自動化》教學教案
評論
0/150
提交評論