摘要:我院在教學(xué)過程中采用關(guān)系代數(shù)與SELECT語句對比教學(xué)方法,使學(xué)生通過SELECT語句來理解關(guān)系代數(shù)運算,轉(zhuǎn)化了問題的難度,取得了較好的教學(xué)效果。
關(guān)鍵詞:關(guān)系代數(shù)運算;SELECT語句;對比教學(xué)法
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
1引言
在“數(shù)據(jù)庫系統(tǒng)原理”教學(xué)過程中,學(xué)生對關(guān)系代數(shù)運算的理解有一定的困難,往往不能很好地理解關(guān)系代數(shù)運算的確切含義,相反,對于SELECT語句,由于它簡單易懂,很容易理解,所以我們采用關(guān)系代數(shù)運算與SELECT語句對比的方法進(jìn)行教學(xué),通過對比講解,使學(xué)生通過對SELECT語句的認(rèn)識來理解關(guān)系代數(shù)運算,很快掌握了關(guān)系代數(shù)運算的基本原理,起到了較好的教學(xué)效果。
2SELECT語句
SQL語言也稱為結(jié)構(gòu)化查詢語言,目前成為國際標(biāo)準(zhǔn),它是一個綜合的、功能極強同時又簡捷易學(xué)的數(shù)據(jù)庫操縱語言。SQL語言中提供了SELECT語句進(jìn)行數(shù)據(jù)庫查詢,該語句具有靈活的使用方式和豐富的功能。
SELECT語句簡單格式:
SELECT <目標(biāo)列表達(dá)式> FROM <關(guān)系名列表>WHERE <條件表達(dá)式>
3關(guān)系代數(shù)運算
關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,它是用對關(guān)系的運算來表達(dá)查詢,
傳統(tǒng)的集合運算包括集合的并、交、差、廣義笛卡爾積4種運算;專門的關(guān)系代數(shù)運算包括選擇、投影、連接、除4種運算。
4關(guān)系代數(shù)運算與SELECT語句對應(yīng)關(guān)系
4.1傳統(tǒng)的集合運算
設(shè)有如上兩個關(guān)系R和S,以下運算以此為例。
(1) 并(Union)
關(guān)系R與關(guān)系S的并:
與之對應(yīng)的SELECT語句為:
SELECT * FORM R UNION SELECT * FROM S
集合的并就是求兩個集合中元組的并集,SELECT 語句先用SELECT * FORM R求出R元組集合,然后用SELECT * FROM S求出S元組集合,最后用UNION把兩個集合并在一起。
(2) 差
關(guān)系R與關(guān)系S的差:
SELECT * FORM R DIFFERENCE SELECT * FROM S
集合的差就是求R集合中不屬于S集合的元組集合,SELECT 語句先用SELECT * FORM R求出R元組集合,然后用SELECT * FROM S求出S元組集合,最后用DIFFERENCE求兩個集合的差。
(3) 交
關(guān)系R與關(guān)系S的交:
與之對應(yīng)的SELECT語句為:
SELECT * FORM R INTERSECTION SELECT * FROM S
集合的交就是求兩個集合中元組的交集,SELECT 語句先用SELECT * FORM R求出R元組集合,然后用SELECT * FROM S求出S元組集合,最后用INTERSECTION把兩個集合并在一起。
(4) 廣義笛卡爾積
關(guān)系R與關(guān)系S的廣義笛卡爾積:
與之對應(yīng)的SELECT語句為:
SELECTR.*, S.*FORMR , S
廣義笛卡爾集是兩個集合中元組及屬性的完全組合。
4.2專門關(guān)系代數(shù)運算
(1) 選擇
選擇又成為限制。他在關(guān)系R中選擇滿足條件的元組
其中F為選擇條件,一般表示為 。
對應(yīng)的SELECT語句為:
SELECT <目標(biāo)列表達(dá)式> FROMRWHEREF
F作為SELECT語句的選擇條件,實現(xiàn)記錄的過濾。
(2) 投影
其中A為屬性列表
對應(yīng)的SELECT語句為:
SELECTAFROMR
關(guān)系R的投影是從R中選擇出若干個屬性組成新的關(guān)系。
A作為SELECT語句的目標(biāo)列表,實現(xiàn)列的選擇。
(3) 連接
也稱為 連接,它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。
對應(yīng)的SELECT語句為:
SELECT <目標(biāo)列表達(dá)式> FROMR,SWHERE
作為SELECT語句的連接條件,實現(xiàn)R與S的連接。
(4) 除
給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的像集Yx包含S在Y上投影的集合。
對應(yīng)的SEL
ECT語句:
SELECT R.X FORM R R1 WHERE NOT EXISTS
(SELECT * FROM S WHERE NOT EXISTS(SELECT * FROM R R2 WHERE R2.X=R1.X AND R2.Y=S2.Y))
5結(jié)束語
通過對比法進(jìn)行關(guān)系代數(shù)運算的講解,把抽象問題轉(zhuǎn)換為學(xué)生易于理解的SELECT語句問題,由于SELECT語句很容易理解,學(xué)生也較快地掌握了關(guān)系代數(shù)運算的原理,實踐證明這種方法切實有效。
參考文獻(xiàn):
[1] 薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論(第三版)[M]. 北京:高等教育出版社,2000.55-63,84-133.
[2] 程媛. 關(guān)系代數(shù)中除法運算的表示[J]. 辦公自動化,2007,(22).
[3] 薛永寧. 如何用SQL語句實現(xiàn)關(guān)系代數(shù)的運算[J]. 中國科技信息,2007,(11).
[4] 呂震宇. 關(guān)系代數(shù)中“除法”運算的SQL查詢實現(xiàn)[J]. 河北理工學(xué)院學(xué)報,2005,(03).
[5] 李瑩. 關(guān)系代數(shù)運算與SQL查詢的對應(yīng)關(guān)系[J]. 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(自然科學(xué)版),2003,(03).
[6] 王群芳. 關(guān)系代數(shù)的相應(yīng)運算在SQL中的實現(xiàn)[J]. 安徽教育學(xué)院學(xué)報,2001,(06).
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文