[中学教育]香港考试及评核局.doc

上传人:音乐台 文档编号:1970435 上传时间:2019-01-27 格式:DOC 页数:83 大小:2.11MB
返回 下载 相关 举报
[中学教育]香港考试及评核局.doc_第1页
第1页 / 共83页
[中学教育]香港考试及评核局.doc_第2页
第2页 / 共83页
[中学教育]香港考试及评核局.doc_第3页
第3页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[中学教育]香港考试及评核局.doc》由会员分享,可在线阅读,更多相关《[中学教育]香港考试及评核局.doc(83页珍藏版)》请在三一文库上搜索。

1、香港考試及評核局二零零八年香港高級程度會考高級補充程度電腦應用試卷二習作報告支援教學的電子教室系統尹俊東7A (28)目錄電子教學的目的數據庫簡介數據庫設計數據庫模式數據表創建()語句查詢網絡簡介網絡設計簡介選用主從式原因網絡設計硬件設備及費用表測試評估總結參考網頁及書籍電子教學的目的科技日新月異,一日千里,科技的發明為人們帶來不少方便。就以八達通為例,用途就如其名,只要帶著它就可以四通八達,為人們省卻了不少找換零錢和購買車票的時間,對於時間十分寶貴及生活節奏急速的香港人有百利而無一害。既然科技會為我們帶來方便,為我們節省時間,為我們提升效率,那麼,為何不把科技應用於與我們息息相關的教育呢?這

2、正是在學校裡使用電子教室系統的真正目的。二十一世紀,教育的課程已經不再著重於死記硬背,一味把資料往腦子裡塞,令學生當一個高容量的硬磁碟機。現今,教育真正著重於如何令學生懂得把知識靈活運用。能靈活運用學習得來的知識,才算是真正學懂知識。要令學生更透徹、更深刻地了解課程內容,單單以書本教授是不足夠的。利用更多生動有趣的教材,令抽象的理念變得實在,可以使學生有更深刻的記憶及了解,效果事半功倍。例如:在數學課,教師教導有關立方體構造的知識的時候,可以給同學紙張,讓他們嘗試製造一個立方體,從而令他們更深刻了解立方體的構造和原理。以此方法學習縱然較為生動有趣,卻引申出浪費紙張的問題。若然每一間學校也以這個

3、方法教授學生,一堂的時間內,全港便花費了多萬張白紙。更何況,現實中不止一種的立方體,若然每教導每一種立方體也用同樣此方法,浪費紙張的數目便會難以想像,更會遭受環保人士的抨擊。同時,要全班的學生同時用紙製造立方體,剪貼的時間也會浪費了不少寶貴的上課時間。有見及此,科技的應用絕對可以補助及解決此問題。老師可以嘗試使用一些能夠繪畫立方體的軟件,用以輔助教學。同時,亦可以租用電腦室,讓同學們一起在電腦中以程式嘗試繪畫立方體。教學過程同樣生動有趣,亦可解決浪費紙張的問題。而且,此方法更為方便,更為節省時間。上述例子解釋了在課室、在教育的過程中使用科技設施的好處,達到了生動有趣,環保及方便的效果。這應用對

4、低年級同學的效果更為顯著。生動有趣的教學內容可以更早提起他們對學科的興趣,打破過往沉悶的局面,使他們更用心向學,成績更進一步。當然,在學校應用電子教室系統的好處不止這些,這些好處只是冰山一角。對於一些身體患有殘障的人士更有莫大的幫助。年級愈高,課文的字數愈多,書本裡的字體愈來愈細,並且堆得密密麻麻,對一些患有弱視的同學極為不便。若然在課堂內應用電子教室系統,老師可在電腦內把課文的內容顯示出,同學們留意各自的電腦螢幕來閱讀文章內容,而患有弱視的同學則可以利用電腦內的放大鏡程式以數倍放大字體,協助理解文字內容。同樣地,患有色弱的同學亦可藉著改變電腦中文字色彩的對比度及深淺度來獲得更大的學習效果。此

