MySQL利用關係代數進行查詢 關係代數

2021-10-18 11:18:03 字數 2265 閱讀 1569

關係代數的由來 首先從巨集觀上來認識一下關係演算這個概念,換句話講也就是什麼是關係代數,這也是我在接觸一些東西的首要工作。大家都知道對於關係型資料庫的資料庫操作語言分為查詢和更新兩類。而查詢語言這塊,又分為關係代數語言與關係演算語言。這裡講的

關係代數的由來

首先從巨集觀上來認識一下關係演算這個概念,換句話講也就是什麼是關係代數,這也是我在接觸一些東西的首要工作。大家都知道對於關係型資料庫的資料庫操作語言分為查詢和更新兩類。而查詢語言這塊,又分為關係代數語言與關係演算語言。這裡講的就是關係代數。所以可以這樣定義,關係代數就是為資料庫操作語言進行查詢的集合操作。

關係代數中的操作可分為兩類

(1)傳統的集合操作:並、差、交、笛卡兒積、除法。

(2)擴充的關係操作:投影、選擇、連線、。

常見符號

五種基本的關係代數

1、並設關係r和s具有相同的關係模式,r和s的並是由屬於r或屬於s的元組構成的集合,記為r∪s。形式定義如下:喎?" target="_blank" class="keylink">vcd4kpha+uqhiu6hue3qg" t∈r ∨ t∈s},t是元組變數,r和s的元數相

2、差(difference)

設關係r和s具有相同的關係模式,r和s的差是由屬於r但不屬於s的元組構成的集合,記為r-s。形式定義如下:

r-s≡,r和s的元數相同。

3、笛卡兒積(cartesian product)

設關係r和s的元數分別為r和s,定義r和s的笛卡兒積是乙個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自r的乙個元組,後s個分量來自s的乙個元組,記為r×s。

4、投影(projection)

這個操作是對乙個關係進行垂直分割,消去某些列,並重新安排列的順序。

表示符號

5、連線

這個操作是根據某些條件,對既定的集合進行條件選擇。

σ為選擇運算子

對於基本的關係代數操作,可以發現。之前的三種針對的都是兩個或者兩個至上的集合操作,而後兩種操作的都為乙個集合。

擴充的代數操作

交這個操作就是從兩個集合內找出既屬於r有屬於s集合的元素的集合。符號:∩

如圖

圖中兩個集合相同的部分為第一行元素。

除除的操作要求進行操作的兩個關係集合需要有重疊的屬性。

例項圖表

結果

連線所有的連線操作都是在進行笛卡爾積的基礎上進行一些相應的條件操作。所以根據條件不同,分為等值連線、自然連線、θ連線。

θ連線表示從rs中分別選取r的第i列和s的第j列進行連線操作。

等值連線

等值連線就是當θ的值為等於號時的連線。

自然連線

自然連線是一種比較特殊的連線,要求兩個連線的關係中必須要有相同的屬性。如

如圖,兩個集合存在相同的屬性sno這樣將這兩個不同集合中相同屬性的一行連線,得到結果。

如上就是關係代數的一些基本操作和擴充套件操作,更多的需要從實際的例子來理解定義這樣會便於理解。對於基本的操作,並、差、笛卡爾積針對的都是兩個不同的集合的操作;而投影和連線針對既定集合的操作。擴充套件中的運算主要是連線,連線根據θ的值的不同來區分到底是自然連線和等值連線;等值連線和自然連線都是θ值在不同情況下的特殊狀態。

利用SQL語言實現關係代數操作

目錄 1.並交差的處理 2.舉例 3.空值的處理 4.內連線和外連線 1.並 交 差 1 sql語言 union,intersect,except 2 語法格式 子查詢1 通常情況下自動刪除重複元組,不帶all 若要保留重複元組,則要帶 all 3 假設子查詢1 的乙個元組出現 m 次,子查詢2 的...

mysql查詢關係表 MySQL查詢之關係查詢

連線查詢 select table b.type,table b.title,table b.content,table b.author from table a left join table b on table a.type table b.type where table a.id 1 子...

利用Federated引擎進行mysql複製

federated儲存引擎可以使幾台資料庫邏輯上組成乙個資料庫,其作用相當於oracle的資料庫鏈結,通俗地說,即在本地建立遠端的資料庫表的引用。mysql需要5.0以上 1 檢視是否安裝了federated引擎 show engines 從中可以看出federated引擎沒有開啟 windows下...