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