5、情況下,電子教室系統的應用可以幫助到一些殘障人士,使他們與普通學生同樣享受到平等的學習環境及機會,同時能享受到學習的樂趣,達到學而無類。電子教室系統中可包含即時聊天室,讓同學可以對老師提出的討論問題即時發表意見。以文字表達及討論,有助減低課室的吵鬧程度,亦可鼓勵一些較為害羞而不敢舉手答問題的同學,對整體的學習氣氛有利。電子教室系統的應用並不限於任何科目,只要老師認為有需要則可使用。老師可在系統內編寫多項選擇題題目,讓學生在電腦裡完成。其後,由電腦預設的程式批改,如此一來,可減輕老師龐大的工作量,有助老師享受更多的閒暇處理私事或在空閒時重點協助個別學生。再者,設立電子教室能夠有效地供教師整合及管

6、理學習教材。因為教材有條理(圖片檔案及純文字類題目分開儲存)及分門別類地(按科目劃分)被儲存於學校萬維網伺服器的數據庫中。當學生或教師查詢學習教材時,便會更方便及能節省時間。同時,由於電子教室系統的真正目標對象是學生,故此其設計亦要以配合學生需要為大前題。例如程式的設計需設為用家友善的方式,以供學生方便明確地在網上找尋作業、找尋相關的資料或完成網上功課。在我們設計數據庫時,要考慮可能遇到的問題。首先,是解決設計上的問題。例如數據冗餘的問題,因為它會導致電腦資源被浪費和不一致的情況。其次,要解決分解的問題。例如在設計實體關聯圖時,要留意有否犯上多重值屬性、部分相依及遞移相依等的問題,以達至第一、

7、第二及第三範式。設計實體關聯圖後,我們便要設計數據庫模式,此時,要留意外鍵碼的位置及導引的方向是否正確。其後,要解決SQL語句(文法)的問題。我們使用SQL語句在數據表中加入實體、屬性及外鍵碼等相關的資料時,要小心設定數據的類別及其欄寬,以免導致數據冗餘或流失。同時亦要注意屬性是否有需要被設定為NOT NULL或AUTO INCREMENT。接著,我們可以利用SQL語句查詢所需的資料,例如學生的姓名,多項選擇題的命中率等。若要查詢成功,便要使用適合的SQL語句(文法),故此要先理解各語句的用法。然後,我們亦可以作其它的測試,例如測試它是否能在真正的數據庫運作,以確保所設計的數據庫的可行性。最後

8、,我們更可以進行評估並提出改良的建議方法,以藉此達至盡善盡美。當我們設計學校網絡時,亦要考慮可能遇到的問題。首先,要考慮效能的問題。我們要留意樽頸位的位置和來源,例如伺服器的效能、網絡的設計、電纜的頻寬及所用的技術,否則差劣的網絡設計會令網絡效能大大降低。此外,亦要考慮伺服器、工作站或網絡設備效能的問題,例如比較網絡媒介的優劣、了解衝突的問題及其解決方法。同時,我們亦要考慮頻寬的問題。其次,我們要考慮保安的問題,包括使用哪種網絡的架構(主從式或對等式),使用哪種防火牆或傳送數據時的保安問題。另外,我們亦要考慮使用哪種網絡佈局,比較各佈局的優劣及解釋為何選用如此佈局。最後,便要進行評估、測試及可

9、行性分析,例如輸入PING等的指令了解網絡內的工作站是否能互相溝通,以確保學校網絡設計的應用及可提出改良的建議方法。社會轉型,現今不再是勞力供給社會,而是知識型經濟社會,擁有知識的多寡影響未來在社會的競爭力。電子教室系統可以使學生有更多接觸電腦和相關科技的機會,認識科技內容更多,對其未來發展有重大的益處。綜合以上各點,電子教室系統對學生和老師均有莫大的幫助,此等理由亦成為以科技應用於教學,以電子教室系統輔助教學的真正目的。數據庫簡介現今,數據庫已經不是一個陌生的名字。基本上,每間大型或跨國的公司都必定有一個完善的數據庫作後盾,以紀錄龐大的數據及資訊作交易及供查核有關內容。而大型的數據庫公司則包

