999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談數據庫中的完整性約束

2013-04-29 16:05:51王希鋒
科海故事博覽·科教論壇 2013年9期

王希鋒

摘要:數據完整性是指數據的正確性、完備性和一致性,是衡量數據庫質量好壞的標準。本文從以下三個方面分析了數據的完整性。即實體完整性、參照完整性和用戶自定義完整性。

關鍵詞:實體完整性 用戶定義完整性 參照完整性

數據庫完整性(Database Integrity)是指數據庫中數據的正確性和相容性。數據庫完整性由各種各樣的完整性約束來保證,因此可以說數據庫完整性設計就是數據庫完整性約束的設計。數據庫完整性約束可以通過DBMS或應用程序來實現,基于DBMS的完整性約束作為模式的一部分存入數據庫中。通過DBMS實現的數據庫完整性按照數據庫設計步驟進行設計,而由應用軟件實現的數據庫完整性則納入應用軟件設計。

約束是用來確保數據的準確性和一致性。數據的完整性就是對數據的準確性和一致性的一種保證。數據完整性(Data Integrity)是指數據的精確(Accuracy)和可靠性(Reliability)。它是應防止數據庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數據完整性分為三類:實體完整性(Entity Integrity)、參照完整性(Referential Integrity)、用戶定義的完整性(User-definedIntegrity)。關系的完整性提供了一種手段,用于保證授權用戶對數據庫修改時不會破壞數據的一直性。實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統自動支持。

關系模型的完整性規則是對關系的某種約束條件。關系模型中三類完整性約束:實體完整性、參照完整性、用戶定義的完整性。

實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統自動支持。

實體完整性規則(Entity Integrity):若屬性A是基本關系R的主屬性,則屬性A不能取空值。

關系模型必須遵守實體完整性規則的原因:(1)實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集或多對多聯系。(2)現實世界中的實體和實體間的聯系都是可區分的,即它們具有某種唯一性標識。(3)相應地,關系模型中以候選碼作為唯一性標識。(4)候選碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整性。實體完整性規則規定基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。

例:選修(學號,課程號,成績)

“學號、課程號”為主碼,

則學號和課程號兩個屬性都不能取空值

參照完整性:在關系模型中實體及實體間的聯系都是用關系來描述的,因此可能存在著關系與關系間的引用。

外碼:設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼(Foreign Key),基本關系R稱為參照關系(Referencing Relation),基本關系S稱為被參照關系(Referenced Relation)或目標關系(Target Relation)。

說明:關系R和S不一定是不同的關系。目標關系S的主碼Ks和參照關系的外碼F必須定義在同一個(或一組)域上。外碼并不一定要與相應的主碼同名。當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別。

參照完整性規則就是定義外碼與主碼之間的引用規則。

參照完整性規則:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:

或者取空值(F的每個屬性值均為空值)

或者等于S中某個元組的主碼值。

用戶定義的完整性:用戶定義的完整性是針對某一具體關系數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求。

關系模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理它們,而不要由應用程序承擔這一功能。

例:課程(課程號,課程名,學分)

“課程名”屬性必須取唯一值

非主屬性“課程名”也不能取空值

“學分”屬性只能取值{1,2,3,4}

與表有關的約束是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,列約束有(表約束 NOT NULL)。也可以在表定義時定義約束,此時稱為表約束,表約束有(PRIMARY KEY、foreign key、check、UNIQUE)。

not null(非空)約束:只用于定義列約束。(2)unique(惟一)約束:用于指明創建惟一約束的列上的取值必須惟一。(3)primary key(主鍵)約束:用于定義基本表的主鍵,起惟一標識作用,其值不能為null,也不能重復,以此來保證實體的完整性。(4)foreign key(外鍵)約束:定義了一個表中數據與另一個表中的數據的聯系。

foreign key約束指定某一個列或一組列作為外部鍵,其中包含外部鍵的表稱為子表,包含外部鍵所引用的主鍵的表稱為父表。系統保證,表在外部鍵上的取值要么是父表中某一主鍵,要么取空值,以此保證兩個表之間的連接,確保了實體的參照完整性。

以上通過實體完整性、參照完整性、用戶自定義完整性三個方面進行分析了數據庫中的完整性約束,并且通過實際的例子更容易清晰的理解和掌握完整性約束。

主站蜘蛛池模板: 亚洲国产精品美女| 热99精品视频| 国产在线视频自拍| 久久精品视频一| 色久综合在线| 天天躁夜夜躁狠狠躁图片| 尤物成AV人片在线观看| 日本三级欧美三级| 国产精品中文免费福利| 国产玖玖视频| 亚洲中文在线看视频一区| 色妞永久免费视频| 国产精品亚洲精品爽爽| 97se亚洲综合在线天天| 91精品国产自产在线老师啪l| 国产成人亚洲无吗淙合青草| 欧洲高清无码在线| 国产毛片高清一级国语| 大陆精大陆国产国语精品1024| 亚洲综合18p| 亚洲中文字幕23页在线| 国产精品欧美在线观看| 不卡无码h在线观看| 亚卅精品无码久久毛片乌克兰| 任我操在线视频| 亚洲国产日韩在线观看| 在线免费无码视频| 欧美成人看片一区二区三区 | 四虎永久在线| 国产精品美女免费视频大全| 国产成人精品免费视频大全五级 | 日韩精品免费一线在线观看 | jizz亚洲高清在线观看| 中文字幕在线欧美| 伊人成人在线| 91福利在线看| 日韩国产黄色网站| 亚洲国内精品自在自线官| 精品久久久久久成人AV| 91青青在线视频| 日韩一级二级三级| 一本无码在线观看| 国产午夜精品一区二区三| 国产日韩精品欧美一区灰| 91丨九色丨首页在线播放| 日本黄色a视频| 亚洲AV人人澡人人双人| 亚洲美女高潮久久久久久久| 国产理论精品| 无码福利视频| 国产女人18水真多毛片18精品| 欧美精品在线看| 成色7777精品在线| 亚洲六月丁香六月婷婷蜜芽| 国产91av在线| 91在线国内在线播放老师| 日本中文字幕久久网站| 伊人久久婷婷五月综合97色| 亚洲欧美极品| 手机永久AV在线播放| 永久免费精品视频| 一本色道久久88综合日韩精品| 亚洲精品久综合蜜| 最新国产高清在线| 久久无码av一区二区三区| 激情亚洲天堂| 亚洲五月激情网| 国产在线视频二区| 99热精品久久| 国产三级精品三级在线观看| 国产无码精品在线播放| 亚洲精品无码人妻无码| 婷婷色在线视频| 国产成人啪视频一区二区三区| 91网站国产| 免费看久久精品99| 国产亚洲精品无码专| 五月婷婷伊人网| 久久婷婷六月| 欧美成人亚洲综合精品欧美激情| 亚洲视频二| 亚洲AV无码乱码在线观看裸奔|