【摘要】Visual FoxPro(VFP)關(guān)系數(shù)據(jù)庫系統(tǒng)是全國高等學(xué)校計算機等級考試科目之一,是新一代小型數(shù)據(jù)庫管理系統(tǒng)的杰出代表。本文探討了如何在VFP數(shù)據(jù)庫設(shè)計中應(yīng)用研究性教學(xué)。
【關(guān)鍵詞】VFP語言;研究性教學(xué);數(shù)據(jù)庫系統(tǒng)
【中圖分類號】G420 【文獻標識碼】B 【文章編號】2095-3089(2017)14-0019-02
VFP是新一代小型數(shù)據(jù)庫管理系統(tǒng)的杰出代表,它以強大的功能、完整而又豐富的工具、較高的處理速度、友好的界面以及較完備的兼容性等特點,深受廣大用戶的歡迎。目前,VFP是用戶收集信息、查詢數(shù)據(jù)、創(chuàng)建數(shù)據(jù)庫系統(tǒng)、進行應(yīng)用系統(tǒng)開發(fā)較為理想的微機數(shù)據(jù)庫管理系統(tǒng)。筆者認為,在VFP的教學(xué)中,數(shù)據(jù)庫設(shè)計是一個很重要的教學(xué)點。只有采用較好的數(shù)據(jù)庫設(shè)計,才能迅速高效地創(chuàng)建一個設(shè)計完善的數(shù)據(jù)庫,為訪問所需信息提供方便。下面,我就結(jié)合自己的教學(xué)經(jīng)驗,談?wù)勅绾螌⒀芯啃越虒W(xué)思想應(yīng)用在數(shù)據(jù)庫設(shè)計中,以便提高學(xué)生的思維能力、實驗?zāi)芰?、最終取得較好的教學(xué)效果。
設(shè)計數(shù)據(jù)庫有5個步驟:明確建立數(shù)據(jù)庫的目的、確定需要的表、確定表中字段、建立表之間的關(guān)系、改進設(shè)計。
一、明確建立數(shù)據(jù)庫的目的
這一步主要是進行需求分析,以便確定數(shù)據(jù)庫中需要保存哪些信息。例如,用戶需要錄入哪些信息,需要從數(shù)據(jù)庫中得到怎樣的結(jié)果,可以啟發(fā)學(xué)生從信息需求、處理需求、安全性和完整性要求三方面著手來分析。信息需求即是用戶要從數(shù)據(jù)庫中獲得的信息。比如我們在建立“教學(xué)管理數(shù)據(jù)庫”時,應(yīng)該提供教師、學(xué)生、課程、任課、班級、專業(yè)、成績等與教學(xué)管理有關(guān)的信息。處理需求指需要對數(shù)據(jù)完成什么處理功能及處理的方式。安全性是指數(shù)據(jù)的保密性控制,例如用戶需要驗明身份后才能進入系統(tǒng),對某些特定的數(shù)據(jù)限定使用權(quán)限,對不同的操作采用不同的保護級別,采用密碼方式存放數(shù)據(jù)等。完整性控制指利用某些條件判斷來排除不正確的數(shù)據(jù),它包括正確性、有效性、相容性的控制。
二、確定需要的表
這是數(shù)據(jù)庫設(shè)計過程中技巧性最強的一步。以教學(xué)管理數(shù)據(jù)庫為例,要涉及教師、課程和任課等情況,如果把教師、課程和任課信息放在一張表中,就勢必會造成信息的重復(fù)。而大量信息的重復(fù)會導(dǎo)致以下后果:錄入工作量增大,重復(fù)數(shù)據(jù)的錄入又會造成數(shù)據(jù)的不一致性,容易出現(xiàn)孤立記錄。因此,要盡量避免在一張表中存儲重復(fù)的信息。在本例中,可以設(shè)置三張表分別存放教師、課程和任課的信息。這一步在課堂上可以先展示一張包含教師、課程、任課信息的一張表,然后讓學(xué)生找出表的不足之處,再啟發(fā)學(xué)生回答重復(fù)信息帶來的后果。
三、確定表中字段
第一是要確保每個字段都直接和表的主題相關(guān)。例如課程表中應(yīng)含有課程號、課程名、課時數(shù)、必修課、學(xué)分等字段。教師表中應(yīng)含有教師號、教師名、性別、工齡、出生日期、職稱、教師簡歷、教師照片等字段。第二是以最小的邏輯單位存儲信息。如果一個字段中結(jié)合了多種信息,以后要獲取單獨的信息就會很困難。第三是不要包含可推導(dǎo)得到的字段。例如,在工資表中包含了基本工資、崗位工資、職務(wù)津貼,公積金,水費、電費等字段,就不必有應(yīng)發(fā)工資字段,因為應(yīng)發(fā)工資可以通過以上字段計算出來。第四每張表都必須確定主關(guān)鍵字段。它用以唯一確定存儲在表中的每個記錄。例如教師表中的主關(guān)鍵字是教師號,課程表中的主關(guān)鍵字是課程號,任課表中的主關(guān)鍵字是教師號和課程號兩個字段。這一步可以先讓學(xué)生思考一下表應(yīng)該包含哪些字段,然后大家共同討論,增加需要的字段,去掉不必的字段。
四、確定表之間的關(guān)系
VFP用表來存儲數(shù)據(jù),在每張獨立的表中存儲的數(shù)據(jù)之間有一定的關(guān)聯(lián)。我們可以利用相互關(guān)聯(lián)的數(shù)據(jù)來查找數(shù)據(jù)庫中有聯(lián)系的信息。例如,我們需要查找教師的任課信息,教師號是教師表的主關(guān)鍵字,也是任課表中的一個字段。我們把教師表中的教師號稱為是主關(guān)鍵字,而任課表中的教師號稱為外部關(guān)鍵字。通過教師號可以建立教師表和任課表的關(guān)系。表之間的關(guān)系一般有三種:一對一關(guān)系、一對多關(guān)系、多對多關(guān)系。一對一關(guān)系是指A表的一條記錄在B表中只能對應(yīng)一條記錄,而B表的一條記錄在A表中也只能對應(yīng)一條記錄。這種關(guān)系用的很少,一般用于字段項太多或其他特殊情況下。一對多關(guān)系是指A表的一條記錄在B表中對應(yīng)多條記錄,而B表的一條記錄在A表中只對應(yīng)一條記錄。我們稱A表為主表,B表為子表。以教學(xué)管理系統(tǒng)中教師表和任課表為例,教師表和任課表之間就是一個一對多關(guān)系,教師表是主表,任課表是子表。同樣的道理,課程表是主表,任課表是子表。多對多關(guān)系是指A表的一條記錄在B表中可以有多條記錄與之對應(yīng),而B表的一條記錄在A表中也有多條記錄和它對應(yīng)。多對多關(guān)系在實際應(yīng)用中經(jīng)常出現(xiàn)。比如教師和課程表之間就存在多對多關(guān)系。每個教師可以上多門課程,每門課程可以由多個教師上,一般在處理多對多關(guān)系時,要建立第三張表,將一個多對多關(guān)系分解為兩個一對多關(guān)系,這第三張表就稱為紐帶表。比如在教學(xué)管理系統(tǒng)中,任課表就是教師表和課程表之間的紐帶表。在這一步中,請學(xué)生思考各個表之間的關(guān)系,找出每張表的主關(guān)鍵字,必要時設(shè)置紐帶表。
五、改進設(shè)計
這一步主要是檢查數(shù)據(jù)庫是否滿足了用戶的需求,查找錯誤,完善設(shè)計。比如是否為每張表都選擇了主關(guān)鍵字,設(shè)計的表中字段是否全面,是否包含了大批冗余的數(shù)據(jù),是否存在保持了大量空白的字段,是否從現(xiàn)有的表中可以得到所需的數(shù)據(jù)。經(jīng)過反復(fù)的修改和完善,最終我們可以得到教學(xué)管理數(shù)據(jù)庫系統(tǒng)的原型。
以上我們簡述了數(shù)據(jù)庫的設(shè)計過程。當(dāng)然,這個系統(tǒng)設(shè)計的比較簡單,離實際的應(yīng)用還有一定的距離。我們研究性教學(xué)的目的就是讓學(xué)生掌握數(shù)據(jù)庫設(shè)計的一般方法,能夠動手進行設(shè)計,多多思考,和老師有效互動,真正成為學(xué)習(xí)的主人。
參考文獻
[1]王珊等.數(shù)據(jù)庫系統(tǒng)概論(第4版).北京:高等教學(xué)出版社,2006.
[2]嚴明等.VisualFoxPro教程(2010年版).蘇州:蘇州大學(xué)出版社,2010.
[3]教育部考試中心.全國計算機等級考試二級教程——VisualFxoPro數(shù)據(jù)庫程序設(shè)計.北京:高等教學(xué)出版社,2011.
[4]邊小勇,盛玉霞.計算機語言類課程教學(xué)法研究與實踐[J],計算機教育2007,(21).
作者簡介:宋春來(1972-),女,四川宜賓人,漢族,碩士研究生學(xué)歷。江蘇省揚州大學(xué)副教授,主要研究信息安全,密碼學(xué)。