10、括Oracle或MySQL等等。建立數據庫的目的是要提高管理和存取效率。而建立關聯式數據庫的目的則是要維持數據的獨立性、完整性、減少數據冗餘、提高數據存取的安全性及管理的效率。數據獨立性就是數據庫的實質結構獨立於用戶需求。用戶可檢索和重新組織數據庫內的數據,然後提取資料。數據庫的實質結構獨立於應用程序,即增加、刪除或更改欄不會影響程序的運作。保持數據完整性即維持其正確性、準確性及有效性。正確性即是數據比較結果不能有錯。準確性就是數據精確程度高,不可有偏差。有效性即是數據在一定的時間內不可輕易改變。故此,數據庫內儲存必定是持久數據。即是不會經常改變的數據,例如:身份證號碼,出生日期,姓名等但是,

11、持久數據並不代表數據絕對不能改變,只是不會經常改變。故此,電話號碼縱然可被修改,但仍被紀錄在數據庫。數據冗餘即數據不必要地重覆儲存多於一個地方。冗餘的數據會增加存取數據的時間和空間,浪費資源。同時,新增紀錄時沒有所需位於有關表內的資料(新增異常),刪除紀錄令其他表內紀錄失去有關資料(刪除異常)或修改數據時,不同檔案的數據要隨之而更新,浪費不必要的人力物力。如果忘記修改某一檔案的數據,會出現不一致的情況(修改異常)。如下表所示:修改前修改後姓名班別性別缺值日期陳小明男2007/12/10陳小明男2007/12/15陳大明男2007/12/17姓名班別性別缺值日期陳小明男2007/12/10陳小明

12、男2007/12/15陳大明男2007/12/17若然忘記了修改全部有關的資料,數據冗餘便會引致不一致及導致整個數據庫的失誤。(不能確定陳小明就讀的是班還是班,還是和都各有一個陳小明)存取數據時,可以設定不同的權限(可選擇只開啟某一欄或某一筆紀錄),以提高數據存取的安全性及管理的效率(不用整個數據庫開啟,及避免特定機密資料外泄)。例如:學生可在數據庫內查詢各班別學生的姓名,卻不可以在數據庫內查詢各班別學生的電話號碼,相反,老師卻有更大的權限可查詢更多資料。一個數據表就是一個實體。一個實體內含多個獨特的實例。每一個實例即是每一筆紀錄。同時,一個實體內有一個或以上的屬性。每一個屬性(如姓名、性別等

13、)各佔一個欄位。數據表內其中一個獨特的屬性被稱為主鍵碼關鍵屬性,其值必須唯一,不可重覆,用以辨識各項紀錄。如果某一欄是另一數據表內的主關鍵碼,這欄被稱為外鍵碼。一個或以上的數據表連結在一起便成為一個數據庫。數據表間透過外鍵碼邏輯地連結起來,即關係是基於兩個實體之間的一個關鍵屬性的聯繫。其關係包括一對一、一對多和多對多,涉及最大基數。除此,關係更包括必定有和不一定有,涉及最小基數。一元關係涉及一個實體,而二元關係則涉及兩個實體。實體關係圖就是一個以數據組織於概念層的圖像表示。如下圖所示為例:上圖為一元關係圖。圖中只有一個實體(Employee)及一個關係(Lead)。如圖所示,一個員工(Empl

14、oyee)可以領導多於一人(最大基數大於),但不一定要領導人(最小基數為)。同時,一個員工只可以被一人領導(最大基數為),但不一定被人領導(最小基數為),例如:最高級的總經理不被人領導。上圖為二元關係圖。圖中有兩個實體(包括Student及School Activity)及一個關係(Participate)。如圖所示,一名學生(Student)可以參與多項學校活動(最大基數大於),但最少必定要參加一項(最小基數為)。一項學校活動(School Activity)可供多名學生參與(最大基數大於),但不一定有人參加(最小基數為)。以上就是一般最常見的一元及二元實體關係圖。若然要測試一些欄位(屬性)

15、是否配合該數據表,會否造成數據冗餘,可以以下方法測試。若然該欄位與主鍵的關係是一對一,且必須互相擁有對方,則它們應同屬一個數據表。若然兩者關係並非如此,同結合在一個表會造成數據冗餘。解決方法是把該屬性轉為一實體,並以外鍵連接。如下表所示。StudentStudent-IDSexHKID_numberStudentStudent-IDSexHKID_number0001MALES123456(7)0002FEMALEV132465(7)0003MALEW123478(6)學生編號(Student-ID)與學生性別(Sex)的關係為多對一。一個學生擁有一個性別(最大基數為),一個性別被多個學生擁有

