資料庫系統概論 關係代數

2021-10-04 19:18:16 字數 1436 閱讀 6548

關聯式資料庫不是僅僅用來看的,必須有相應的運算來支撐才能得到我們想要的結果。之前也提到,關聯式資料庫有完整的數學模型來支撐,因此這一節可能就要考一考筆者的數學能力了!(雖然上學期離散考得還行,但數學乃我一生之大敵…)

對資料庫系統下達指令需要語言。分為三類:

至於這些語言的特點將分別展開說明。

關係代數的運算物件和結果全部為關係(複習:關係是元組的集合)。因此,關係的運算子至少會包含集合的運算子。於是:

運算方法和相應的集合運算保持一致。如果笛卡爾積也在離散數學裡學過,這裡也不多介紹。

除此之外還引進了專門的關係運算子,選擇,連線,投影,除運算。

σf(r)=

簡單說明,選擇操作從關係r中抽取使邏輯表示式f為真的元組t並將其組成乙個新的關係。

這個是做行變換。

πa(r) = ,a是r中的屬性列(組)

投影操作將關係r中的a屬性列(組)抽取並且組成乙個新的關係。

這個是做列變換。

(這都什麼奇奇怪怪的符號…)

簡單來說就是分成幾步:

兩個關係r,s

廣義笛卡爾積r×s

r在屬性值a上的值與s在屬性b上的值滿足比較關係θ的元組組成的關係(注意得到的元組都是r×s的元組)

常用的兩類連線:

等值連線:θ是等號=。

自然連線:兩個關係中進行比較的必須是相同的屬性組,所以連線的時候要把相同的去掉。捨去的叫做懸浮元組。也就是等值連線把相同的兩列中的一列去掉。

如果不去掉懸浮元組而在這些元組的其他列上填空串null,就是外連線。顯然,外連線就是不管三七二十一兩個關係做自然連線然後不捨去任何東西,沒有的地方就填空串就完事了。在我看來像是最大程度保留原始資料的一種努力。當然還有左右外接,可以預想是保留左邊和右邊關係的懸浮元組,這樣理論上得到的新關係會比外接要少一點。

同時進行了行列變換。

兩個關係r(x,y),s(y,z),其中x、y、z為屬性組,這兩個關係有相同的一部分屬性組。

得到新的關係p(x),是r中的元組在x屬性列上中的投影。

投影要滿足以下關係:元組在x上分量值x的象集yx包含s在y上投影的集合。因此要先求一下s在y上的投影的集合。

象集是什麼?很簡單,比如r(x,y),t[x]=x,象集就是剩下的當t[x]=x的時候屬性組y的取值t[y]。可以理解為先選擇(行變換)再投影(列變換)。

可以看出共有的屬性組為b,c。s在b,c上的投影有三個元組,而r在a上的分量a1,a2,a3,a4中只有a1的象集包含了所有三個元組。

同時進行行列變換。

那一夜,人們又感受到了被離散支配的恐懼(霧)。不過在筆者看來,純數學的東西就是概念的堆砌,只要肯下功夫把乙個看似複雜的概念拆成乙個乙個能夠理解的部分,做乙個step指導,先做什麼後做什麼,按部就班,順著邏輯,總是能夠解決的。不過還是很討厭就是了哈哈哈。

資料庫系統概論 關係代數

關係代數語言用對關係的運算來表達查詢的要求,是一種抽象的查詢語言,其運算結果和物件均為關係,包括集合運算子和專門運算子 並運算 union 要求兩個關係具有相同的目且相應的屬性取自同一域,符號為 並運算的結果目不變,由屬於前乙個關係或屬於後乙個關係的元組構成 差運算 difference 要求兩個關...

資料庫系統概論 03 關係代數

關係 乙個扁平二維表。n個集合的笛卡爾積集合的子集。每一行為乙個元組,每一列為乙個屬性。關係模型為資料庫表的表頭。主鍵 碼 選乙個候選碼作為身份區別。超碼 乙個關係中,能夠標識乙個元組的屬性。候選碼 乙個關係中,能夠標識乙個元組,最小屬性集合。可能有多個,基於使用者的使用環境。null值與其他值比較...

資料庫系統概論 關係操作

常用的關係操作 查詢操作 選擇 投影 連線 除 並 差 交 笛卡爾積 其中選擇 投影 並 差 笛卡爾基是5種基本操作 資料更新 插入 刪除 修改 查詢的表達能力是其中最主要的部分 關係操作的特點 集合操作方式 操作的物件和結果都是集合,一次一集合的方式 非關係資料模型的資料操作方式 一次一記錄 檔案...