關(guān)鍵詞
關(guān)系模型粱玲,關(guān)系數(shù)據(jù)庫(kù),關(guān)系操作昧旨,完整性約束
關(guān)系模型
關(guān)系模型是目前最為重要的數(shù)據(jù)模型拾给,關(guān)系數(shù)據(jù)庫(kù)采用關(guān)系模型其數(shù)據(jù)的組織方式祥得,關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念之上。這是其他數(shù)據(jù)模型[1]所不具備的特征之一蒋得。
關(guān)系模型可以理解為一組關(guān)系级及,其中的每一個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)都是一張規(guī)范化的二維表。關(guān)系模型要求關(guān)系是規(guī)范化窄锅,規(guī)范化的最基本條件就是關(guān)系的每一個(gè)分量都必須是不可再分的數(shù)據(jù)項(xiàng)创千,通俗的說(shuō)法就是不存在大表中嵌套小表。如圖所示的表格就不符合關(guān)系模型的基本要求入偷。
下面是關(guān)系模型的常用術(shù)語(yǔ)及形象理解:
- 關(guān)系(Relation):一張表
- 元組(Tuple):表的一行追驴,記錄
- 屬性(Attribute):表的一列
- 碼(Key,也叫鍵):屬性組疏之,可唯一確定一個(gè)元組
- 域(Domain):屬性的取值范圍
- 分量:元組中的一個(gè)屬性值
- 關(guān)系模式:對(duì)關(guān)系的描述殿雪,表頭 如:學(xué)生(學(xué)號(hào),姓名锋爪,性別丙曙,年齡,專業(yè))
下面是嚴(yán)格術(shù)語(yǔ)定義:
- 域(Domain):域是一組具有相同數(shù)據(jù)類型值的集合其骄。
- 笛卡爾積(Cartesian Product):設(shè)A,B為集合亏镰,用A中元素為第一元素,B中元素為第二元素構(gòu)成有序?qū)φ羞@樣的有序?qū)M成的集合叫做A與B的笛卡爾積索抓,記作AxB.
關(guān)系模型的操作
關(guān)系模型中的操作都是集合操作,操作的對(duì)象和操作結(jié)果都是關(guān)系毯炮。關(guān)系模型隱藏了操作的具體細(xì)節(jié)逼肯,存儲(chǔ)路徑對(duì)用戶透明,用戶只需要告知要找什么干什么即可桃煎。
基本關(guān)系操作
基本的關(guān)系操作可以分為查詢(Query)和更新(Update)兩大類篮幢,其中的更新可細(xì)分為插入(Insert)、修改(Update)为迈、刪除(Delegate)三椿。
關(guān)系的查詢包括選擇(Select)、投影(Project)葫辐、并(Union)搜锰、差(Except)、笛卡爾積(Cartesian Product)另患,以及連接(Join)、除(Divide)蛾绎、交(Intersection)等導(dǎo)出操作昆箕。
關(guān)系數(shù)據(jù)語(yǔ)言分類
關(guān)系數(shù)據(jù)語(yǔ)言分類可分為關(guān)系代數(shù)鸦列、關(guān)系演算、以及所謂的具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語(yǔ)言(如SQL)三大類鹏倘。
關(guān)系代數(shù)通過(guò)對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢薯嗤,關(guān)系演算通過(guò)謂詞來(lái)表達(dá)查詢,而SQL則是集DDL纤泵、DML骆姐、DCL和查詢于一體的結(jié)構(gòu)化查詢語(yǔ)言。
關(guān)系模型的完整性約束
關(guān)系的完整性約束包括三大類:
- 實(shí)體完整性約束
- 參照完整性約束
- 用戶定義完整性約束
實(shí)體完整性約束
實(shí)體完整性要求主屬性不能為空捏题,進(jìn)一步的基本關(guān)系的主碼也不能為空玻褪。
實(shí)體在現(xiàn)實(shí)世界都是可區(qū)分的,也就是說(shuō)實(shí)體具有某種唯一性的標(biāo)識(shí)來(lái)區(qū)別它們自身公荧,關(guān)系模型中主碼就是唯一性標(biāo)識(shí)带射,主碼中的屬性不能為空,若為空的話就說(shuō)明有不可區(qū)分的實(shí)體循狰。
參照完整性約束
外碼
一個(gè)關(guān)系模型A中的主碼(可以是一個(gè)或者一組屬性)對(duì)應(yīng)于另外一個(gè)關(guān)系模型B中的一個(gè)或者一組屬性窟社,并且這個(gè)或者這組屬性還不是關(guān)系模型B的碼,則稱且這個(gè)或者這組屬性為關(guān)系模型B的的外碼(Foreign Key)绪钥。關(guān)系模型B中的外碼參照于關(guān)系模型A的主碼灿里。
參照完整性的規(guī)則
簡(jiǎn)單來(lái)說(shuō)就是,外碼可取空值(必須每個(gè)屬性值均為空值)和非空值程腹,取非空值時(shí)匣吊,外碼必須存在于它參照的另外一個(gè)關(guān)系模型的主碼中。
嚴(yán)格的定義如下:
若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼跪楞,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系)缀去,則對(duì)于R中的每一個(gè)元組在F上的值必須為以下兩種情況之一:
- 情況一,取空值(F的每個(gè)屬性值均為空)甸祭;
- 情況二缕碎,等于S中的某個(gè)元組的主碼值。
用戶定義完整性約束
用戶定義完整性約束反映的是某一具體應(yīng)用的數(shù)據(jù)所要滿足的語(yǔ)義要求池户,用戶定義完整性約束是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件咏雌。
關(guān)系模型提供用戶定義完整性約束可將各類驗(yàn)證和約束集中在一起統(tǒng)一處理,而不必將各種判斷邏輯分散在具體的應(yīng)用系統(tǒng)中校焦。
關(guān)系數(shù)據(jù)庫(kù)
支持關(guān)系模型的數(shù)據(jù)庫(kù)就是關(guān)系數(shù)據(jù)庫(kù)赊抖。
-
其他數(shù)據(jù)模型有層次模型、網(wǎng)狀模型寨典、面向?qū)ο竽P头昭?duì)象關(guān)系模型等。 ?