16、(最大基數大於)。一個學生必須擁有一個性別(最小基數為),一個性別可以被多個學生擁有(最小基數為)。性別是重複出現的類別,若它們同時存在於一個數據表,會有數據冗餘的情況出現(不必要的重覆,浪費資源)。故此,可把屬性Sex抽出成為一個新的實體,及建立有關的主鍵碼Sex_ID,並在Student內加入一外鍵碼導向Sex_ID。學生編號(S-ID)與其身份證號碼(S-HKID_number)的關係為一對一。一個學生擁有一個身份證號碼(最大基數為),一個身份證號碼只能被一個學生擁有(最大基數為)。一個學生必須有一個身份證號碼(最小基數為),一個身份證號碼必須被一個學生擁有(最小基數為)。它依靠於一個主

17、鍵碼而不會有數據冗餘。故此,若實體關係為一對一,且必須互相擁有對方時,便可判定兩屬性該同屬一個數據表內(假設未考慮是否能達至第二及第三範式)。數據庫設計整個數據庫結構的分解共分為三個程序。第一程序(上圖所示),是建立基本的數據庫結構。第二程序,是分解多重值的屬性,以達至第一範式的要求。第三程序,是分解多對多的屬性關係,並修改可能的錯誤,以達至第二、三範式(多對多屬性關係形成的複合鍵碼可能會造成部分相依或遞移相依的問題)。整個結構主要分為五個主體。為了使讀者更容易辨識有關主體,故各設不同的顏色。第一個主體是學生Student,有關的實體、屬性及關係以紅色表示。第二個主體是教師Teacher,有關

18、的實體、屬性及關係以藍色表示。第三個主體是課程Course,有關的實體、屬性及關係以綠色表示。第四個主體是多項選擇題MC-Q,有關的實體、屬性及關係以黑色表示。第五個主體是投票Poll,有關的實體、屬性及關係以黃色表示。為避免視力殘障(如色弱)的教師或延續開發的人員不能分辨顏色而無法分辨五個主體,故實體及屬性的名稱均有特別安排。所有有關學生的實體及屬性均以S作開首名稱。而有關教師的實體及屬性均以T作開首名稱。有關課程的實體及屬性均以C作開首名稱。有關多項選擇題的實體及屬性均以MC作開首名稱。最後,有關投票的實體及屬性均以Poll作開首名稱。此設計除了有助視力殘障的老師或延續開發的人員分辨五個主

19、體外,更有助管理人員較方便管理及提取數據及避免混亂(若教師的出生日期T-DOB前不加T-,或學生的出生日期S-DOB前不加S-,易造成兩個屬性的混淆)。此外,每個實體或屬性均配以不同的名稱,以防SQL查詢時的錯誤。如教師職位的屬性名稱是T-Position而學生職位的屬性名稱則為S-Position。最後,以下被分割的數據庫設計圖(用以仔細介紹各主體)均由總數據庫設計圖套索取出,並刪去與該主體無關的部分。此舉有助方便讀者專注理解及減少不必要的翻頁時間,達至用家友善User Friendly,方便讀者。首先,介紹第一個主體(學生)。一個學生有很多不同類型的資料供記錄。例如學生編號(S-ID),學

20、生名稱(S-Name),學生出生日期(S-DOB),學生地址(S-Address),學生所屬的社(S-House),學生性別(S-Sex),學生身份證號碼(S-HKID_number),學生聯絡電話號碼(S-Contact_number)及學生擔任職位(S-Position)。其中,由於學生編號為唯一的紀錄(不會重覆),故此設為這個實體的主關鍵碼(學生身份證號碼亦可作為後選鍵碼)。而學生聯絡電話號碼及學生擔任職位均為多重值,意味在一筆紀錄中,一個屬性有多於一個結果顯示。即一個學生可擔任數個職位或擁有多個聯絡電話(方便在學生發生事故後立即通知其親人)。如下表所示。S-IDS-Contact_nu

