关系模型基础知识
目錄
- 關系模型的數據結構
- 關系模型的數據操作
- 關系模型的數據完整性約束條件
關系數據庫是支持關系模型的數據庫系統。
下面簡單的介紹一下關系模型。
關系模型的數據結構
關系的相關名詞介紹
-
屬性(Attribute):描述事物的若干特征稱為屬性。比如學號、姓名、職位、年齡等。
-
域(Domain):針對屬性的取值范圍集合。比如性別取值為男、女、學號的長度為8位等。
一般在關系數據模型中,對域加了一個限制,所有的域都是原子數據(Atomic Data)。
比如整數、字符串是原子數據,集合、數組屬于非原子數據,關系模型的這種限制稱為第一范式(1NF)條件。 -
目或度(Degree):R表示關系的名字,n是關系的目或度。
-
候選碼(Candidate Key):如果關系中的某一屬性或屬性組的值能唯一的標識一個元組,稱為該屬性或屬性組為候選碼。
-
主碼(Primary Key):主鍵,如果一個關系有多個候選碼,則選定一個作為主碼。
-
主屬性(Prime Attribute):包含任何候選碼中的屬性稱為主屬性,不包含任何候選碼的屬性稱為非主屬性。
-
外碼(Foreign Key):關系模式R中的屬性或屬性組非該關系的碼,但他是其他關系的碼,那么該屬性集對關系模式R而言是外碼,也稱為外鍵。
-
全碼(ALL-key):關系模型的所有屬性組是這個關系模式的候選碼,稱為全碼。
上面這一塊的內容摘自:https://blog.csdn.net/xishining/article/details/109685018
關系模型要求關系必須是規范化的。
即,關系表中不允許還有表。簡言之,不允許"表中有表"。
關系模型的數據操作
關系模型中的數據操作包括:
查詢、刪除、插入、修改。
結構化查詢語言SQL是關系數據庫的標準語言。
SQL是集查詢、數據定義語言、數據操縱語言和數據控制語言于一體的關系數據語言。
關系模型的數據完整性約束條件
關系模型中有三類完整性約束:
-
實體完整性
實體完整性規則
若屬性(指一個或多組屬性)A是基本關系R的主屬性,則A不能取空值。
所謂空值就是"不知道"或"不存在"或"無意義"的值。
即:主碼中的屬性不能取空值。如果取了空值,
就說明存在某個不可標識的實體,即存在不可區分的實體。 -
參照完整性
例:
學生(學號,姓名,專業號)
專業(專業號,專業名)
其中專業表中的專業號是主碼。
學生表中的專業號是參照專業表中的專業號的,故學生表中的專業號是外碼。
則學生表一個元組的值要么為空值,要么等于專業表中的主碼值。
即:空值或目標關系中已經存在的值 -
用戶自定義的完整性
任何關系數據庫都應該支持實體完整性和參照完整性。
這是關系模型所要求的。除此之外,不同的關系數據庫系統根據其應用環境的不同,
往往還需要一些特殊的約束條件。用戶定義的完整性就是針對某一具體關系數據庫的約束條件,
它反映某一具體應用所涉及的數據必須滿足的語法要求。
其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件
被稱作是關系的不變性。
總結
- 上一篇: 数据库的定义、模型 和 模式
- 下一篇: 数据操纵语言(DML)