国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)庫中關(guān)系代數(shù)除法運(yùn)算的教學(xué)研究

2017-09-01 02:26李正欣李克武張曉豐劉文杰
計(jì)算機(jī)教育 2017年8期

李正欣+李克武+張曉豐+劉文杰

摘 要:關(guān)系代數(shù)中的除法運(yùn)算是數(shù)據(jù)庫課程中的難點(diǎn)問題。文章從關(guān)系代數(shù)除法運(yùn)算的定義出發(fā),以實(shí)例為牽引,通過類比整數(shù)的除法運(yùn)算,闡明關(guān)系代數(shù)除法運(yùn)算的本質(zhì),給出除法運(yùn)算的基本運(yùn)算表達(dá)方法并用SQL語句實(shí)現(xiàn),突破除法運(yùn)算的難點(diǎn),以期取得較好的教學(xué)效果。

關(guān)鍵詞:關(guān)系數(shù)據(jù)庫;關(guān)系代數(shù);除法運(yùn)算;SQL

0 引 言

數(shù)據(jù)庫技術(shù)基礎(chǔ)及應(yīng)用是信息技術(shù)領(lǐng)域的骨干課程,具有理論基礎(chǔ)強(qiáng)和實(shí)踐應(yīng)用性突出的特點(diǎn)。關(guān)系代數(shù)是數(shù)據(jù)庫原理的核心部分之一,在整個課程體系中具有重要作用。關(guān)系代數(shù)以集合論為理論基礎(chǔ),可分為傳統(tǒng)的集合運(yùn)算——并、差、交、笛卡爾積,專門的關(guān)系運(yùn)算——投影、選擇、連接、除法[1]。在8種運(yùn)算中,除法運(yùn)算復(fù)雜、抽象,是教學(xué)環(huán)節(jié)中的難點(diǎn)問題,也使得學(xué)生理解起來比較困難。

1 除法運(yùn)算的過程詳解及示例

1.1 基本定義

給定關(guān)系R(X, Y)和S(Y, Z),其中X、Y、Z為屬性組, R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除法運(yùn)算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集YX包含S在Y上投影的集合[2],即

其中,YX表示x在R中的象集,x=tr[X]。

對于這一知識點(diǎn),教材主要從概念方面進(jìn)行描述,學(xué)生掌握起來比較困難。我們在非計(jì)算機(jī)專業(yè)的本科教學(xué)過程中,通過形象化的實(shí)例和深層次的分析,幫助學(xué)生透徹理解和掌握這一內(nèi)容。

1.2 過程詳解

通過實(shí)例說明除法運(yùn)算的求解過程,關(guān)系R、S如圖1所示,計(jì)算R÷S的結(jié)果[3]。

第一步,明確除法運(yùn)算定義中X、Y、Z對應(yīng)的屬性組。在關(guān)系R(姓名,科目)和關(guān)系S(課程,學(xué)時,學(xué)分)中,X={姓名},Y={課程}或{科目},Z={學(xué)時,學(xué)分}。

第二步,確定結(jié)果的關(guān)系模式。運(yùn)算結(jié)果的關(guān)系模式為P(姓名),結(jié)果關(guān)系的每一個元組都包含在中,如圖2所示。

第三步,計(jì)算。本例中的計(jì)算結(jié)果,如圖2所示。

第四步,確定象集YX。在關(guān)系R中,依次確定中(如圖2所示)每一個元組的象集,結(jié)果如圖3所示。

第五步,比較與象集YX的關(guān)系,得到除法運(yùn)算結(jié)果。僅有“張娟”對應(yīng)的象集滿足,如圖3所示,因此可得R÷S的計(jì)算結(jié)果,如圖4所示。

1.3 除法運(yùn)算的含義

從語義上理解除法運(yùn)算的含義,本例中表示所有的課程名稱,運(yùn)算結(jié)果的關(guān)系模式為P(姓名),表示學(xué)生姓名,因此R÷S表示在關(guān)系R中找出選修S中所有課程的學(xué)生。

為了便于理解,我們用整數(shù)除法作類比。兩個整數(shù)R和S,R÷S是滿足式(1)條件的最大整數(shù)P。

在關(guān)系代數(shù)中,除法運(yùn)算R÷S是滿足式(2)條件的最大關(guān)系實(shí)例P,即P與的笛卡兒積包含在關(guān)系R中,其中。

在本例中,包含3個元組{電子商務(wù),計(jì)算全息,經(jīng)濟(jì)法}。當(dāng)P分別為{張娟}、{王強(qiáng)}、{李云}時,的結(jié)果如圖5(a)—5(c)所示,只有圖5(a)的結(jié)果包含于R,因而P={張娟}是滿足條件式(2)最大的關(guān)系實(shí)例,即是R÷S的結(jié)果。

2 用非基本運(yùn)算表示除法運(yùn)算