21、mber12345623456789,98765432,2112334521333398765412多重值多重屬性會導致不必要的數據顯示(不能只顯示手提電話號碼)及造成數據冗餘(浪費欄寬及電腦資源)。故此,多重值會在後期的數據庫設計圖中被分解消除,以達至第一範式。其次,介紹第二個主體(教師)。數據表內儲存了教師編號(T-ID),教師名稱(T-Name),教師出生日期(T-DOB),教師地址(T-Address),教師性別(T-Sex),教師身份證號碼(T-HKID_number),教師聯絡電話號碼(T-Contact_number)及教師擔任職位(T-Position)。其中,教師編號及教師身

22、份證號碼均為唯一的紀錄,分別作為主關鍵碼及後選鍵碼。而教師聯絡電話號碼及教師擔任職位均為多重值,後期會被分解消除。接著,介紹第三個主體(課程)。這個主體主要由兩個實體組成,分別是科目C-Subject及課程C-Course。課程紀錄了其班房位置(C-Location)(有助流動班,即不固定班房的學生找尋上課地點),課程名稱C-Name及課程編號C-ID,當中C-ID為這個實體的主關鍵碼。科目紀錄了科目名稱C-Subject_name(如經濟、地理及數學),科目授課語言C-subject-language(如粵語、英語及普通話)及科目編號C-Subject_ID。科目編號為科目的主關鍵碼。其後,

23、介紹第四個主體(多項選擇題)。實體(MC-Q)儲存了選擇題編號(MC-Q_ID),選擇題問題(MC-Question),選擇題的選擇(MC-Option),選擇題時限(MC-Time-limitation)及選擇題答案(MC-Answer)。而屬性(Do)則儲存了學生的選擇(MC-Choice)及作答所需時間(MC-Time-used)。當中,選擇題答案(MC-Answer)所儲存的是選擇題的選擇編號(MC-Option_ID)(會在分解多重值後出現),以便校對答案是否正確。學生作答所需時間若超過選擇題時限,則該題會被扣分,可訓練學生時間運用的技巧。選擇題編號(MC-Q_ID)為主關鍵碼,而選

24、擇題的選擇(MC-Option)為多重值,即一筆記錄中儲存了所有可供選擇的項目。多重值要被分解,否則,數據庫不能分辨每一項選項,只能理解為一大堆文字及造成欄寬的浪費,而屬性的類型亦可能要編為MEMO或TEXT,導致非必要的檔案(純文字文件檔)產生,檔案易亦流失。同時,由於實體關係Do內包含屬性,亦要在後期分解。最後一個主體是投票。投票有助反映學生的意見取向,幫助學校了解學生所需,從而實行更有效的政策。實體Poll儲存了投票選擇Poll-Option、投票問題Poll-Question及投票編號Poll_ID。而關係Vote,則儲存了學生投票的選擇Poll-Choice。投票編號Poll_ID為

25、這個實體Poll的主關鍵碼,而投票選擇Poll-Option為多重值,即一筆記錄中儲存了所有可供選擇的選擇。多重值要被分解,否則,數據庫不能分辨每一項選項,只能理解為一大堆文字及造成欄寬的浪費,而屬性的類型亦可能要編為MEMO或TEXT,導致非必要的檔案(純文字文件檔)產生,檔案易亦流失。實體關係Vote內亦儲有屬性Poll-Choice,均要被分解。學生S-Student與課程C-Course的關係是多對多。意味每一個學生必須要上多個課程,每一個課程都必須有多個學生,否則課程不會存在,兩者之間的關係就是學習Study。教師T-Teacher與課程C-Course的關係是一對多。意味一個教師必

26、須教導多於一個課程(例如一個教師需同時負責教導班英文及班英文),而一班必須有一個教師。兩者之間的關係就是教導Teaches。課程C-Course與科目C-Subject的關係是多對一。意味一個課程必定有一個科目,一個科目可能有多個課程(例如高級程度經濟可供中六及中七兩級的課程,沒有課程的科目不需儲存在數據庫)。兩者之間的關係就是擁有Has。課程C-Course與投票Poll的關係是多對一。意味一個課程可能有多於一個投票,亦可能沒有投票。一個投票必須有一個課程,否則不可能存在。兩者的關係是擁有Has。學生S-Student與投票Poll的關係是多對多。意味一個學生可以有多項投票,亦可以不投票。一

