摘要:下面是由希賽小編整理的中級通信互聯(lián)網(wǎng)技術知識點精講之關系的完整性,希望能幫助學友們。
下面是由希賽小編整理的中級通信互聯(lián)網(wǎng)技術知識點精講之關系的完整性,希望能幫助學友們。具體內(nèi)容如下:
關系的完整性
關系模型的完整性規(guī)則是對關系的某種約束條件?關系模型中可以有3類完整性約束:實體完整性、參照完整性和用戶定義的完整性。其中,實體完整性和參照完整性是關系模型第8章數(shù)據(jù)庫基礎1261必須滿足的完整性約束條件,被稱做是關系的兩個不變性,應該由關系系統(tǒng)自動支持。
1.實體完整性(EntityIntegrity)
規(guī)則8.1實體完整性規(guī)則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。
例如在關系“SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)”中,“研究生姓名”POSTGRADUATE屬性為主碼(假設研究生不會重名),則“研究生姓名”不能取空值。
實體完整性規(guī)則規(guī)定基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。
例如,學生選課關系“選修(學號,課程號,成績)”中,“學號、課程號”為主碼,則“學號”和“課程號”兩個屬性都不能取空值。
2.參照完整性(Referentiallntegrity)
現(xiàn)實世界中的實體之間往往存在某種聯(lián)系,在關系模型中實體及實體間的聯(lián)系都是用關系來描述的。這樣就自然存在著關系與關系間的引用。
【例8.1】學生實體和專業(yè)實體可以用下面的關系表示,其中主碼用下劃線標識:
學生(學號,姓名,性別,專業(yè)號,年齡)
專業(yè)(專業(yè)號,專業(yè)名)
這兩個關系之間存在著屬性的引用,即學生關系引用了專業(yè)關系的主碼“專業(yè)號”。顯然,學生關系中的“專業(yè)號”值必須是確實存在的專業(yè)的專業(yè)號,即專業(yè)關系中有該專業(yè)的記錄。
也就是說,學生關系中的某個屬性的取值需要參照專業(yè)關系的屬性取值。
【例8.2】學生、課程、學生與課程之間的多對多聯(lián)系可以如下3個關系表示:
學生(學號,姓名,性別,專業(yè)號,年鈐)
課程(課程號,課程名,學分)
選修(學號,課程號,成繢)
這3個關系之間也存在著屬性的引用,即選修關系引用了學生關系的主碼“學號”和課程關系的主碼“課程號”。同樣,選修關系中的“學號”值必須是確實存在的學生的學號,即學生關系中有該學生的記錄:選修關系中的“課程號”值也必須是確實存在的課程的課程號,
即課程關系中有該課程的記錄。換句話說,選修關系中某些屬性的取值需要參照其他關系的屬性取值。
不僅兩個或兩個以上的關系間可以存在引用關系,同一關系內(nèi)部屬性間也可能存在引用關系。
【例8.3】在關系學生2(學號,姓名,性別,專業(yè)號,年齡,班長)中,“學號”屬性是主碼,“班長”屬性表示該學生所在班級的班長的學號,它引用了本關系“學號”厲性,即“班長”必須是確實存在的學生的學號。
定義8.S設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼(ForeignKey),并稱基本關系R為參照關系(ReferencingRelation),基本關系S為被參照關系(ReferencedRelation)或目標關系(TargetRelation)。關系R和S不一定是不同的關系。
顯然,目標關系S的主碼和參照關系的外碼F必須定義在同一個(或一組)域上。在例8.1中,學生關系的“專業(yè)號”屬性與專業(yè)關系的主碼“專業(yè)號”相對應,因此“專業(yè)號”屬性是學生關系的外碼。這里專業(yè)關系是被參照關系,學生關系為參照關系。
在例8.2中,選修關系的“學號”屬性與學生關系的主碼“學號”相對應,“課程號”屬性與課程關系的主碼“課程號”相對應,因此“學號”和“課程號”屬性是選修關系的外碼。這里學生關系和課程關系均為被參照關系,選修關系為參照關系。
在例8.3中,“班長”屬性與本身的主碼“學號”屬性相對應,因此“班長”是外碼。這里學生2關系既是參照關系也是被參照關系。
規(guī)則8.2參照完整性規(guī)則:設屬性組A是關系R的外碼且A與關系S的主碼對應,則對于R中的每一個元組在屬性A上的值必須為空值(對應于A中每個屬性值都為空值)或者等于S中某一元組的主碼值。
需要指出的是,外碼并不一定要與相應的主碼同名(如例3)。不過,在實際應用當中,為了便于識別,當外碼與相應的主碼屬于不同關系時,往往給它們?nèi)∠嗤拿睢?/p>
參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。
實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,它由關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)自動支持。
3.用戶自定義的完整性(User-definedIntegrity)
這是針對某一具體數(shù)據(jù)的約束條件,由應用環(huán)境決定。用戶定義的完整性具體應用涉及數(shù)據(jù)必須滿足的語義要求。系統(tǒng)提供定義和檢驗這類完整性的統(tǒng)一處理方法,不再由應用程序承擔這項工作。例如,我們可以寫一條規(guī)則,把學生每門課程的學習成績限制在0-100分?,F(xiàn)在的商品化RDBMS都提供了定義和檢査這類完整性約束的機制。
返回目錄:中級通信互聯(lián)網(wǎng)技術知識點精講之數(shù)據(jù)庫技術匯總
相關推薦:
通信工程師備考資料免費領取
去領取