除法運(yùn)算屬于非基本運(yùn)算,可以用基本運(yùn)算進(jìn)行等效表達(dá),見式(3)。表達(dá)式形式抽象、煩瑣且教材大多對這一內(nèi)容描述簡單,學(xué)生理解記憶起來比較困難[4]。教學(xué)中可利用實(shí)例,把抽象問題具體化,尋求對該知識點(diǎn)的突破。

實(shí)例中,R÷S表示“關(guān)系R中選修了S中所有課程的學(xué)生姓名”,用基本運(yùn)算求解。

第一步,計(jì)算R的投影,實(shí)例中 表示所有學(xué)生的姓名。

第二步,計(jì)算S的投影,實(shí)例中表示所有課程的名稱。

第三步,計(jì)算T×C中不在R中的元組V=T×C-R,實(shí)例中T×C表示關(guān)系“所有學(xué)生都選修了全部課程”,T×C-R表示“沒有選修全部課程的學(xué)生”。

第四步,計(jì)算V的投影,實(shí)例中表示“沒有選修全部課程的學(xué)生姓名”。

第五步,得出結(jié)果P=T-W,實(shí)例中P表示“選修全部課程的學(xué)生姓名”。

綜合以上步驟可得式(4),它表示“關(guān)系R中選修了S中所有課程的學(xué)生姓名”,等價于表達(dá)式R÷S。

3 用SQL語句表示除法運(yùn)算

關(guān)系代數(shù)是一種抽象的查詢語言,是SQL查詢的理論基礎(chǔ)。用SQL查詢實(shí)現(xiàn)關(guān)系代數(shù)中的除法運(yùn)算,通??墒褂脦в蠩XISTS謂詞的子查詢表示[5],該部分內(nèi)容也是SQL查詢中的一個難點(diǎn),查詢語句格式如圖6所示。

SQL中沒有全稱量詞,具體實(shí)現(xiàn)時,可以用雙嵌套NOT EXISTS實(shí)現(xiàn)帶全稱量詞的查詢。與實(shí)例等價的自然語義是輸出這樣的學(xué)生學(xué)號——不存在某門課程,在他的選課記錄里沒有選這門課。通過自然語義,對應(yīng)的SQL語句設(shè)計(jì)如圖7所示。

4 結(jié) 語

除法運(yùn)算的定義十分抽象,學(xué)生理解起來比較困難,是教學(xué)環(huán)節(jié)中的難點(diǎn)問題。我們從關(guān)系代數(shù)除法運(yùn)算的定義出發(fā),用整數(shù)除法對其進(jìn)行類比;然后,用基本運(yùn)算表示關(guān)系代數(shù)除法運(yùn)算,剖析其運(yùn)算本質(zhì);最后,引導(dǎo)學(xué)生操作SQL語句實(shí)現(xiàn)關(guān)系代數(shù)除法運(yùn)算。教學(xué)實(shí)踐表明,以具體實(shí)例為牽引,從概念到本質(zhì),再到實(shí)踐的教學(xué)過程,形象直觀地表達(dá)了關(guān)系代數(shù)除法運(yùn)算,解決了其抽象定義難以被學(xué)生理解的問題,有助于學(xué)生對知識點(diǎn)的透徹理解,取得了較好的教學(xué)效果。

參考文獻(xiàn):

[1] 劉國燊. 數(shù)據(jù)庫技術(shù)基礎(chǔ)及應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2008: 55-66.

[2] 陸熊, 陳燕, 黃曉梅, 等. 關(guān)系代數(shù)中除法運(yùn)算的教學(xué)探討[J]. 現(xiàn)代計(jì)算機(jī), 2011(5): 42-44.

[3] 姚普選. 數(shù)據(jù)庫系統(tǒng): 基礎(chǔ)、設(shè)計(jì)及應(yīng)用[M]. 西安: 西安電子科技大學(xué)出版社, 2013: 40-45.

[4] 楊海鵬, 徐志英. 關(guān)系代數(shù)教學(xué)中除法運(yùn)算的細(xì)節(jié)探討[J]. 吉林工程技術(shù)師范學(xué)院學(xué)報, 2014(1): 86-87.

[5] 肖海蓉. 關(guān)系代數(shù)中除法運(yùn)算與SQL中帶有exists子查詢的對比教學(xué)[J]. 電腦學(xué)習(xí), 2009(6): 158-159.

(編輯:宋文婷)

个旧市| 五大连池市| 三原县| 基隆市| 抚松县| 高碑店市| 独山县| 土默特右旗| 互助| 汤原县| 浪卡子县| 清水河县| 潍坊市| 韶山市| 元江| 股票| 玉屏| 屏东市| 渭源县| 正宁县| 临夏市| 札达县| 贵阳市| 越西县| 沙坪坝区| 曲阜市| 海林市| 改则县| 隆回县| 和静县| 襄城县| 黔西| 茌平县| 岗巴县| 翁牛特旗| 唐河县| 崇州市| 湘西| 宝山区| 洪泽县| 嘉荫县|