27、項投票可以有多個學生投,一項投票亦可能不被學生投。兩者的關係是投票Vote,內儲有學生投票的選擇Poll-Choice。課程C-course與多項選擇題MC-Q的關係是一對多。意味一個課程可以有多個多項選擇題,亦可能沒有(例如會計科沒有多項選擇題)。一個多項選擇題必須被一個課程擁有,沒有課程的多項選擇題不可能存在。兩者之間的關係是擁有Has。學生S-Student與多項選擇題MC-Q的關係是多對多。意味一個學生必須完成多於一個的多項選擇題,而一個多項選擇題必須被多個學生完成。因為這是強制性的家課或堂課,同學必須完成。兩者的關係是做Do,關係內儲存了學生的多項選擇題選擇MC-Choice及所需時

28、間MC-Time-used。數據庫的基本結構已經完成。接著,就是分解多重值,以達至數據庫規範的第一範式。這是分解多重值後的數據庫結構圖。分解多重值的方法是建立一個新的數據表(實體)去代表該多重值的屬性(欄),並在數據表中加入外鍵碼導向相配的主鍵碼。分解多重值的過程中,首先分解學生這個主體。一個學生可以有多個聯絡電話號碼及多個職位,為多重值,故要分解。分解的方法是把多重值屬性變成實體並建立一個關係去連接它們。如上圖所示。S-Contact_number由屬性變成實體。實體內有兩個屬性,分別是學生聯絡電話編號S-Contact_number_ID及學生聯絡電話內容S-CON-Content。S-C

29、ontact_number_ID為S-Contact_number的主關鍵碼。Student與S-Contact_number的關係為Has,一個學生可以有多個聯絡電話,一個聯絡電話只可以被一個學生所擁有。其關係是一對多。(這個簡化了的設計假設忽略了同一家庭兄弟入讀同一學校的情況),若同一家庭兄弟入讀同一學校的情況都計算在內,則同一電話號碼會出現多於一次,各配以不同的S-Contact_number_ID。一個學生必須要有聯絡電話。一個聯絡電話必須被學生所擁有。若要處理這個現實的問題,則需要把該關係定義為多對多的關係。而S-Position亦由屬性變成實體。實體內有兩個屬性,分別是學生職位編號

30、S-Position_ID及學生職位內容S-POS-Content。S-Position_ID為S-Position的主關鍵碼。Student與S-Position的關係為Has,一個學生可以有多個職位(如社長、班長),一個職位可以被多個學生所擁有。其關係是多對多。一個學生最少有一個職位(如學生),一個職位必須被人擁有。其次,分解教師這個主體。一個教師可以有多個聯絡電話號碼及多個職位,為多重值,故要分解。分解的方法是把多重值屬性變成實體並建立一關係連接它們。如上圖所示。T-Contact_number由屬性變成實體。實體內有兩個屬性,分別是教師聯絡電話編號T-Contact_number_ID

31、及教師聯絡電話內容T-CON-Content。T-Contact_number_ID為T-Contact_number的主關鍵碼。Teacher與T-Contact_number的關係為Has,一個教師可以有多個聯絡電話,一個聯絡電話只可以被一個教師擁有。其關係是一對多。(圖中假設忽略了同一家庭兄弟姊妹或夫婦任教同一學校的情況),若連同一家庭兄弟任教同一學校的情況都計算在內,則同一電話號碼會出現多於一次,並各配以不同的教師聯絡電話編號T-Contact_number_ID。一個教師必須要有聯絡電話。一個聯絡電話必須被教師所擁有。若要處理這個現實的問題,則需把該關係定義為多對多的關係。而T-Po

32、sition亦由屬性變成實體。實體內有兩個屬性,分別是教師職位編號T-Position_ID及教師職位內容T-POS-Content。T-Position_ID為T-Position的主關鍵碼。Teacher與T-Position的關係為Has,一個教師可以有多個職位(如學生事務聯絡主任,副校長),一個職位可以被多個教師所擁有。其關係是多對多。一個教師最少有一個職位(如教師),一個現存的職位必須被人擁有。再者,分解多項選擇題這個主體。一條多項選擇題可以有多個多項選擇題的選擇,為多重值,故要分解。分解的方法是把多重值屬性變成實體並建立一關係連接它們。如上圖所示。MC-Option由屬性變成實體。

