<style id="uedzd"></style>
  • <style id="uedzd"></style>
  • <dfn id="uedzd"></dfn>
  • <dfn id="uedzd"></dfn>
    1. <ruby id="uedzd"></ruby>
      <ruby id="uedzd"></ruby>
    2. 教學(xué)設(shè)計(jì)
      您當(dāng)前的位置: 首頁>教學(xué)設(shè)計(jì)

      10.1 數(shù)據(jù)庫

      發(fā)布時(shí)間: 2019-01-27      信息來源:       閱讀次數(shù):

      10.1 數(shù)據(jù)庫

      目的與要求:

      通過本次課的學(xué)習(xí),掌握VFP數(shù)據(jù)庫的操作。

      教學(xué)內(nèi)容與時(shí)間安排、教學(xué)方法:

      教學(xué)安排:

      數(shù)據(jù)庫的創(chuàng)建、使用,數(shù)據(jù)庫中表的管理             40分鐘

      設(shè)置記錄規(guī)則、數(shù)據(jù)庫表的關(guān)聯(lián)                     40分鐘

      教學(xué)方法:

      CAI、圖形、表格

      教學(xué)重點(diǎn)及如何突出重點(diǎn)、難點(diǎn)及如何突破難點(diǎn):

      教學(xué)重點(diǎn):

      數(shù)據(jù)庫的創(chuàng)建、使用,數(shù)據(jù)庫中表的管理、設(shè)置記錄規(guī)則、數(shù)據(jù)庫表的關(guān)聯(lián)

      教學(xué)難點(diǎn):

      數(shù)據(jù)庫中表的管理、設(shè)置記錄規(guī)則、數(shù)據(jù)庫表的關(guān)聯(lián)

      基本內(nèi)容

      教學(xué)
      手段

      課堂設(shè)計(jì)
      和時(shí)間安排

      6.1 創(chuàng)建數(shù)據(jù)庫

      數(shù)據(jù)庫是一種含有表、視圖、連接和存儲過程等Visual FoxPro對象的集成文件,是能容納一個或多個表或視圖的容器。在Visual  FoxPro中,用戶可以使用數(shù)據(jù)庫來組織表和視圖、建立表間關(guān)系、創(chuàng)建存儲過程以及訪問遠(yuǎn)程數(shù)據(jù)源。

        1.數(shù)據(jù)庫所包含的主要對象

      Visual FoxPro數(shù)據(jù)庫文件的擴(kuò)展名為.DBC,建立數(shù)據(jù)庫后,與之相關(guān)的還會自動建立一個擴(kuò)展名為.dct的數(shù)據(jù)庫備注文件和一個擴(kuò)展名為.dcx的數(shù)據(jù)庫索引文件。Visual FoxPro系統(tǒng)中數(shù)據(jù)庫管理的主要對象有:表、遠(yuǎn)程視圖、本地視圖、存儲過程和連接。以上這些對象,只有表是真實(shí)存在的文件,其他對象必須存儲于數(shù)據(jù)庫中。

      (1)數(shù)據(jù)庫表

      我們在第四章介紹的表都是與數(shù)據(jù)庫無關(guān)的,稱為自由表。如果將表存放在數(shù)據(jù)庫中,稱為數(shù)據(jù)庫表。數(shù)據(jù)庫表增加了許多新功能,例如可以為數(shù)據(jù)庫表設(shè)置字段屬性、設(shè)置記錄規(guī)則、建立永久關(guān)系以及建立參照完整性。

      (2)視圖

      視圖是一種虛表,利用視圖可以把分散在相關(guān)表中的數(shù)據(jù)收集到一起,視圖的使用方法將在下一章介紹。

      (3)存儲過程

      使用存儲過程主要為了創(chuàng)建用戶自定義函數(shù),這些函數(shù)的代碼保存在數(shù)據(jù)庫文件中,數(shù)據(jù)庫表的字段級規(guī)則和記錄級有效性規(guī)則可以引用這些函數(shù)。

      (3)連接

      使用連接對象可以通過ODBC(開放式數(shù)據(jù)庫互連)技術(shù)與遠(yuǎn)程數(shù)據(jù)庫相連,創(chuàng)建遠(yuǎn)程視圖,使用后臺數(shù)據(jù)庫。

      3.創(chuàng)建數(shù)據(jù)庫

      【格式】CREATE  DATABASE [<數(shù)據(jù)庫文件名>|?][EXCLUSIVE]

      【功能】創(chuàng)建并打開一個數(shù)據(jù)庫文件。

      【說明】<數(shù)據(jù)庫文件名>:指出要創(chuàng)建的數(shù)據(jù)庫名稱。

      使用參數(shù)?或不使用任何參數(shù)會打開“創(chuàng)建”對話框,在其中可以指定數(shù)據(jù)庫名稱。

      例如:Create  database c:\vfpex\jxgl.dbc。

      4.使用數(shù)據(jù)庫

      (1)打開數(shù)據(jù)庫

      【格式】OPEN  DATABASE [<數(shù)據(jù)庫名>|?][EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]

      【功能】打開數(shù)據(jù)庫。

      【說明】在打開數(shù)據(jù)庫時(shí),如果不使用數(shù)據(jù)庫名,或者使用?,將啟動“打開”對話框。

      數(shù)據(jù)庫的打開有獨(dú)占方式(EXCLUSIVE)和共享方式(SHARED)兩種方式。

      使用NOUPDATE選項(xiàng)只能讀取數(shù)據(jù)庫中的信息,不能更新數(shù)據(jù)庫。

      使用VALIDATE子句表示打開數(shù)據(jù)庫時(shí)將檢查數(shù)據(jù)庫中引用的對象是否合法,如檢查數(shù)據(jù)庫中的表和索引是否有效。

      打開數(shù)據(jù)庫后,如果使用USE命令打開表,Visual FoxPro將首先在當(dāng)前數(shù)據(jù)庫中打開指定表,如果找不到,再從數(shù)據(jù)庫外查找。

      (2)修改數(shù)據(jù)庫

      用戶還可以通過數(shù)據(jù)庫設(shè)計(jì)器修改數(shù)據(jù)庫,具體方法是:從“文件”菜單中選擇“打開”命令,然后在“打開”對話框中選擇數(shù)據(jù)庫,或者使用命令打開數(shù)據(jù)庫設(shè)計(jì)器。打開數(shù)據(jù)庫的命令格式如下。

      【格式】MODIFY  DATABASE [<數(shù)據(jù)庫名>|?][NOWAIT] [NOEDIT]

      【功能】修改數(shù)據(jù)庫。

      【說明】不使用任何選項(xiàng),會啟動數(shù)據(jù)庫設(shè)計(jì)器對已經(jīng)打開的數(shù)據(jù)庫進(jìn)行修改,若當(dāng)前沒有打開數(shù)據(jù)庫,則啟動“打開”對話框要求用戶選擇一個數(shù)據(jù)庫。

      NOWAIT選項(xiàng)只在程序中使用,其作用是在打開數(shù)據(jù)庫設(shè)計(jì)器后繼續(xù)執(zhí)行該命令之后的語句。如果不使用該選項(xiàng),在打開數(shù)據(jù)庫后,應(yīng)用程序會暫停,直到數(shù)據(jù)庫關(guān)閉后應(yīng)用程序才會繼續(xù)執(zhí)行。

      使用NOEDIT選項(xiàng)只打開數(shù)據(jù)庫設(shè)計(jì)器,而不能對數(shù)據(jù)庫進(jìn)行修改。

      (3)關(guān)閉數(shù)據(jù)庫

      使用CLOSE  DATABASES [ALL]命令可以關(guān)閉打開的數(shù)據(jù)庫,其中ALL子句表示關(guān)閉所有數(shù)據(jù)庫,否則只關(guān)閉當(dāng)前數(shù)據(jù)庫。

      -----------本節(jié)課結(jié)束-----------

      5.數(shù)據(jù)庫中表的管理

      數(shù)據(jù)詞典用來保存數(shù)據(jù)庫中各種對象的定義和設(shè)置信息,包括表屬性、字段屬性、記錄有效性規(guī)則、表間關(guān)系以及參照完整性等。用戶可以通過數(shù)據(jù)庫設(shè)計(jì)器設(shè)置、顯示和修改這些屬性,而自由表一般沒有這么多的屬性,下面介紹數(shù)據(jù)庫表的屬性信息及其設(shè)置方法。

      一、字段屬性

      圖5-4  數(shù)據(jù)庫表的字段屬性

      數(shù)據(jù)庫表的字段除了具有自由表字段的基本屬性外,還具有許多擴(kuò)展屬性。通過表設(shè)計(jì)器可以對這些屬性進(jìn)行設(shè)置,如圖5-4所示。

      1.基本屬性設(shè)置

      字段的基本屬性包括字段名、類型、寬度、小數(shù)位數(shù)等,這些屬性的設(shè)置方法已經(jīng)在自由表中介紹過,在此不再贅述。

      2.顯示屬性設(shè)置

      字段的顯示區(qū)用于設(shè)置字段顯示格式和輸入格式,包括3項(xiàng)內(nèi)容:格式、輸入掩碼和標(biāo)題。

      ·格式:指定字段在瀏覽、表單或報(bào)表中的顯示格式。例如:設(shè)置該字段顯示為大寫,則在格式文本框中輸入:!。

      ·輸入掩碼:用于限制或控制用戶輸入數(shù)據(jù)的格式。輸入掩碼可以是以下字符:

      X     允許輸入字符

      9     允許輸入數(shù)字

      #     允許輸入數(shù)字,空格,+,-

      $     顯示set currency命令指出的貨幣號

      *     在指定寬度內(nèi),值左顯示星號

      .     指出小數(shù)點(diǎn)位置

      ,     用逗號分隔小數(shù)點(diǎn)左的數(shù)字

      例如,要指定電話號碼的區(qū)號為4位,電話號碼為8位,可以指定輸入掩碼為:

      (9999)99999999。

      ·標(biāo)題:用來為瀏覽窗口、表單或報(bào)表中的字段指定顯示標(biāo)題。

      3.字段注釋

      用來對字段的用途、功能等進(jìn)行說明,以便日后或其他人對數(shù)據(jù)庫進(jìn)行維護(hù)。

      4.字段有效性

      字段有效性用于為選中字段設(shè)置某些限制。各設(shè)置項(xiàng)的含義如下:

      ·規(guī)則:設(shè)置字段級有效性檢查規(guī)則。用戶可以直接輸入表達(dá)式,也可以在表達(dá)式生成器中輸入。字段級規(guī)則在字段值改變時(shí)發(fā)生作用。

      ·信息:指定出錯信息,當(dāng)該字段輸入的數(shù)據(jù)違反有效性規(guī)則時(shí),將顯示此處提供的出錯信息。

      ·默認(rèn)值:指定字段的默認(rèn)值。

      【例5-2】在學(xué)生表中設(shè)置“學(xué)號”字段的屬性。

      設(shè)置輸入掩碼為“99999999”,標(biāo)題為“學(xué)號”,字段有效性規(guī)則為:LEN(TRIM(sno))=8,出錯信息為:“學(xué)號應(yīng)為8位!”。

      二、表屬性

      選擇數(shù)據(jù)庫設(shè)計(jì)器的“表”選項(xiàng)卡,可以設(shè)置表注釋、記錄驗(yàn)證規(guī)則和觸發(fā)器。

      1.表名

      用戶可以為數(shù)據(jù)庫表指定最長不超過128個字符的長表名,但該名稱不作為表文件名,它只是表的別名,可以在項(xiàng)目管理器、數(shù)據(jù)庫設(shè)計(jì)器、表單設(shè)計(jì)器中顯示。

      2.記錄有效性

      ·規(guī)則:指定記錄級有效性檢查規(guī)則。該規(guī)則在用戶插入記錄或從記錄離開時(shí)進(jìn)行檢驗(yàn)。

      ·信息:用于指定出錯提示信息,當(dāng)記錄不符合記錄級有效性規(guī)則時(shí)顯示。

      3.觸發(fā)器

      觸發(fā)器是在進(jìn)行插入、更新或刪除操作后執(zhí)行的記錄級事件代碼。

      觸發(fā)器分為插入觸發(fā)器、更新觸發(fā)器和刪除觸發(fā)器,當(dāng)數(shù)據(jù)庫進(jìn)行插入、更新、刪除時(shí),數(shù)據(jù)庫會自動啟動這些觸發(fā)器,以保證數(shù)據(jù)的完整性。

      例如,刪除學(xué)生表中的某個學(xué)生記錄,那么該學(xué)生所對應(yīng)的成績也應(yīng)該從成績表中刪除,這樣的操作可以在學(xué)生表的刪除觸發(fā)器中進(jìn)行。

      4.表注釋

      用于指定出現(xiàn)在項(xiàng)目管理器中的注釋信息。

      三、主索引

      1.主索引

      本書4.3節(jié)介紹了四種類型的索引,其中主索引不允許在指定關(guān)健字段或表達(dá)式中出現(xiàn)重復(fù)值,主要用于主表或被引用的表,用來在永久關(guān)系中建立參照完整性。主索引可以用作主關(guān)鍵字,僅適用于數(shù)據(jù)庫表。每個數(shù)據(jù)庫表,只能建立一個主索引。主索引可以在表設(shè)計(jì)器的“索引”選項(xiàng)卡中設(shè)置,如圖5-6所示。使用命令方式也可以建立或刪除主索引,命令格式如下:

      Alter table <表名>  Add|drop primary key <索引關(guān)鍵字> [tag <索引標(biāo)識>]

      說明:命令中的ADD用于添加主索引,缺省tag子句表示索引關(guān)鍵字與字段名相同。Drop用于刪除主索引。例如:以“學(xué)號”為關(guān)鍵字建立主索引可以使用以下命令。

      Alter table  student add primary key sno tag sno

      四、建立永久關(guān)系

      1.永久關(guān)系

      永久關(guān)系是存在于數(shù)據(jù)庫表之間的一種關(guān)系,這種關(guān)系可以作為數(shù)據(jù)庫的一部分保存起來。要在數(shù)據(jù)庫表之間建立永久關(guān)系,必須保證在父表中已經(jīng)創(chuàng)建了索引。

      在一對多關(guān)系中,主表必須使用主索引關(guān)鍵字(主索引標(biāo)識)或侯選索引關(guān)鍵字(侯選標(biāo)識),子表使用普通索引關(guān)鍵字(普通索引標(biāo)識)。

      在一對一關(guān)系中,兩個表必須都用主索引關(guān)鍵字(主索引標(biāo)識)或侯選索引(侯選索引標(biāo)識)。

      永久關(guān)系在查詢和視圖中,會自動作為聯(lián)接條件,并且能夠作為表單和報(bào)表的默認(rèn)關(guān)系,顯示在數(shù)據(jù)環(huán)境設(shè)計(jì)器中。此外,還允許通過永久關(guān)系建立參照完整性。

      2.建立永久關(guān)系

      建立永久關(guān)系可以通過以下步驟完成:

      ·確定兩個具有一對多或一對一關(guān)系的表。

      ·建立主表的主索引或侯選索引。

      ·建立子表索引。如果關(guān)聯(lián)是一對多關(guān)系,需要在子表中以主表關(guān)鍵字建立普通索引。如果是一對一關(guān)系,在子表中需要建立與主表相同的主索引或候選索引。

      ·從主表的主索引或侯選索引到子表的相關(guān)索引建立永久關(guān)系。

      【例5-4】jxgl數(shù)據(jù)庫中的學(xué)生表(student.dbf)和學(xué)生成績表(score.dbf)具有一對多關(guān)系。在數(shù)據(jù)庫設(shè)計(jì)器中,建立兩表的永久關(guān)系。

      操作方法如下:將學(xué)生表的字段sno設(shè)置為主索引,將成績表的字段sno設(shè)置為普通索引,將鼠標(biāo)移到學(xué)生表的主索引sno上,拖動它到成績表的索引關(guān)鍵字sno上,此時(shí)可以看到在主表與子表的索引sno間產(chǎn)生了一條連線,即表示兩表建立了永久性關(guān)系,如圖5-7所示。

      選定關(guān)系線,然后單擊鼠標(biāo)右鍵,在快捷菜單中選擇“刪除關(guān)系”命令,系統(tǒng)會刪除指定關(guān)系。如果選擇“編輯關(guān)系”命令,系統(tǒng)會顯示圖5-8所示的“編輯關(guān)系”對話框,用戶可以在此對話框中重新設(shè)置關(guān)聯(lián)條件。

      圖5-8  “編輯關(guān)系”對話框

      五、參照完整性

      1.參照完整性

      參照完整性用來控制數(shù)據(jù)一致性,尤其經(jīng)常用來控制數(shù)據(jù)庫相關(guān)表之間的主關(guān)鍵字與其外關(guān)鍵字之間的數(shù)據(jù)一致性。相關(guān)表的參照完整性規(guī)則是建立在永久關(guān)系基礎(chǔ)上的,可以在主表或子表的觸發(fā)器中設(shè)置,規(guī)則代碼被保存在數(shù)據(jù)庫的存儲過程中。對于建立永久關(guān)系表,在一個表中插入、修改或刪除記錄時(shí),相關(guān)表的記錄也要發(fā)生變動。

      2.設(shè)置參照完整性規(guī)則

      打開數(shù)據(jù)庫設(shè)計(jì)器,選擇“數(shù)據(jù)庫”菜單中的“編輯參照完整性”命令或者用鼠標(biāo)指向永久關(guān)系連線單擊右鍵,然后在快捷表單中選擇“參照完整性”命令或者雙擊永久關(guān)系的連線,然后在“編輯關(guān)系”對話框中選擇“參照完整性”按鈕,會出現(xiàn)圖5-9所示的“參 圖5-9  參照完整性規(guī)則

      照完整性生成器”對話框。

      參照完整性成器具有更新、刪除和插入三個規(guī)則:

      更新規(guī)則用于指定修改父表中的關(guān)鍵字值時(shí)所觸發(fā)的規(guī)則。選擇“級聯(lián)”表示更新父表關(guān)鍵字值時(shí),同時(shí)會更新子表中相關(guān)記錄的對應(yīng)值;選擇“限制”表示如果子表中有相關(guān)記錄,則禁止更新父表關(guān)鍵字;選擇“忽略”表示不管子表中的相關(guān)記錄,都允許更新父表。

      刪除規(guī)則用于指定刪除父表中的記錄時(shí)所觸發(fā)的規(guī)則。選擇“級聯(lián)”表示刪除父表記錄時(shí),同時(shí)會刪除子表中的相關(guān)記錄;選擇“限制”表示如果子表中有相關(guān)記錄,在刪除父表中的記錄時(shí)會出現(xiàn)“觸發(fā)器失敗”的提示信息;選擇“忽略”表示不管子表中的相關(guān)記錄,都允許父表刪除記錄。

      插入規(guī)則用于指定子表在插入新的記錄或更新已存在的記錄時(shí)所觸發(fā)的規(guī)則。選擇“限制”表示如果父表中沒有相關(guān)的記錄,在子表添加記錄時(shí)產(chǎn)生“觸發(fā)器失敗”的提示信息;選擇“忽略”表示允許子表插入記錄,與父表無關(guān)。

      【例5-5】為已經(jīng)建立了永久關(guān)系的學(xué)生表和成績表設(shè)置參照完整性。

      打開jxgl數(shù)據(jù)庫,打開參照完整性生成器。在對話框中分別設(shè)置更新規(guī)則、刪除規(guī)則為“級聯(lián)”,插入規(guī)則為“限制”,然后單擊“確定”按鈕,完成設(shè)置。這時(shí)我們打開學(xué)生表修改字段sno的值,然后查看成績表,會發(fā)現(xiàn)成績表中的相應(yīng)記錄也發(fā)生了變化;刪除學(xué)生表中的某條記錄,則成績表中的相關(guān)記錄也會被刪除。

      -----------本節(jié)課結(jié)束-----------

      講述

      數(shù)據(jù)庫介紹10分鐘

      創(chuàng)建數(shù)據(jù)庫5分鐘

      使用數(shù)據(jù)庫20分鐘

       

      數(shù)據(jù)庫中表的管理15分鐘

      表屬性10分鐘

      主索引10分鐘

      建立永久關(guān)系5分鐘

      參照完整性5分鐘


      日韩无码第一页,一区_97资源人妻碰碰碰_有码无码人妻Av_午夜亚洲国产理论片2020网站 亚洲无码片AV一级 岛国av无码专区免费看
      <style id="uedzd"></style>
    3. <style id="uedzd"></style>
    4. <dfn id="uedzd"></dfn>
    5. <dfn id="uedzd"></dfn>
      1. <ruby id="uedzd"></ruby>
        <ruby id="uedzd"></ruby>