3.關係代數表示式
首先,關聯式資料庫的關係代數指什麼?
書本概念:由關係代數運算經有限次復合而成的式子稱為關係代數表示式。這種表示式的運算結果仍然是乙個關係。可以用關係代數表示式表示對資料庫的查詢和更新操作。
通俗一點來說,就是通過關係代數的運算方式,來計算出目標關係。比如1+1這種算術關係式,只不過其中的1變成了乙個關係。
關係代數的運算有9種操作,分別是:並、交、差、乘、選擇、投影、聯接、除、自然聯接等。
其中並(∪)、差(-)、笛卡爾積(×)、投影(π)、選擇(σ)是5個基本操作,交(∩)、聯接(等值聯接)、自然聯接(r是4個組合操作,可以用前面的5個基本操作來定義,不過會稍微複雜些。
現在我們乙個個的來看看。以下sql語句皆根據oracle資料庫來寫。
1、並(∪)
並是傳統的二目運算,且其結果,認為n目關係,由屬於r或屬於s的元組組成。
資料庫當中的union就是並運算
2、差(-)
和並一樣為二目運算。資料庫中的minus就是乙個代表。
3、笛卡爾積(×)
笛卡爾積就是全表連線,比如r有x個元組,s有y個元組,這r、s笛卡爾積有x*y個元組
其中資料庫中的cross join,或select r.*,s.* from r,s
4、投影(π)
投影就是在原表的基礎上,重新選出若干屬性,組成乙個新的關係。從列的角度去篩選。
比如:
/*
* 學生關係如下
* student(sno,sname,sage)
*/select s.sno,s.name from sutdent s
5、選擇(σ)選擇是在原表的基礎上,加上一些特定的篩選條件,來篩選出我們需要的特定資料。
資料庫中的where就是選擇。
select * from student s where s.sno <= 1010
6、交(∩)r和s進行交運算,由即屬於s和r的元組組成,交可以用差來表示,即r∩s=r-(r-s)。
資料庫中的intersect就是交操作。
7、聯接(等值聯接)和非等值鏈結
等值是在笛卡爾積的結果基礎上新增某兩列屬性值相等的篩選條件,列名可以相同,也可以不同。
反之,非等值連線,就是在篩選出某兩列屬性值不相等的條件,列名可以相同也可以不同。
--等值連線
select * from stu a
join school b on a.sno = b.no
--非等值連線
select * from stu a
join school b on a.sno <> b.no
8、自然聯接自然連線是一種特殊的等值連線,要求兩個表必須有相同的屬性列,不然無法完成「自發」的匹配。
sql中的natural join就是自然連線。
比如**1和**2自然連線之後得到的結果就是**3。
**1 ab
c123
456**2 b
de23
4456
**3 ab
cde1
2334
因為自然連線,本身存在自發的匹配,會根據相同的屬性列去匹配,自己就帶有限制條件了,所以自然連線不能有where 或 on去限制篩選。並且等值連線要求相等的分量,不一定是公共屬性(即相同的列名),但是自然連線必須要求相等的列名。
9、除法(÷)
除法這個計算還是相對來說比較簡單的。
書本中的介紹是這樣的:設關係r除以關係s的結果為關係t,則關係t包含所有在r但不在s中的屬性及其值,且t的元組與s的元組的所有組合都在r中。
但畢竟都是拿來計算的,從算數表示式中的除法,我們也能以此類推出來。
我個人是這麼計算除法的。以**4和5為例。
**4 r a
ca1c1a1
c2a1
c3a2
c1a2
c3a3
c1**5 s c
dc1d1c3
d2計算r÷s:
第一步,找出重複列,即c
第二步,s在(c)上的投影為,r中a在(c)上象集有
a1的象集k1=
a2的象集k2=
a3的象集k2=
第三步,從k1~k3三個象集中,可以看到k1和k2包含了s在c列的投影,所以r÷s=
軟考中級 資料庫系統
1.軟考 1 指計算機技術與軟體專業技術資格 水平 考試。2 由國家人事部和資訊產業部舉辦的,是國家專業技術資格考試,納入全國專業技術人員職業資格證書制度統一規劃。3 每年兩次,第二季度和第四季度,上半年考試與下半年考試的種類不盡相同,所以,大多數類別的考試每年舉行一次。4 中 初級資格考試設基礎知...
軟考 資料庫系統工程師
sql語言 例題 9.1建立乙個 商和乙個零件資料庫。其中 商 表s sno,sname,status,city 的屬性分別表示 商 商名 商狀態以及 商所在的城市。零件 表p pno,pname,color,weight,city 的屬性分別表示零件號 零件名 顏色 重量以及產地。其中,資料庫需要...
課程分享 Oracle資料庫系統工程師
對這個課程有興趣的朋友可以加我的qq2059055336和我聯絡 一 本課程是怎麼樣的一門課程 1.1 課程的背景 該課程是oracle資料庫系統工程師培訓課程 oracledatabase,又名oraclerdbms,或簡稱oracle。是甲骨文公司的一款關聯式資料庫管理系統。到目前仍在資料庫市場...