33、實體內有兩個屬性,分別是多項選擇題編號MC-Option_ID及多項選擇題內容MC-Content。MC-Option_ID為MC-Option的主關鍵碼。MC-Q與MC-Option的關係為Has,一條多項選擇題可以有多個選項,一個選項只可以被一條多項選擇題擁有。其關係是一對多。一條多項選擇題必須有選項,一個選項必須被多項選擇題擁有。最後,分解投票這個主體。一項投票可以有多個投票選擇,為多重值,故要分解。分解的方法是把多重值屬性變成實體並建立一關係連接它們。如上圖所示。Poll-Option由屬性變成實體。實體內有兩個屬性,分別是多項選擇題編號Poll-Option_ID及多項選擇題內容Po

34、ll-Content。Poll-Option_ID為Poll-Option的主關鍵碼。Poll與Poll-Option的關係為Has,一項投票可以有多個選擇,一個選擇只可以被一項投票擁有。其關係是一對多。一項投票必須有選擇,一個選擇必須被投票擁有。這是分解實體多對多關係後的數據庫結構圖。這個數據庫內只有二元多對多關係而沒有一元多對多關係,故只要分解二元多對多關係即可。同時,實體間的一對多關係亦要有所改動(在實體多的一方建立一外鍵碼導向實體一的一方的主鍵碼),如此一來,便可防止更新異常。實體的二元多對多關係需要被分解。否則,會出現不必要的數據冗餘或數據不一致。解決方法是把多對多關係分解成兩個一對

35、多關係(原來的關係變成了新的實體),新的實體包含了兩個外鍵碼作為它的複合主鍵碼。複合主鍵碼的出現,可能會造成部分相依的問題。故此,建立或分解有關的數據表屬性時要謹慎處理,避免犯上錯誤,以達至第二範式。同時,檢測部分相依的問題只需在存有複合鍵碼的數據表便可,不用檢查所有表。第二範式既是第一範式,除此,更要消除部分相依的屬性,即所有非關鍵屬性都會相依到整個主關鍵屬性(如果沒有複合屬性,則第一範式自動成為第二範式)。下表為錯誤示範。STUDENTStudent_IDStudent NameCourse_IDCourse NameStudent Sex上表,Student_ID與Course_ID為複

36、合主關鍵碼(部分相依的問題只在於有複合鍵碼的實體中)。學生姓名Student Name與學生性別Student Sex實際只是相依於學生編號Student_ID,並非相依於課程編號Course_ID。而課程名稱Course Name只相依於課程編號Course_ID,並非相依於學生編號Student_ID。為解決錯誤,故此,要將此數據表分解成多個細小的數據表以分門別類儲存數據,使所有非關鍵碼都相依到對應的整個主關鍵碼,以減少數據冗餘及不一致的情況出現。如下表所示:StudentStudent_IDStudent NameStudent SexStudyStudent_IDCourse_IDCo

37、urseCourse_IDCourse Name學習Study為新建立的數據表(實體)。它儲存了學生編號Student_ID及課程編號Course_ID,以學生編號和課程編號作為這個表的複合主關鍵碼。同時亦為那原來兩個表的外鍵碼。這樣,就解決了部分相依的問題,達至第二範式。第三範式是要除去遞移相依。遞移相依即是數據表內一個屬性相依在一個非主關鍵屬性上,而非直接相依於主關鍵屬性。下表為錯誤示範。ProductProduct IDProduct NameGodown IDAddressProductProduct IDProduct NameGodown IDAddress001Pen001ABC

38、 Road002Pencil001ABC Road003Pencil-box001ABC Road上表,目的地編號Godown_ID為一非關鍵屬性。地址Address是相依於Godown_ID而非相依於主關鍵屬性Product ID。故此,出現了不必要的數據冗餘(ABC Road不斷重覆),修改時容易改漏而出現不一致的情況。為消除遞移相依及達至第三範式,故要將此數據表分解成多個細小的數據表去代表,使所有的非關鍵碼都相依到對應的整個主關鍵碼,以減少不一致的情況出現。如下表所示(假設一件產品只有一個目的地,一個目的地可以有多項產品)。ProductProduct IDProduct NameGod

