2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析_第1頁
2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析_第2頁
2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析_第3頁
2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析_第4頁
2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2023年“數(shù)據(jù)庫原理”課程中關(guān)系代數(shù)的重難點(diǎn)分析

打開文本圖片集

摘要:“數(shù)據(jù)庫原理”課程是廣西師范大學(xué)計算機(jī)科學(xué)與信息工程學(xué)院計算機(jī)專業(yè)及信息管理專業(yè)本科生的必修課,關(guān)系代數(shù)中的“除”運(yùn)算是該課程的一個重難點(diǎn)。文章結(jié)合筆者多年的教學(xué)研究和實踐,對關(guān)系代數(shù)“除”運(yùn)算的教學(xué)進(jìn)行了探討,希望能夠有益于該課程教學(xué)的研究。

關(guān)鍵詞:“數(shù)據(jù)庫原理”課程教學(xué);關(guān)系代數(shù);“除”運(yùn)算;包含

廣西師范大學(xué)計算機(jī)科學(xué)與信息工程學(xué)院在學(xué)生大二時會開設(shè)必修課程—“數(shù)據(jù)庫原理”。課程目標(biāo)是使學(xué)生掌握數(shù)據(jù)庫技術(shù)相關(guān)概念、理論和方法,并具有一定的數(shù)據(jù)庫系統(tǒng)設(shè)計能力,為下面開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)打下良好的基礎(chǔ)[1]。課程的用書是中國人民大學(xué)王珊[2]老師的國家精品課程團(tuán)隊編寫的教材—《數(shù)據(jù)庫系統(tǒng)概論》,高等教育出版社出版,已經(jīng)到了第5版。教材比較簡潔,比如在講解“除”運(yùn)算時,首先講了“除”運(yùn)算的定義,然后給了3個“除”運(yùn)算的例題就結(jié)束了。這個臺階跨度太大,很多學(xué)生不好理解,表現(xiàn)為“除”運(yùn)算的題目做不出。為了讓學(xué)生上得去,好理解,老師的作用就是在中間多加幾級臺階。筆者加的第1級臺階是:講解“除”運(yùn)算的由來及用處,引發(fā)學(xué)生學(xué)習(xí)興趣;第2級臺階:將“除”運(yùn)算題目分成兩類,分別講解解決方法,對癥下藥;第3級臺階:及時總結(jié),并對學(xué)生的易錯點(diǎn)進(jìn)行錯誤原因講解,鼓勵學(xué)生學(xué)好這個重難點(diǎn)。以下為具體的授課過程。

1關(guān)系代數(shù)中“除”運(yùn)算的由來及用處探討,引發(fā)學(xué)生學(xué)習(xí)興趣

由一道除法題引出思考:9÷2=4…1是什么意思?商等于4,表示被除數(shù)9里面包含有4個除數(shù)2。還剩下1沒有完全包含一個2,只包含了部分,所以1是余數(shù)。即“除”有包含(覆蓋)的意思。總結(jié)推廣到二維表(關(guān)系)做“除”運(yùn)算,是在二維上實現(xiàn)包含(覆蓋)的含義。即在一個大表中找包含(覆蓋)了一個小表的運(yùn)算。為了好讓學(xué)生理解,補(bǔ)充以下例子。

補(bǔ)充例子(“除”運(yùn)算的實際應(yīng)用)如下:我們有選修情況表SCG表(見表1),包括姓名、性別、課程名稱、院系、成績屬性,若想查詢有哪些同學(xué)的離散數(shù)學(xué)課程得了優(yōu)且數(shù)據(jù)結(jié)構(gòu)課程也是優(yōu)?即,誰的選修情況包含(覆蓋)了以下的CG表(見表2),這時就需要用到除法:SCG÷CG。

2將“除”運(yùn)算題目分成兩類,分別講解解決方法

2.1“除”運(yùn)算的定義

下面給出關(guān)系代數(shù)中“除”運(yùn)算的明確定義,在教材55頁。首先復(fù)習(xí)以前學(xué)過的象集Zx的概念,在教材51頁。

