三 關係模型之基本概念

2021-08-26 23:26:42 字數 3601 閱讀 1082

形象地說,乙個關係(relation)就是乙個table

關係模型就是處理table的,它由三個部分組成:

- 描述db各種資料的基本結構形式(table/relation)

- 描述table與table之間所可能發生的各種操作(關係運算)

- 描述這些操作所應遵循的約束條件(完整性約束)

所以要研究,table如何描述,有哪些操作、 結果是什麼、 有哪些約束等。

擴充套件的

完整性約束

關係運算 : (關係代數(基於集合的運算))和(關係演算(元組演算和域演算))

首先定義「列」的取值範圍「域(domain)」

一組值的集合,這組值具有相同的資料型別(如整數的集合、字串的集合、全體學生的集合,再如, 由8位數字組成的數字串的集合,由0到100組成的整數集合)

集合中元素的個數稱為域的基數(cardinality)

再定義「元組」及所有可能組合成的元組:笛卡爾積

一組域d1, d2,..., dn的笛卡爾積為:

d1×d2×...×dn =
笛卡爾積的每個元素(d1 , d2 , … , dn)稱作乙個n-元組(n-tuple)

由於笛卡爾積中的所有元組並不都是有意義的,因此…

- 一組域d1 , d2 ,..., dn的笛卡爾積的子集

- 笛卡爾積中具有某一方面意義的那些元組被稱作乙個關係(relation)

- 由於關係的不同列可能來自同乙個域,為區分,需要為每一列起乙個名字,該名字即為屬性名

關係可用r(a1:d1 , a2:d2 , ... , an:dn)表示,可簡記為r(a1 , a2 , ... , an),這種描述又被稱為關係模式(schema)或表標題(head)

r是關係的名字,ai是屬性,di是屬性所對應的域,n是關係的度或目(degree), 關係中元組的數目稱為關係的基數(cardinality)

例如下圖的關係為一3目關係,描述為

家庭(丈夫:男人,妻子:女人, 子女:兒童) 或 家庭(丈夫,妻子, 子女)
關係模式r(a1:d1 , a2:d2 , ... , an:dn)中屬性向域的映象在很多dbms中一般直接說明為屬性的型別、長度等

例如:student(s# char(8), sname char(10), s*** char(2), sage integer, d# char(2), sclass char(6))

course(c# char(3), cname char(12), chours integer, credit float(1), t# char(3))

sc(s# char(8), c# char(3), grade float(1))

關係中的乙個屬性組,其值能唯一標識乙個元組,若從該屬性組中去掉任何乙個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。(簡言之,唯一標示)

例如: 「學生(s#, sname, sage, sclass)」,s#就是乙個候選碼,在此 關係中,任何兩個元組的s#是一定不同的,而這兩個元組的sname, sage, sclass都可能相同(同名、同齡、同班),所以s#是候選碼。

再如: 「選課(s#, c#, sname, cname, grade)」,(s#,c#)聯合起來是乙個候選碼

有時,關係中有很多組候選碼,例如: 學生(s#, sname, sage, sclass, saddress)其中屬性s#是候選碼,屬性組(sname, saddress)也是候選碼(同名同地 址的兩個同學是不存在的)

再如employee(empid, empname, mobile)每一雇員有唯一的empid, 沒有兩個雇員有相同的手機號mobile, 則 empid是候選碼,mobile也是候選碼

當有多個候選碼時,可以選定乙個作為主碼。

包含在任何乙個候選碼中的屬性被稱作主屬性,而其他屬性被稱作非主屬性。

關係r中的乙個屬性組,它不是r的候選碼,但它與另乙個關係s的候選碼相對應,則稱這個屬性組為r的外碼或外來鍵。

關係的主碼中的屬性值不能為空值(不知道或無意義的值)。

如果關係r1的外碼fk與關係r2的主碼pk相對應,則r1中的每乙個元組的fk值或者等於r2中某個元組的pk值,或者為空值。(簡言之,外來鍵要與那張表的主鍵對應,只能從中取,不能自己造)

使用者針對具體的應用環境定義的完整性約束條件。

比如要求名字在5個 漢字字元之內,年齡在[12, 35]之間,性別只能是「男」或「女」等。

以家有兒女這部劇中的角色為例。

男人夏東海

胡一統

女人劉梅瑪麗

兒童夏雪

夏雨劉星

一組值的集合,這組值具有相同的資料型別

d1=男人集合=

d2=女人集合=

d3=兒童集合=

集合中元素的個數稱為域的基數

基數就是有多少行。

d1域的基數為2

d2域的基數為2

d3域的基數為3

笛卡爾積的基數就是2 * 2 * 3 = 12

所有可能組合成的元組

男人女人

兒童夏東海

劉梅夏雪

夏東海劉梅

夏雨夏東海

劉梅劉星

夏東海瑪麗

夏雪夏東海

瑪麗夏雨

夏東海瑪麗

劉星胡一統

劉梅夏雪

胡一統劉梅

夏雨胡一統

劉梅劉星

胡一統瑪麗

夏雪胡一統

瑪麗夏雨

胡一統瑪麗

劉星笛卡爾積的每個元素(d1 , d2 , … , dn)稱作乙個n-元組(n-tuple)

元組就是一行資料。

|夏東海|劉梅|夏雪|

元組(d1 , d2 , ... , dn)的每乙個值di叫做乙個分量

夏東海是乙個分量。劉梅是乙個分量。夏雪是乙個分量。

一組域d1 , d2 ,…, dn的笛卡爾積的子集

笛卡爾積中具有某一方面意義的那些元組被稱作乙個關係(relation)

取笛卡爾積後的有意義的幾行。

家庭丈夫

妻子子女

夏東海劉梅

夏雪夏東海

劉梅夏雨

夏東海劉梅劉星

這是乙個」家庭「關係,其他的都不能組成家庭!

由於關係的不同列可能來自同乙個域,為區分,需要為每一列起乙個名字,該名字即為屬性名

原本是男人、女人、兒童,取名為丈夫、妻子、子女。

關係可用r(a1:d1 , a2:d2 , … , an:dn )表示,可簡記為r(a1 , a2 , … , an ),這種描述又被稱為關係模式(schema)或表標題(head)

n是關係的度或目。

男人、女人、兒童,3個度(目)。

關係模型之基本概念

關係模型的提出 是從表及表的處理方式中抽象出來的,是在對傳統表及其操作進行數學化嚴格定義基礎上,引入集合理論與邏輯學理論提出來的 是資料庫的三大經典資料模型之一 sql是建立在關係模型基礎之上的 關係模型的研究 關係模型就是處理表的 關係模型的三要素 組成 三要素 關係模型與關聯式資料庫語言的關係 ...

關係模型基本概念

1.關係模型的提出 關係模型最早是由e.f codd在1970年提出來的。是從表 table 以及表的處理中抽象出來的。是在傳統表以及其上面的操作嚴格化的數學定義上引入 集合理論 與 邏輯學理論 關係模型是資料庫的三大典型模型之一。也是現在大多數商業資料庫使用的模型。2.關係模型研究的內容 形象的說...

關係模型的基本概念

關係模型由若干關係模型 記錄型別 組成,記錄型別又分為實體型別和聯絡型別 記錄型別的例項是關係,關係實際上就是一張二維表。關係模型靠鍵來導航,表與表之間靠鍵關聯起來,回到現實中是事物之間的聯絡。用圖和表來表示思路,有幾個好處,第一是簡化了表達,一目了然 第二是提供了角度觀察和思考問題的另乙個角度。這...