39、own IDGodownGodown IDAddress如表所示,建立了新一個數據表。產品Product的數據表中存有Godown ID的外鍵碼作連接。這樣,所有非關鍵碼都相依到對應的整個主關鍵碼,沒有遞移相依的情況出現,達至第三範式。原本S-Student與S-Position的關係為二元多對多關係,故要分解。原本的關係Has變成實體S-Belonging。S-Belonging的主關鍵碼是一個複合鍵碼,由S-ID及S-Position_ID的外鍵碼組成。分解後,S-Student與S-Belonging的關係為一對多,且必須互相擁有。其之間的關係為IS。而S-Belonging與S-Pos

40、ition的關係為多對一,且必須互相擁有。其之間的關係亦同樣為IS。實體S-Student與實體S-Contact_number的關係為一對多,故要在實體S-Contact_number(多的一方)中建立一外鍵碼S-ID,導引向S-Student(一的那方)的主關鍵碼S-ID。原本T-Teacher與T-Position的關係為二元多對多關係,故要分解。原本的關係Has變成實體T-Belonging。T-Belonging的主關鍵碼是一個複合鍵碼,由T-ID及T-Position_ID的外鍵碼組成。分解後,T-Teacher與T-Belonging的關係為一對多,且必須互相擁有。其之間的關係為

41、IS。而T-Belonging與T-Position的關係為多對一,且必須互相擁有。其之間的關係亦同樣為IS。實體T-Teacher與實體T-Contact_number的關係為一對多,故要在實體T-Contact_number(多的一方)中建立一外鍵碼T-ID,導引向T-Teacher(一的那方)的主關鍵碼T-ID。這個有關課程的圖中只有實體一對多關係,而沒有實體多對多關係。故只要在實體C-Course(多的一方)中建立一外鍵碼C-Subject_ID,導引向C-Subject(一的那方)的主關鍵碼C-Subject_ID即可。原本MC-Q與S-Student的關係為二元多對多關係,故要分解

42、。原本的關係Do變成實體MC-Attempt。MC-Attempt的主關鍵碼是一個複合鍵碼,由MC-Q_ID及S-ID的外鍵碼組成。嘗試MC-Attempt,內儲有學生所選的多項選擇題選擇MC-Choice及所需時間MC-Time-used。分解後,S-Student與MC-Attempt的關係為一對多,且必須互相擁有。其之間的關係為Has。而MC-Attempt與MC-Q的關係則為多對一,且必須互相擁有。其之間的關係亦同樣為Has。實體MC-Q與實體MC-Option的關係為一對多,故要在實體MC-Option(多的一方)中建立一外鍵碼MC-Q_ID,導引向MC-Q(一的那方)的主關鍵碼MC

43、-Q_ID。實體MC-Q與實體C-Course的關係為多對一,故要在實體MC-Q(多的一方)中建立一外鍵碼C-ID,導引向C-Course(一的那方)的主關鍵碼C-ID。原本Poll與S-Student的關係為二元多對多關係,故要分解。原本的關係Vote變成實體Poll-Voting。Poll-Voting的主關鍵碼是一個複合鍵碼,由Poll_ID及S-ID的外鍵碼組成。投票Poll-Voting,內儲有學生所選的投票選擇Poll-Choice。分解後,S-Student與Poll-Voting的關係為一對多。一個學生不一定要有投票,一項投票必須有一個學生。其之間的關係為Has。而Poll-V

44、oting與Poll的關係則為多對一,且必須互相擁有。其之間的關係亦同樣為Has。實體Poll與實體Poll-Option的關係為一對多,故要在實體Poll-Option(多的一方)中建立一外鍵碼Poll_ID,導引向Poll(一的那方)的主關鍵碼Poll_ID。實體Poll與實體C-Course的關係為多對一,故要在實體Poll(多的一方)中建立一外鍵碼C-ID,導引向C-Course(一的那方)的主關鍵碼C-ID。數據庫模式以下為數據庫模式(Database Schema)。首先處理與學生這個主體(所有紅色)有關的數據表。這些表格有助了解外鍵碼的分配。S-PositionS-Position_IDS-POS-ContentS-BelongingS-IDS-Position_IDS-StudentS-IDS-NameS-SexS-DOBS-AddressS-HouseS-HKID_numberS-Contact_numberS-Contact_number_IDS-CON-ContentS-IDS-StudyS-IDC-IDC-CourseC-IDC-NameC-LocationC-Subject_IDT-ID其次,處理與教師這個主體(所有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1