“除”運(yùn)算定義:給定關(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上投影的集合,記作:R÷S={tr[X]"tr∈R∧πY(S)?Yx}。Yx:x在R中的象集,x=tr[X]。

講解該概念要注意的地方:關(guān)系R的所有屬性被分成了X和Y兩個屬性組(或叫屬性集),S的所有屬性被分成了Y和Z兩個屬性組。關(guān)系R和S有公共屬性組Y,也就是要求要覆蓋的部分,Y結(jié)構(gòu)要相同,體現(xiàn)在其屬性個數(shù)、屬性的類型長度等相同。該定義即為求解第一類題目—求“除”運(yùn)算結(jié)果的解題步驟。

2.2第一類題目—求“除”運(yùn)算結(jié)果

總結(jié)第一類題目解題步驟,從二維表的行、列兩個方向來控制“除”運(yùn)算的結(jié)果。

(1)首先求屬性列:先找出公共屬性Y,則R÷S的屬性列是大表(被除數(shù))R的屬性差掉公共屬性后剩余的屬性X。

(2)再求元組記錄行:分成3步。

①求元組在X上分量值x的象集Yx。

②S在Y上投影的集合。

③誰的象集Yx包含投影,則為結(jié)果元組行。

以下為補(bǔ)充例子解題步驟,SCG÷CG=?

(1)首先求屬性列:首先找公共屬性組Y={CNAME,GRADE},則X={SNAME,SEX,DEPT},Z為空。所以SCG÷CG的屬性列是大表SCG(被除數(shù))的屬性差掉公共屬性,即結(jié)果為屬性組{SNAME,SEX,DEPT}。

(2)再求元組記錄行。

①在關(guān)系SCG中,{SNAME,SEX,DEPT}可以取4個值{(李明,男,通信),(劉月瑩,女,計算機(jī)),(吳康,男,通信),(王文晴,女,計算機(jī))},分別設(shè)為a1,a2,a3,a4,則

a1的象集為{(離散數(shù)學(xué),優(yōu)),(數(shù)據(jù)結(jié)構(gòu),優(yōu)),(高等數(shù)學(xué),良)}

a2的象集為{(離散數(shù)學(xué),良),(數(shù)據(jù)結(jié)構(gòu),優(yōu))}

a3的象集為{(離散數(shù)學(xué),優(yōu)),(高等數(shù)學(xué),良)}

a4的象集為{(數(shù)據(jù)結(jié)構(gòu),優(yōu)),(離散數(shù)學(xué),優(yōu))}

②CG在公共屬性(CNAME,GRADE)上的投影為:{(離散數(shù)學(xué),優(yōu)),(數(shù)據(jù)結(jié)構(gòu),優(yōu))}

③(李明,男,通信),(王文晴,女,計算機(jī))的象集包含了CG在公共屬性(CNAME,GRADE)上的投影,所以,SCG÷CG結(jié)果:

總結(jié):劉月瑩和吳康都是余數(shù),沒有除盡,因為他們的象集只包含了一部分{(離散數(shù)學(xué),優(yōu)),(數(shù)據(jù)結(jié)構(gòu),優(yōu))},沒有完全包含。

同樣可以求解教材例題,[例2.9]設(shè)關(guān)系R和S,求R÷S的結(jié)果。

2.3第二類題目—構(gòu)造“除”運(yùn)算

有教材51頁的學(xué)生—課程數(shù)據(jù)庫:包括學(xué)生關(guān)系Student(Sno,Sname,Ssex,Sage,Sdept),課程關(guān)系Course(Cno,Cname,Cpno,Ccredit)和選修關(guān)系SC(Sno,Cno,Grade)。[例2.13]對學(xué)生—課程數(shù)據(jù)庫,用關(guān)系代數(shù)表達(dá)式表達(dá)查詢:選修了全部課程的學(xué)生號碼和姓名??偨Y(jié)第二類題目解題步驟:

(1)判斷是否用“除”運(yùn)算。題目中有“全部”“所有”的字眼時,要求在一個大表中要包含(覆蓋)一個小表時用“除”運(yùn)算。

(2)構(gòu)造“除”運(yùn)算的大表(即被除數(shù))和要包含(覆蓋)的小表(除數(shù))的元組行。

(3)構(gòu)造兩個表包括的屬性,使大表屬性差掉公共屬性即為所求屬性列。

用以上步驟做[例2.13]:

(1)判斷是否用“除”運(yùn)算。題目要求查詢:誰的選修情況包含(覆蓋)了所有課程,所以要用“除”運(yùn)算。

(2)構(gòu)造大表(被除數(shù))和小表(除數(shù))元組行:大表是所有同學(xué)的選修情況SC表,小表是所有的課程情況Course表,求學(xué)生號碼和姓名。先求學(xué)生號碼。寫出SC÷Course。

(3)構(gòu)造兩個表包括的屬性,使大表屬性差掉公共屬性即為所求屬性列:

πSno,Cno(SC)÷πCno(Course)

(4)學(xué)號是學(xué)生的主鍵,當(dāng)學(xué)生的學(xué)號確定了,與學(xué)生基本情況表Student表自然連接,就能獲得該學(xué)生的姓名等信息了。

πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)

3易錯點(diǎn):“除”運(yùn)算與“選擇”運(yùn)算的區(qū)別

在補(bǔ)充例子SCG表,若要覆蓋、包含以下的L表,應(yīng)該用“除”運(yùn)算SCG÷L。若要覆蓋、包含以下的K表,應(yīng)該用“選擇”運(yùn)算σCNAME=‘離散數(shù)學(xué)’^GRADE=‘優(yōu)’(SCG)。

總結(jié):因為一個表的當(dāng)前記錄指針只有一個,所以只要包含(覆蓋)的信息只涉及一條元組時,用“選擇”運(yùn)算;要包含(覆蓋)兩條及以上元組時,則用“除”運(yùn)算。

4結(jié)語

關(guān)系“除”運(yùn)算是關(guān)系代數(shù)中最難的一種運(yùn)算。在教學(xué)中,筆者總結(jié)了一種求“除”運(yùn)算結(jié)果的步驟和一種構(gòu)造“除”運(yùn)算表達(dá)式來實現(xiàn)查詢的方法及技巧,并對學(xué)生易錯點(diǎn):“除”運(yùn)算與“選擇”運(yùn)算的區(qū)別進(jìn)行了探討。經(jīng)過課堂教學(xué)證明

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論