- 王珊《數據庫系統概論》(第4版)【教材精講+考研真題解析】講義與視頻課程【28小時高清視頻】
- 圣才電子書
- 1771字
- 2021-06-04 18:05:00
2.3 關系的完整性

視頻二維碼(掃碼觀看)
2.3.1 關系的三類完整性約束
·實體完整性和參照完整性:
關系模型必須滿足的完整性約束條件
稱為關系的兩個不變性,應該由關系系統自動支持
·用戶定義的完整性:
應用領域需要遵循的約束條件,體現了具體領域中的語義約束
2.3.2 實體完整性
【規則2.1】實體完整性規則(Entity Integrity)
若屬性A是基本關系R的主屬性,則屬性A不能取空值
例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
POSTGRADUATE:主碼(假設研究生不會重名)不能取空值。
實體完整性規則的說明:
(1)實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集。
(2)現實世界中的實體是可區分的,即它們具有某種唯一性標識。
(3)關系模型中以主碼作為唯一性標識。
(4)主碼中的屬性即主屬性不能取空值。
主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整性。
注意:實體完整性規則規定基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。
例:選修(學號,課程號,成績)
“學號、課程號”為主碼,則學號和課程號兩個屬性都不能取空值。
2.3.3 參照完整性
1關系間的引用
在關系模型中實體及實體間的聯系都是用關系來描述的,存在著關系與關系間的引用。
【例1】學生實體、專業實體
學生(學號,姓名,性別,專業號,年齡)
專業(專業號,專業名)
·學生關系引用了專業關系的主碼“專業號”。
·學生關系中的“專業號”值必須是確實存在的專業的專業號,即專業關系中有該專業的記錄。


【例2】學生、課程、學生與課程之間的多對多聯系
學生(學號,姓名,性別,專業號,年齡)
課程(課程號,課程名,學分)
選修(學號,課程號,成績)
學生:

課程:

學生選課:

【例3】學生實體及其內部的一對多聯系
學生(學號,姓名,性別,專業號,年齡,班長)

·“學號”是主碼,“班長”是外碼,它引用了本關系的“學號”;
·“班長”必須是確實存在的學生的學號。
2外碼(Foreign Key)
·設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼
·基本關系R稱為參照關系(Referencing Relation)
·基本關系S稱為被參照關系(Referenced Relation)或目標關系(Target Relation)
【例1】學生關系的“專業號”與專業關系的主碼“專業號”相對應
·“專業號”屬性是學生關系的外碼;
·專業關系是被參照關系,學生關系為參照關系。

【例2】選修關系的“學號”與學生關系的主碼“學號”相對應;
選修關系的“課程號”與課程關系的主碼“課程號”相對應。
·“學號”和“課程號”是選修關系的外碼;
·學生關系和課程關系均為被參照關系;
·選修關系為參照關系。

【例3】“班長”與本身的主碼“學號”相對應。
·“班長”是外碼;
·學生關系既是參照關系也是被參照關系。

說明:
·關系R和S不一定是不同的關系;
·目標關系S的主碼Ks和參照關系的外碼F必須定義在同一個(或一組)域上;
·外碼并不一定要與相應的主碼同名,當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別。
3參照完整性規則
【規則2.2】參照完整性規則
若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:
·或者取空值(F的每個屬性值均為空值);
·或者等于S中某個元組的主碼值。
【例1】學生關系中每個元組的“專業號”屬性只取兩類值:
(1)空值,表示尚未給該學生分配專業;
(2)非空值,這時該值必須是專業關系中某個元組的“專業號”值,表示該學生不可能分配一個不存在的專業。
【例2】選修(學號,課程號,成績)
“學號”和“課程號”可能的取值:
(1)選修關系中的主屬性,不能取空值;
(2)只能取相應被參照關系中已經存在的主碼值。
【例3】學生(學號,姓名,性別,專業號,年齡,班長)
“班長”屬性值可以取兩類值:
(1)空值,表示該學生所在班級尚未選出班長;
(2)非空值,該值必須是本關系中某個元組的學號值。
2.3.4 用戶定義的完整性
·針對某一具體關系數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求。
·關系模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理它們,而不要由應用程序承擔這一功能。
例:課程(課程號,課程名,學分)
“課程號”屬性必須取惟一值,非主屬性“課程名”也不能取空值,“學分”屬性只能取值{1,2,3,4}。
- 戴海崎《心理與教育測量》(第3版)筆記和課后習題(含考研真題)詳解
- 馮博琴《微型計算機原理與接口技術》(第3版)筆記和課后習題(含考研真題)詳解
- 四川大學外國語學院245二外法語歷年考研真題及詳解
- 2020年考研思想政治理論大綱解析配套1600題
- 湖南大學教育科學研究院721教育學基礎綜合歷年考研真題(回憶版)匯編
- 2020年教育碩士(Ed.M)333教育綜合復習指南
- 羅森《財政學》配套題庫【名校考研真題+課后習題+章節題庫+模擬試題】(第8版)
- 杭州師范大學教育學院839教育管理學(二)[專業碩士]歷年考研真題及詳解
- 2020年同等學力申碩《新聞傳播學學科綜合水平考試(新聞學專業)》題庫【歷年真題+課后習題+章節題庫+模擬試題】
- 于富生《成本會計學》(第7版)筆記和習題(含考研真題)詳解
- 休斯《公共管理導論》筆記和考研真題詳解(第3版)
- 陳雨露《公司理財》(第2版)配套題庫【名校考研真題(視頻講解)+課后習題+章節題庫+模擬試題】
- 樊昌信《通信原理》(第6版)【教材精講+考研真題解析】講義與視頻課程【42小時高清視頻】
- 趙萬一《商法》(第4版)筆記和課后習題(含考研真題)詳解
- 南京大學外國語學院657基礎日語歷年考研真題及詳解