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