信息管理第三章 數(shù)據(jù)庫部分08年_第1頁
信息管理第三章 數(shù)據(jù)庫部分08年_第2頁
信息管理第三章 數(shù)據(jù)庫部分08年_第3頁
信息管理第三章 數(shù)據(jù)庫部分08年_第4頁
信息管理第三章 數(shù)據(jù)庫部分08年_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3.6 數(shù)據(jù)庫的設(shè)計數(shù)據(jù)庫的設(shè)計 使用自由表還是數(shù)據(jù)庫表來保存要管理的數(shù)據(jù),使用自由表還是數(shù)據(jù)庫表來保存要管理的數(shù)據(jù),取決于需要管理的數(shù)據(jù)之間是否存在關(guān)系以及關(guān)系取決于需要管理的數(shù)據(jù)之間是否存在關(guān)系以及關(guān)系的復(fù)雜程度。的復(fù)雜程度。 如果開發(fā)的是一個工資管理系統(tǒng),要保存的數(shù)如果開發(fā)的是一個工資管理系統(tǒng),要保存的數(shù)據(jù)不能只用一個表存儲,而需要多張表,表與表之據(jù)不能只用一個表存儲,而需要多張表,表與表之間也存在相互關(guān)系,這時就有必要設(shè)計和建立數(shù)據(jù)間也存在相互關(guān)系,這時就有必要設(shè)計和建立數(shù)據(jù)庫,把這些表添加進(jìn)數(shù)據(jù)庫,并建立表與表之間的庫,把這些表添加進(jìn)數(shù)據(jù)庫,并建立表與表之間的永久關(guān)系。永久關(guān)系。 用

2、戶的數(shù)據(jù)仍然保存在數(shù)據(jù)表里,而表與表之用戶的數(shù)據(jù)仍然保存在數(shù)據(jù)表里,而表與表之間的關(guān)系等信息則保存在數(shù)據(jù)庫里。間的關(guān)系等信息則保存在數(shù)據(jù)庫里。 Visual FoxPro是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。關(guān)系型數(shù)據(jù)庫是由相關(guān)的表通過其相互關(guān)系組關(guān)系型數(shù)據(jù)庫是由相關(guān)的表通過其相互關(guān)系組合起來的數(shù)據(jù)集合。合起來的數(shù)據(jù)集合。 在數(shù)據(jù)庫里,主體是表,除此之外還包括在數(shù)據(jù)庫里,主體是表,除此之外還包括視圖、連接和存儲過程等,使得數(shù)據(jù)庫中的所視圖、連接和存儲過程等,使得數(shù)據(jù)庫中的所有信息成為一個有機的整體,為數(shù)據(jù)庫的使用有信息成為一個有機的整體,為數(shù)據(jù)庫的使用者提供極大的方便和強大的處理功能

3、。者提供極大的方便和強大的處理功能。 Visual FoxPro數(shù)據(jù)庫不但提供了存儲數(shù)據(jù)數(shù)據(jù)庫不但提供了存儲數(shù)據(jù)的結(jié)構(gòu),而且在使用數(shù)據(jù)庫時,可以在表一級的結(jié)構(gòu),而且在使用數(shù)據(jù)庫時,可以在表一級進(jìn)行功能擴展。進(jìn)行功能擴展。3.6.1 數(shù)據(jù)庫設(shè)計的目的和方法數(shù)據(jù)庫設(shè)計的目的和方法 創(chuàng)建數(shù)據(jù)庫之前,首先對數(shù)據(jù)庫總體設(shè)計,明創(chuàng)建數(shù)據(jù)庫之前,首先對數(shù)據(jù)庫總體設(shè)計,明確數(shù)據(jù)庫要實現(xiàn)的功能,建立數(shù)據(jù)庫的目的和使用確數(shù)據(jù)庫要實現(xiàn)的功能,建立數(shù)據(jù)庫的目的和使用的方法,以及用戶可以從數(shù)據(jù)庫中獲取的信息。的方法,以及用戶可以從數(shù)據(jù)庫中獲取的信息。 首先列出需要數(shù)據(jù)庫解決的問題清單。例如,首先列出需要數(shù)據(jù)庫解決的問題

4、清單。例如,職稱不同時,基本工資是否不同;對于不同的用戶,職稱不同時,基本工資是否不同;對于不同的用戶,其使用權(quán)限是否不同等等,然后收集系統(tǒng)需要輸出其使用權(quán)限是否不同等等,然后收集系統(tǒng)需要輸出的表和報表等信息。的表和報表等信息。 最后確定需要保存的主題信息(表),以及每最后確定需要保存的主題信息(表),以及每個主題需要保存的信息(表中的字段)。個主題需要保存的信息(表中的字段)。3.6.2 數(shù)據(jù)庫設(shè)計的一般過程數(shù)據(jù)庫設(shè)計的一般過程 數(shù)據(jù)庫設(shè)計過程的關(guān)鍵在于明確關(guān)系型數(shù)數(shù)據(jù)庫設(shè)計過程的關(guān)鍵在于明確關(guān)系型數(shù)據(jù)庫管理系統(tǒng)存儲數(shù)據(jù)的方式與關(guān)聯(lián)方式。據(jù)庫管理系統(tǒng)存儲數(shù)據(jù)的方式與關(guān)聯(lián)方式。數(shù)據(jù)庫設(shè)計的一般

5、過程如下:數(shù)據(jù)庫設(shè)計的一般過程如下:1、需求分析、需求分析 確定建立數(shù)據(jù)庫的目的,是整個確定建立數(shù)據(jù)庫的目的,是整個數(shù)據(jù)庫設(shè)計中最重要的步驟之一,也是后續(xù)各數(shù)據(jù)庫設(shè)計中最重要的步驟之一,也是后續(xù)各階段的基礎(chǔ)。階段的基礎(chǔ)。2、確定需要的表、確定需要的表 在明確了對數(shù)據(jù)的需求后,在明確了對數(shù)據(jù)的需求后,就可以著手把所需求的各種信息分成各個獨立就可以著手把所需求的各種信息分成各個獨立的主題。的主題。 3、確定需要的字段、確定需要的字段 確定在每個表中要保存哪確定在每個表中要保存哪些信息,從而確定表的結(jié)構(gòu),并對各個字段的些信息,從而確定表的結(jié)構(gòu),并對各個字段的類型、長度、有效性等進(jìn)行設(shè)定。類型、長度、

6、有效性等進(jìn)行設(shè)定。 4、確定各表之間的關(guān)系、確定各表之間的關(guān)系 分析每個表,確定一分析每個表,確定一個表的數(shù)據(jù)和其他表的數(shù)據(jù)之間的關(guān)系,各表個表的數(shù)據(jù)和其他表的數(shù)據(jù)之間的關(guān)系,各表之間的數(shù)據(jù)的聯(lián)接方式(建立永久關(guān)系或臨時之間的數(shù)據(jù)的聯(lián)接方式(建立永久關(guān)系或臨時關(guān)系),最后使用不同的組合來獲取來自多個關(guān)系),最后使用不同的組合來獲取來自多個數(shù)據(jù)表的信息。數(shù)據(jù)表的信息。 5、設(shè)計求精、設(shè)計求精 對設(shè)計進(jìn)一步分析,查找其中的對設(shè)計進(jìn)一步分析,查找其中的不合理處。創(chuàng)建表時,在表中加入幾個示例數(shù)不合理處。創(chuàng)建表時,在表中加入幾個示例數(shù)據(jù)記錄,看能否從表中得到想要的結(jié)果。如果據(jù)記錄,看能否從表中得到想要的

7、結(jié)果。如果發(fā)現(xiàn)設(shè)計不完備,可對設(shè)計作一些調(diào)整。發(fā)現(xiàn)設(shè)計不完備,可對設(shè)計作一些調(diào)整。3.6.3 3.6.3 建立建立數(shù)據(jù)庫數(shù)據(jù)庫 在在Visual FoxPro中,數(shù)據(jù)庫通過一組系統(tǒng)文件中,數(shù)據(jù)庫通過一組系統(tǒng)文件對相互聯(lián)系的數(shù)據(jù)庫表及其相關(guān)聯(lián)的數(shù)據(jù)庫對象進(jìn)對相互聯(lián)系的數(shù)據(jù)庫表及其相關(guān)聯(lián)的數(shù)據(jù)庫對象進(jìn)行統(tǒng)一的組織和管理。行統(tǒng)一的組織和管理。 建立數(shù)據(jù)庫時,數(shù)據(jù)庫文件的擴展名為建立數(shù)據(jù)庫時,數(shù)據(jù)庫文件的擴展名為.dbc,同時自動建立與之相關(guān)的一個擴展名為同時自動建立與之相關(guān)的一個擴展名為.dct的備注的備注文件和一個擴展名為文件和一個擴展名為.dcx的索引文件。的索引文件。 數(shù)據(jù)庫的基本操作包括建立

8、、打開、關(guān)閉和刪數(shù)據(jù)庫的基本操作包括建立、打開、關(guān)閉和刪除數(shù)據(jù)庫,瀏覽數(shù)據(jù)庫文件以及向數(shù)據(jù)庫中增加、除數(shù)據(jù)庫,瀏覽數(shù)據(jù)庫文件以及向數(shù)據(jù)庫中增加、移去表等操作。移去表等操作。 創(chuàng)建數(shù)據(jù)庫有菜單方式和命令方式。創(chuàng)建數(shù)據(jù)庫有菜單方式和命令方式。1、菜單方式、菜單方式 選擇選擇“文文件件”菜單中的菜單中的“新建新建”命令,命令,彈出彈出“新建新建”對話框,如右對話框,如右圖所示。圖所示。 在在“新建新建”對話框中,選擇對話框中,選擇“數(shù)據(jù)庫數(shù)據(jù)庫”按按鈕,然后單擊鈕,然后單擊“新建文件新建文件”按鈕,彈出按鈕,彈出“創(chuàng)創(chuàng)建建”對話框。對話框。 在在“創(chuàng)建創(chuàng)建”對話框中輸入數(shù)據(jù)庫文件名和保存對話框中輸入

9、數(shù)據(jù)庫文件名和保存位置。選擇位置。選擇“保存保存”按鈕,將打開數(shù)據(jù)庫設(shè)計器。按鈕,將打開數(shù)據(jù)庫設(shè)計器。 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計器是交互修改數(shù)器是交互修改數(shù)據(jù)庫對象的界面據(jù)庫對象的界面和工具,其中顯和工具,其中顯示數(shù)據(jù)庫中包含示數(shù)據(jù)庫中包含的全部表、視圖的全部表、視圖和表間聯(lián)系。和表間聯(lián)系。 此時,完成創(chuàng)建數(shù)據(jù)庫的操作,并同時打開了此時,完成創(chuàng)建數(shù)據(jù)庫的操作,并同時打開了數(shù)據(jù)庫設(shè)計器。數(shù)據(jù)庫設(shè)計器。2、命令方式、命令方式格式:格式:CREATE DATABASE |?功能:建立新數(shù)據(jù)庫。功能:建立新數(shù)據(jù)庫。說明:說明:(1) 指定生成的數(shù)據(jù)庫文件,此處指定生成的數(shù)據(jù)庫文件,此處可指定路徑及文件名。

10、可指定路徑及文件名。 省略擴展名則默認(rèn)為省略擴展名則默認(rèn)為.dbc。如果未指定數(shù)據(jù)庫文件名或用如果未指定數(shù)據(jù)庫文件名或用“?”代替數(shù)據(jù)庫文代替數(shù)據(jù)庫文件名,件名,Visual FoxPro會彈出會彈出“創(chuàng)建創(chuàng)建”對話框,以對話框,以便用戶選擇數(shù)據(jù)庫存放的位置和輸入數(shù)據(jù)庫名。便用戶選擇數(shù)據(jù)庫存放的位置和輸入數(shù)據(jù)庫名。(2) 該命令建立數(shù)據(jù)庫后并不打開數(shù)據(jù)庫設(shè)計器,而該命令建立數(shù)據(jù)庫后并不打開數(shù)據(jù)庫設(shè)計器,而是建立一個新的數(shù)據(jù)庫文件,并自動以獨占方式是建立一個新的數(shù)據(jù)庫文件,并自動以獨占方式打開此數(shù)據(jù)庫文件。打開此數(shù)據(jù)庫文件。例:例: 在在e:my data下建立文件名為下建立文件名為“工資管理工

11、資管理”的數(shù)據(jù)庫文件。的數(shù)據(jù)庫文件。CREATE DATABASE e:my data工資管理工資管理 系統(tǒng)環(huán)境中,若已將系統(tǒng)環(huán)境中,若已將Visual FoxPro的默認(rèn)的默認(rèn)工作目錄設(shè)置為工作目錄設(shè)置為e:my data,則在命令中可以,則在命令中可以省略路徑,直接使用命令:省略路徑,直接使用命令: CREATE DATABASE 工資管理工資管理數(shù)據(jù)庫的打開數(shù)據(jù)庫的打開 1、菜單方式、菜單方式(1) 選擇選擇“文件文件”菜單下的菜單下的“打開打開”命令,出現(xiàn)命令,出現(xiàn)“打開打開”對話框。對話框。(2) 在該對話框中的在該對話框中的“文件類型文件類型”下拉列表框中下拉列表框中選擇選擇“數(shù)據(jù)

12、庫(數(shù)據(jù)庫(*.DBC)”;然后,選擇所要打;然后,選擇所要打開的數(shù)據(jù)庫文件,單擊開的數(shù)據(jù)庫文件,單擊“確定確定”按鈕,此時,打按鈕,此時,打開了數(shù)據(jù)庫文件,同時也打開了數(shù)據(jù)庫設(shè)計器。開了數(shù)據(jù)庫文件,同時也打開了數(shù)據(jù)庫設(shè)計器。 建立數(shù)據(jù)庫后,若要在庫中建立的數(shù)據(jù)庫表建立數(shù)據(jù)庫后,若要在庫中建立的數(shù)據(jù)庫表或使用數(shù)據(jù)庫中的表時,都必須先打開數(shù)據(jù)庫?;蚴褂脭?shù)據(jù)庫中的表時,都必須先打開數(shù)據(jù)庫。2、命令方式、命令方式格式:格式:OPEN DATABASE | ? NOUPDATE EXCLUSIVE|SHARED功能:功能:打開一個數(shù)據(jù)庫文件,與之相關(guān)數(shù)據(jù)庫備注打開一個數(shù)據(jù)庫文件,與之相關(guān)數(shù)據(jù)庫備注文件

13、(文件(.dct)與索引文件()與索引文件(.dcx)也一起被打開。)也一起被打開。 說明:說明:(1) 指定要打開的數(shù)據(jù)庫文件。指定要打開的數(shù)據(jù)庫文件。 若省略擴展名,默認(rèn)為若省略擴展名,默認(rèn)為.dbc。如果未指定數(shù)據(jù)庫。如果未指定數(shù)據(jù)庫文件名或用文件名或用“?”代替數(shù)據(jù)庫文件名,則出現(xiàn)代替數(shù)據(jù)庫文件名,則出現(xiàn)“打打開開”對話框,在對話框中選擇數(shù)據(jù)庫文件并打開。對話框,在對話框中選擇數(shù)據(jù)庫文件并打開。(2)NOUPDATE指定以只讀方式打開數(shù)據(jù)庫;指定以只讀方式打開數(shù)據(jù)庫;EXCLUSIVE指定以獨占方式打開數(shù)據(jù)庫,即不指定以獨占方式打開數(shù)據(jù)庫,即不允許其他用戶在同一時刻也使用該數(shù)據(jù)庫;允許

14、其他用戶在同一時刻也使用該數(shù)據(jù)庫;SHARED指定以共享方式打開數(shù)據(jù)庫。指定以共享方式打開數(shù)據(jù)庫。(3)該命令打開了數(shù)據(jù)庫文件,但并不打開)該命令打開了數(shù)據(jù)庫文件,但并不打開數(shù)據(jù)庫設(shè)計器。這是與菜單方式不同的地方。數(shù)據(jù)庫設(shè)計器。這是與菜單方式不同的地方。若需打開數(shù)據(jù)庫設(shè)計器,可以使用若需打開數(shù)據(jù)庫設(shè)計器,可以使用MODIFY DATABASE命令。命令。例:打開數(shù)據(jù)庫文件例:打開數(shù)據(jù)庫文件e:my data工資管理工資管理.dbc。 OPEN DATABASE e:my data工資管理工資管理 在在Visual FoxPro中,操作時可以打開多個數(shù)中,操作時可以打開多個數(shù)據(jù)庫,但在同一時刻只

15、有一個當(dāng)前數(shù)據(jù)庫,所有據(jù)庫,但在同一時刻只有一個當(dāng)前數(shù)據(jù)庫,所有作用于數(shù)據(jù)庫的命令或函數(shù)都是對當(dāng)前數(shù)據(jù)庫而作用于數(shù)據(jù)庫的命令或函數(shù)都是對當(dāng)前數(shù)據(jù)庫而言。打開多個數(shù)據(jù)庫時,最后被打開的數(shù)據(jù)庫為言。打開多個數(shù)據(jù)庫時,最后被打開的數(shù)據(jù)庫為當(dāng)前數(shù)據(jù)庫,也可從常用工具欄上的數(shù)據(jù)庫下拉當(dāng)前數(shù)據(jù)庫,也可從常用工具欄上的數(shù)據(jù)庫下拉列表中選擇一個打開的數(shù)據(jù)庫作為當(dāng)前數(shù)據(jù)庫,列表中選擇一個打開的數(shù)據(jù)庫作為當(dāng)前數(shù)據(jù)庫,或使用或使用SET DATABASE命令選擇一個數(shù)據(jù)庫作為命令選擇一個數(shù)據(jù)庫作為當(dāng)前數(shù)據(jù)庫。當(dāng)前數(shù)據(jù)庫。 在數(shù)據(jù)庫被打開的情況下,該數(shù)據(jù)庫中所有在數(shù)據(jù)庫被打開的情況下,該數(shù)據(jù)庫中所有表都可以使用,但這

16、些表并沒有自動打開,使用表都可以使用,但這些表并沒有自動打開,使用時仍需用時仍需用USE命令打開。命令打開。3.6.4 數(shù)據(jù)庫的數(shù)據(jù)庫的關(guān)閉關(guān)閉 數(shù)據(jù)庫文件操作完成后,必須將其關(guān)閉,數(shù)據(jù)庫文件操作完成后,必須將其關(guān)閉,以確保數(shù)據(jù)的安全性。以確保數(shù)據(jù)的安全性。格式:格式: CLOSE ALL | DATABASE 說明:說明: (1)ALL用于關(guān)閉所有對象,例如,數(shù)據(jù)用于關(guān)閉所有對象,例如,數(shù)據(jù)庫、表、索引等。庫、表、索引等。 (2)DATABASE用于關(guān)閉當(dāng)前數(shù)據(jù)庫和用于關(guān)閉當(dāng)前數(shù)據(jù)庫和數(shù)據(jù)庫表。數(shù)據(jù)庫表。 在在Visual FoxPro中,修改數(shù)據(jù)庫實際上是打中,修改數(shù)據(jù)庫實際上是打開數(shù)據(jù)庫

17、設(shè)計器,在其中完成各種數(shù)據(jù)庫對象的開數(shù)據(jù)庫設(shè)計器,在其中完成各種數(shù)據(jù)庫對象的建立、修改和刪除等操作。建立、修改和刪除等操作。MODIFY DATABASE | ? 功能:功能:打開指定的數(shù)據(jù)庫文件所對應(yīng)的數(shù)據(jù)庫設(shè)打開指定的數(shù)據(jù)庫文件所對應(yīng)的數(shù)據(jù)庫設(shè)計器,以便對該數(shù)據(jù)庫中的各種數(shù)據(jù)庫對象進(jìn)行計器,以便對該數(shù)據(jù)庫中的各種數(shù)據(jù)庫對象進(jìn)行修改操作。修改操作。說明:說明: 指定要修改的數(shù)據(jù)庫文指定要修改的數(shù)據(jù)庫文件。如果未指定數(shù)據(jù)庫文件名或用件。如果未指定數(shù)據(jù)庫文件名或用“?”代替數(shù)據(jù)代替數(shù)據(jù)庫文件名,則出現(xiàn)庫文件名,則出現(xiàn)“打開打開”對話框。對話框。3.6.5 數(shù)據(jù)庫的數(shù)據(jù)庫的修改修改 3.6.6 數(shù)

18、據(jù)庫的數(shù)據(jù)庫的刪除刪除 DELETE DATABASE | ? DELETETABLES RECYCLE要刪除的數(shù)據(jù)庫名,此時要刪要刪除的數(shù)據(jù)庫名,此時要刪除的數(shù)據(jù)庫必須處于關(guān)閉狀態(tài),除的數(shù)據(jù)庫必須處于關(guān)閉狀態(tài),被刪除的數(shù)據(jù)庫中的表成為自被刪除的數(shù)據(jù)庫中的表成為自由表由表刪除數(shù)據(jù)庫的同時從刪除數(shù)據(jù)庫的同時從磁盤上刪除該數(shù)據(jù)庫磁盤上刪除該數(shù)據(jù)庫所含的表等相關(guān)文件所含的表等相關(guān)文件將刪除的數(shù)據(jù)庫文件將刪除的數(shù)據(jù)庫文件和表文件放入回收站和表文件放入回收站中,需要時可以還原中,需要時可以還原例:徹底刪除數(shù)據(jù)庫文件例:徹底刪除數(shù)據(jù)庫文件e:my data工資工資管理管理.dbc以及其中的數(shù)據(jù)表等相關(guān)文件

19、。以及其中的數(shù)據(jù)表等相關(guān)文件。 DELETE DATABASE ; e:my data工資管理工資管理 DELETETABLES3.6.73.6.7數(shù)據(jù)庫表的基本操作數(shù)據(jù)庫表的基本操作 在在Visual FoxPro中,表分為數(shù)據(jù)庫表和自由中,表分為數(shù)據(jù)庫表和自由表兩種,兩種表的擴展名均為表兩種,兩種表的擴展名均為.dbf。 屬于某一數(shù)據(jù)庫的數(shù)據(jù)表稱為數(shù)據(jù)庫表,不屬于某一數(shù)據(jù)庫的數(shù)據(jù)表稱為數(shù)據(jù)庫表,不屬于任何數(shù)據(jù)庫而獨立存在的數(shù)據(jù)表稱為自由表,屬于任何數(shù)據(jù)庫而獨立存在的數(shù)據(jù)表稱為自由表,兩種表可以互相轉(zhuǎn)換。兩種表可以互相轉(zhuǎn)換。 當(dāng)一個自由表添加到某一個數(shù)據(jù)庫時,自由當(dāng)一個自由表添加到某一個數(shù)據(jù)

20、庫時,自由表就成為數(shù)據(jù)庫表,反之,若將數(shù)據(jù)庫表從某一表就成為數(shù)據(jù)庫表,反之,若將數(shù)據(jù)庫表從某一數(shù)據(jù)庫中移出,該數(shù)據(jù)庫表就成為自由表。數(shù)據(jù)庫中移出,該數(shù)據(jù)庫表就成為自由表。 使用數(shù)據(jù)庫表還是自由表來保存需要管理使用數(shù)據(jù)庫表還是自由表來保存需要管理的數(shù)據(jù),取決于管理的數(shù)據(jù)之間是否存在著關(guān)的數(shù)據(jù),取決于管理的數(shù)據(jù)之間是否存在著關(guān)系以及關(guān)系的復(fù)雜度。如果要保存的數(shù)據(jù)需要系以及關(guān)系的復(fù)雜度。如果要保存的數(shù)據(jù)需要多個表,表與表之間又存在相互關(guān)系,這時必多個表,表與表之間又存在相互關(guān)系,這時必須建立一個數(shù)據(jù)庫,把這些表添加進(jìn)數(shù)據(jù)庫。須建立一個數(shù)據(jù)庫,把這些表添加進(jìn)數(shù)據(jù)庫。 需要注意的是,在數(shù)據(jù)庫中,實際只存

21、儲需要注意的是,在數(shù)據(jù)庫中,實際只存儲指向數(shù)據(jù)庫表的路徑指針,而數(shù)據(jù)庫中的表或指向數(shù)據(jù)庫表的路徑指針,而數(shù)據(jù)庫中的表或者其他數(shù)據(jù)庫對象是獨立存放在磁盤上的。者其他數(shù)據(jù)庫對象是獨立存放在磁盤上的。3.6.8 添加數(shù)據(jù)庫表添加數(shù)據(jù)庫表 首先打開需要添加表的數(shù)據(jù)庫文件,然后就首先打開需要添加表的數(shù)據(jù)庫文件,然后就可以建立一個新的數(shù)據(jù)表或?qū)⒆杂杀硖砑拥皆摂?shù)可以建立一個新的數(shù)據(jù)表或?qū)⒆杂杀硖砑拥皆摂?shù)據(jù)庫中而使之成為數(shù)據(jù)庫表。據(jù)庫中而使之成為數(shù)據(jù)庫表。 操作步驟是:操作步驟是: 打開數(shù)據(jù)庫設(shè)計器,在數(shù)據(jù)庫設(shè)計器中,單打開數(shù)據(jù)庫設(shè)計器,在數(shù)據(jù)庫設(shè)計器中,單擊工具欄的擊工具欄的“添加表添加表”按鈕。按鈕。 在

22、在“打開打開”對話框中選擇要添加的表名,單對話框中選擇要添加的表名,單擊擊“確定確定”按鈕。這樣,自由表就被添加進(jìn)數(shù)據(jù)庫按鈕。這樣,自由表就被添加進(jìn)數(shù)據(jù)庫中,成為數(shù)據(jù)庫表。中,成為數(shù)據(jù)庫表。3.6.9 建立新數(shù)據(jù)庫表建立新數(shù)據(jù)庫表 1、菜單方式、菜單方式 操作步驟是:操作步驟是:(1)打開數(shù)據(jù)庫設(shè)計器后,在)打開數(shù)據(jù)庫設(shè)計器后,在 “數(shù)據(jù)庫數(shù)據(jù)庫”菜單菜單或數(shù)據(jù)庫設(shè)計器的快捷菜單中,選擇或數(shù)據(jù)庫設(shè)計器的快捷菜單中,選擇“新建新建表表”命令,出現(xiàn)命令,出現(xiàn) “新建表新建表”對話框中。對話框中。(2)從)從“新建表新建表”對話框中選擇對話框中選擇“新建表新建表”,出現(xiàn)出現(xiàn)“創(chuàng)建創(chuàng)建”對話框;在對話

23、框;在“創(chuàng)建創(chuàng)建”對話框可對話框可以輸入表名、選擇保存表的位置,然后單擊以輸入表名、選擇保存表的位置,然后單擊“保存保存”按鈕,便出現(xiàn)數(shù)據(jù)庫表的按鈕,便出現(xiàn)數(shù)據(jù)庫表的“表設(shè)計表設(shè)計器器”對話框。對話框。2、命令方式、命令方式注意:注意:如果已打開了數(shù)據(jù)庫,則如果已打開了數(shù)據(jù)庫,則CREATE命令命令在數(shù)據(jù)庫中直接建立表。如果沒有打開數(shù)據(jù)庫,在數(shù)據(jù)庫中直接建立表。如果沒有打開數(shù)據(jù)庫,則則CREATE命令建立的表是自由表。命令建立的表是自由表。 數(shù)據(jù)庫表的表設(shè)計器對話框的下部,有顯數(shù)據(jù)庫表的表設(shè)計器對話框的下部,有顯示、字段有效性、匹配字段類型到類和字段注示、字段有效性、匹配字段類型到類和字段注釋

24、釋4個輸入?yún)^(qū)域,而這些設(shè)置在自由表的表設(shè)計個輸入?yún)^(qū)域,而這些設(shè)置在自由表的表設(shè)計器中并未包含。器中并未包含。 用用CREATE命令建立新數(shù)據(jù)庫表:命令建立新數(shù)據(jù)庫表: CREATE DATABASE |?數(shù)據(jù)庫表的表設(shè)計器數(shù)據(jù)庫表的表設(shè)計器 數(shù)據(jù)庫表所具有,而自由表不具備的幾個屬性:數(shù)據(jù)庫表所具有,而自由表不具備的幾個屬性:(1)數(shù)據(jù)庫表可以使用長表名和長字段名。)數(shù)據(jù)庫表可以使用長表名和長字段名。(2)可為數(shù)據(jù)庫表中的字段指定標(biāo)題和添加注釋。)可為數(shù)據(jù)庫表中的字段指定標(biāo)題和添加注釋。(3)可為數(shù)據(jù)庫表的字段指定默認(rèn)值和輸入掩碼。)可為數(shù)據(jù)庫表的字段指定默認(rèn)值和輸入掩碼。(4)數(shù)據(jù)庫表的字段有

25、默認(rèn)的控件類。)數(shù)據(jù)庫表的字段有默認(rèn)的控件類。(5)可為數(shù)據(jù)庫表規(guī)定字段級規(guī)則和記錄級規(guī)則。)可為數(shù)據(jù)庫表規(guī)定字段級規(guī)則和記錄級規(guī)則。(6)數(shù)據(jù)庫表支持參照完整性的主關(guān)鍵字索引和)數(shù)據(jù)庫表支持參照完整性的主關(guān)鍵字索引和 表間關(guān)系。表間關(guān)系。(7)支持)支持INSERT、UPDATE和和DELETE事件的觸事件的觸 發(fā)器等。發(fā)器等。 在在Visual FoxPro中,自由表的字段名最多包中,自由表的字段名最多包含含10個字符,數(shù)據(jù)庫表的字段名最多包含個字符,數(shù)據(jù)庫表的字段名最多包含128個個字符。字符。 建立數(shù)據(jù)庫表時,不僅要確定字段名、類型、建立數(shù)據(jù)庫表時,不僅要確定字段名、類型、寬度等內(nèi)容,

26、還可給字段和表定義屬性。當(dāng)自由寬度等內(nèi)容,還可給字段和表定義屬性。當(dāng)自由表添加到數(shù)據(jù)庫后,便可以設(shè)置許多自由表中得表添加到數(shù)據(jù)庫后,便可以設(shè)置許多自由表中得不到的屬性,這些屬性作為數(shù)據(jù)庫的一部分保存不到的屬性,這些屬性作為數(shù)據(jù)庫的一部分保存起來,并且一直為其所擁有。然而,一旦數(shù)據(jù)庫起來,并且一直為其所擁有。然而,一旦數(shù)據(jù)庫表移出成為自由表,則這些屬性就被取消。表移出成為自由表,則這些屬性就被取消。1、設(shè)置字段屬性、設(shè)置字段屬性 數(shù)據(jù)庫表設(shè)計器中,在字段選項卡的數(shù)據(jù)庫表設(shè)計器中,在字段選項卡的“顯示顯示”區(qū)域來設(shè)置字段屬性,包括顯示和格式、輸入掩碼區(qū)域來設(shè)置字段屬性,包括顯示和格式、輸入掩碼和標(biāo)

27、題。和標(biāo)題。(1)格式)格式 在在“顯示顯示”區(qū)域的區(qū)域的“格式格式”文本框用文本框用于鍵入格式表達(dá)式,確定當(dāng)前字段在瀏覽窗口、表于鍵入格式表達(dá)式,確定當(dāng)前字段在瀏覽窗口、表單或報表中輸出顯示時的格式,包括大小寫、字體單或報表中輸出顯示時的格式,包括大小寫、字體大小和樣式等。大小和樣式等。 例如,如果在例如,如果在“格式格式”文本框中鍵入文本框中鍵入“!”號,號,則在輸出顯示該字段內(nèi)容時,將所有字母轉(zhuǎn)換為大則在輸出顯示該字段內(nèi)容時,將所有字母轉(zhuǎn)換為大寫字母;如果鍵入字母寫字母;如果鍵入字母A表示僅允許輸出文字字符,表示僅允許輸出文字字符,不允許輸出數(shù)字、空格和標(biāo)點符號。不允許輸出數(shù)字、空格和標(biāo)

28、點符號。部分格式字符及功能如下表所示:部分格式字符及功能如下表所示:格式碼格式碼功能功能格式碼格式碼功能功能A只允許輸出文字字符,只允許輸出文字字符,不允許輸出數(shù)字、空格不允許輸出數(shù)字、空格和標(biāo)點符號和標(biāo)點符號!小寫字符轉(zhuǎn)換為大寫字小寫字符轉(zhuǎn)換為大寫字符符L在數(shù)值前顯示前導(dǎo)在數(shù)值前顯示前導(dǎo)0,而不是用空格字符而不是用空格字符用科學(xué)計數(shù)法表示數(shù)值用科學(xué)計數(shù)法表示數(shù)值數(shù)據(jù)數(shù)據(jù)D使用當(dāng)前系統(tǒng)設(shè)置的日使用當(dāng)前系統(tǒng)設(shè)置的日期格式期格式$顯示貨幣符號顯示貨幣符號(2)輸入掩碼)輸入掩碼 在在“顯示顯示”區(qū)的區(qū)的“輸入掩碼輸入掩碼”文本框中鍵文本框中鍵入輸入掩碼,用來指定字段的輸入格式,從而入輸入掩碼,用來

29、指定字段的輸入格式,從而減少人為的數(shù)據(jù)輸入錯誤,控制數(shù)據(jù)輸入的正減少人為的數(shù)據(jù)輸入錯誤,控制數(shù)據(jù)輸入的正確性。需要注意的是,輸入掩碼必須按位指定。確性。需要注意的是,輸入掩碼必須按位指定。例如,將輸入掩碼設(shè)置為例如,將輸入掩碼設(shè)置為999,999,表示在輸入,表示在輸入時,只能輸入數(shù)字且最多輸入時,只能輸入數(shù)字且最多輸入6位數(shù)字,中間的位數(shù)字,中間的“,”號不是掩碼,不必輸入,保持原樣,輸入時號不是掩碼,不必輸入,保持原樣,輸入時光標(biāo)會自動跳過。光標(biāo)會自動跳過。 部分輸入掩碼字符功能如下表所示:部分輸入掩碼字符功能如下表所示:輸入輸入掩碼掩碼功功 能能輸入掩輸入掩碼碼功功 能能X允許輸入任何字

30、符允許輸入任何字符9允許輸入數(shù)字和正負(fù)號允許輸入數(shù)字和正負(fù)號#允許輸入數(shù)字、空格和允許輸入數(shù)字、空格和正負(fù)號正負(fù)號.指出小數(shù)點位置指出小數(shù)點位置*在值的左邊顯示在值的左邊顯示*號號,用逗號分隔小數(shù)點左邊用逗號分隔小數(shù)點左邊的整數(shù)部分的整數(shù)部分(3)標(biāo)題)標(biāo)題 “標(biāo)題標(biāo)題”文本框中用來指定字段顯示時的文本框中用來指定字段顯示時的字段標(biāo)題。字段標(biāo)題。 在定義數(shù)據(jù)庫表的字段名時,一般都比較在定義數(shù)據(jù)庫表的字段名時,一般都比較簡練,例如,代表學(xué)生姓名的字段可使用姓名、簡練,例如,代表學(xué)生姓名的字段可使用姓名、XM、NAME等作為字段名,但在輸出顯示時等作為字段名,但在輸出顯示時難于表現(xiàn)字段的含義。所以

31、,標(biāo)題就是設(shè)置當(dāng)難于表現(xiàn)字段的含義。所以,標(biāo)題就是設(shè)置當(dāng)前字段在瀏覽窗口、表單或報表的標(biāo)題中所顯前字段在瀏覽窗口、表單或報表的標(biāo)題中所顯示的內(nèi)容。示的內(nèi)容。 (4) 字段注釋 給選定字段的一些注釋信息,在項目管理器中選定改字段時,會在底部顯示出來。 (5)字段的默認(rèn)值 給新加入數(shù)據(jù)庫表中的紀(jì)錄提前指定的一個數(shù)值或字符串。2設(shè)置有效性規(guī)則設(shè)置有效性規(guī)則 有效性規(guī)則是一個與字段或記錄相關(guān)的表達(dá)有效性規(guī)則是一個與字段或記錄相關(guān)的表達(dá)式,通過對用戶的值加以限制,提供數(shù)據(jù)有效性式,通過對用戶的值加以限制,提供數(shù)據(jù)有效性檢查。建立有效性規(guī)則時,必須建立一個有效的檢查。建立有效性規(guī)則時,必須建立一個有效的規(guī)

32、則表達(dá)式,以此來控制輸入到數(shù)據(jù)庫表的字段規(guī)則表達(dá)式,以此來控制輸入到數(shù)據(jù)庫表的字段和記錄的數(shù)據(jù)有效性。數(shù)據(jù)輸入時,有效性規(guī)則和記錄的數(shù)據(jù)有效性。數(shù)據(jù)輸入時,有效性規(guī)則把所輸入的值與所定義的規(guī)則表達(dá)式進(jìn)行比較,把所輸入的值與所定義的規(guī)則表達(dá)式進(jìn)行比較,如果輸入的值不滿足規(guī)則要求,則拒絕該值。如果輸入的值不滿足規(guī)則要求,則拒絕該值。 有效性規(guī)則分兩種:字段有效性規(guī)則和記有效性規(guī)則分兩種:字段有效性規(guī)則和記錄有效性規(guī)則。錄有效性規(guī)則。 字段有效性規(guī)則用來對當(dāng)前字段輸入數(shù)據(jù)的有字段有效性規(guī)則用來對當(dāng)前字段輸入數(shù)據(jù)的有效性、合法性進(jìn)行檢驗,它是對字段的約束,用以效性、合法性進(jìn)行檢驗,它是對字段的約束,用

33、以檢查單個字段中輸入的數(shù)據(jù)是否有效。檢查單個字段中輸入的數(shù)據(jù)是否有效。 記錄有效性規(guī)則用來對同一記錄中不同字段之記錄有效性規(guī)則用來對同一記錄中不同字段之間的邏輯關(guān)系進(jìn)行驗證,它是對記錄的約束。當(dāng)插間的邏輯關(guān)系進(jìn)行驗證,它是對記錄的約束。當(dāng)插入或修改記錄時,記錄有效性規(guī)則被激活,用來檢入或修改記錄時,記錄有效性規(guī)則被激活,用來檢查數(shù)據(jù)輸入的正確性。查數(shù)據(jù)輸入的正確性。記錄有效性規(guī)則只有在整條記錄有效性規(guī)則只有在整條記錄輸入完畢后才開始檢查數(shù)據(jù)的有效性。記錄輸入完畢后才開始檢查數(shù)據(jù)的有效性。 注:注:有效性規(guī)則只在數(shù)據(jù)庫表中存在。如果從有效性規(guī)則只在數(shù)據(jù)庫表中存在。如果從數(shù)據(jù)庫中移去或刪除一個表,

34、則所有屬于該表的字?jǐn)?shù)據(jù)庫中移去或刪除一個表,則所有屬于該表的字段有效性規(guī)則和記錄有效性規(guī)則都會從數(shù)據(jù)庫中刪段有效性規(guī)則和記錄有效性規(guī)則都會從數(shù)據(jù)庫中刪除。除。 (1)字段有效性)字段有效性 字段有效性區(qū)域包含規(guī)則、字段有效性區(qū)域包含規(guī)則、信息和默認(rèn)值三個文本框,各文本框均可以直信息和默認(rèn)值三個文本框,各文本框均可以直接鍵入數(shù)據(jù),也可以通過單擊其右邊的對話按接鍵入數(shù)據(jù),也可以通過單擊其右邊的對話按鈕鈕 。字字段段有有效效性性的的設(shè)設(shè)置置 “規(guī)則規(guī)則” 文本框:輸入對字段數(shù)據(jù)有效性進(jìn)行檢文本框:輸入對字段數(shù)據(jù)有效性進(jìn)行檢查的邏輯表達(dá)式。如:性別查的邏輯表達(dá)式。如:性別=”男男” OR 性別性別=”

35、女女”。其設(shè)置過程可直接在文本框中輸入也可以在其設(shè)置過程可直接在文本框中輸入也可以在“表達(dá)表達(dá)式生成器式生成器”對話框中進(jìn)行。對話框中進(jìn)行。表表達(dá)達(dá)式式生生成成器器“信息信息”文本框:用于輸入出錯提示信息。在文本框:用于輸入出錯提示信息。在進(jìn)行字段有效性校驗時,發(fā)現(xiàn)輸入的字段內(nèi)容有進(jìn)行字段有效性校驗時,發(fā)現(xiàn)輸入的字段內(nèi)容有錯時,顯示出錯提示信息,例如錯時,顯示出錯提示信息,例如“性別字段內(nèi)容性別字段內(nèi)容只能輸入男或女只能輸入男或女”?!澳J(rèn)值默認(rèn)值” 文本框:用于指定字段的默認(rèn)值。文本框:用于指定字段的默認(rèn)值。在增加新記錄時,字段默認(rèn)值會自動在新記錄中在增加新記錄時,字段默認(rèn)值會自動在新記錄中

36、顯示出來,當(dāng)該字段為默認(rèn)值時,不用輸入,從顯示出來,當(dāng)該字段為默認(rèn)值時,不用輸入,從而提高輸入速度。例如,在性別字段中,設(shè)置默而提高輸入速度。例如,在性別字段中,設(shè)置默認(rèn)值為認(rèn)值為“男男”。(2)記錄有效性)記錄有效性 在數(shù)據(jù)庫表的表設(shè)計器中,在數(shù)據(jù)庫表的表設(shè)計器中,“表表”選項卡中包選項卡中包含記錄有效性區(qū)域,其中包含含記錄有效性區(qū)域,其中包含“規(guī)則規(guī)則”和和“信信息息”兩個文本框,文本框的內(nèi)容輸入均可通過兩個文本框,文本框的內(nèi)容輸入均可通過單擊其右邊按鈕,在彈出的對話框中輸入信息。單擊其右邊按鈕,在彈出的對話框中輸入信息。 “規(guī)則規(guī)則”文本框用于指定記錄級有效性檢查規(guī)文本框用于指定記錄級有

37、效性檢查規(guī)則,是一個邏輯表達(dá)式。則,是一個邏輯表達(dá)式。 “信息信息”文本框用于指定出錯提示信息。在檢文本框用于指定出錯提示信息。在檢驗記錄級有效性規(guī)則時,發(fā)現(xiàn)輸入與規(guī)則不符驗記錄級有效性規(guī)則時,發(fā)現(xiàn)輸入與規(guī)則不符時該信息將會顯示出來。時該信息將會顯示出來。例如:設(shè)置員工表的記錄有效性。在例如:設(shè)置員工表的記錄有效性。在“規(guī)則規(guī)則“文本文本框中輸入:框中輸入:SUBSTR(部門編號,(部門編號,2,1)=SUBSTR(員工編號,(員工編號,4,1)。在)。在“信息信息”文本框輸入文本框輸入“ 部部門編號的第門編號的第2位數(shù)字與員工編號的第位數(shù)字與員工編號的第4位數(shù)字要相位數(shù)字要相同同”。3. 觸

38、發(fā)器觸發(fā)器 字段級有效性和記錄有效性規(guī)則主要限制非字段級有效性和記錄有效性規(guī)則主要限制非法數(shù)據(jù)的輸入,而數(shù)據(jù)輸入后還要進(jìn)行修改、刪法數(shù)據(jù)的輸入,而數(shù)據(jù)輸入后還要進(jìn)行修改、刪除等操作。若要控制對已經(jīng)存在的記錄所作的非除等操作。若要控制對已經(jīng)存在的記錄所作的非法操作,則應(yīng)使用數(shù)據(jù)庫表的記錄級觸發(fā)器。法操作,則應(yīng)使用數(shù)據(jù)庫表的記錄級觸發(fā)器。 觸發(fā)器是在某些事件發(fā)生時觸發(fā)執(zhí)行的一個觸發(fā)器是在某些事件發(fā)生時觸發(fā)執(zhí)行的一個表達(dá)式或一個過程。這些事件包括插入記錄、修表達(dá)式或一個過程。這些事件包括插入記錄、修改記錄和刪除記錄。改記錄和刪除記錄。 “表表”選項卡中有選項卡中有3個觸發(fā)器,分別用于指定個觸發(fā)器,分

39、別用于指定記錄插入、更新、刪除的規(guī)則。記錄插入、更新、刪除的規(guī)則。插入觸發(fā)器:每次向數(shù)據(jù)庫表中插入或追加記插入觸發(fā)器:每次向數(shù)據(jù)庫表中插入或追加記錄時,觸發(fā)該規(guī)則,以檢查插入的記錄是否滿足錄時,觸發(fā)該規(guī)則,以檢查插入的記錄是否滿足規(guī)則。規(guī)則。更新觸發(fā)器:每次更新記錄時,觸發(fā)該規(guī)則。更新觸發(fā)器:每次更新記錄時,觸發(fā)該規(guī)則。刪除觸發(fā)器:每次對表記錄進(jìn)行邏輯刪除時,刪除觸發(fā)器:每次對表記錄進(jìn)行邏輯刪除時,觸發(fā)該規(guī)則。觸發(fā)該規(guī)則。5.4.3 從數(shù)據(jù)庫中移去表從數(shù)據(jù)庫中移去表 在數(shù)據(jù)庫設(shè)計器中,先選擇要移去的表,然后在數(shù)據(jù)庫設(shè)計器中,先選擇要移去的表,然后單擊單擊 “移去表移去表”按鈕,或在按鈕,或在“

40、數(shù)據(jù)庫數(shù)據(jù)庫”菜單中選擇菜單中選擇“移去移去”命令,將彈出命令,將彈出“系統(tǒng)提示系統(tǒng)提示”對話框?qū)υ捒?: 選擇選擇“移去移去”按鈕,數(shù)據(jù)表僅從數(shù)據(jù)庫中移去,按鈕,數(shù)據(jù)表僅從數(shù)據(jù)庫中移去,該數(shù)據(jù)表仍存在磁盤上;選擇該數(shù)據(jù)表仍存在磁盤上;選擇“刪除刪除”按鈕,則數(shù)據(jù)按鈕,則數(shù)據(jù)表不但從該數(shù)據(jù)庫中移去,而且也進(jìn)行了物理刪除。表不但從該數(shù)據(jù)庫中移去,而且也進(jìn)行了物理刪除。 5.4.4 修改數(shù)據(jù)庫表修改數(shù)據(jù)庫表 在數(shù)據(jù)庫設(shè)計器中可以直接修改表的內(nèi)容和表在數(shù)據(jù)庫設(shè)計器中可以直接修改表的內(nèi)容和表結(jié)構(gòu),右擊要修改的數(shù)據(jù)庫表,彈出快捷菜單:結(jié)構(gòu),右擊要修改的數(shù)據(jù)庫表,彈出快捷菜單: 若選擇若選擇“瀏覽瀏覽”命

41、令,即進(jìn)入表的瀏覽窗口,命令,即進(jìn)入表的瀏覽窗口, 以后的操作和對自由表的瀏覽操作相同;以后的操作和對自由表的瀏覽操作相同; 若選擇若選擇“刪除刪除”命令,即可刪除表;命令,即可刪除表; 若選擇若選擇“修改修改”命令,即打開相應(yīng)表的表設(shè)命令,即打開相應(yīng)表的表設(shè)計計 器,在表設(shè)計器中可以修改表結(jié)構(gòu)、建立索器,在表設(shè)計器中可以修改表結(jié)構(gòu)、建立索 引以及設(shè)置字段屬性和表的有效性規(guī)則。引以及設(shè)置字段屬性和表的有效性規(guī)則。 4 表注釋 給選定表的一些注釋信息,在項目管理器中選定改表時,會在底部顯示出來。與字段注釋類似。3.5 建立表間的永久關(guān)系建立表間的永久關(guān)系 在在Visual FoxPro中,可以建

42、立數(shù)據(jù)庫表之間的中,可以建立數(shù)據(jù)庫表之間的永久關(guān)系,使相互關(guān)聯(lián)的表協(xié)同工作,使數(shù)據(jù)得到永久關(guān)系,使相互關(guān)聯(lián)的表協(xié)同工作,使數(shù)據(jù)得到更充分的利用。更充分的利用。 多表間的永久關(guān)系在查詢和視圖中能作為多表多表間的永久關(guān)系在查詢和視圖中能作為多表聯(lián)接的條件,也可作為表單和報表的默認(rèn)關(guān)系,永聯(lián)接的條件,也可作為表單和報表的默認(rèn)關(guān)系,永久關(guān)系被存儲在數(shù)據(jù)庫文件中,可以一直使用,除久關(guān)系被存儲在數(shù)據(jù)庫文件中,可以一直使用,除非該永久關(guān)系被刪除或更改。而多表間的臨時關(guān)系非該永久關(guān)系被刪除或更改。而多表間的臨時關(guān)系僅用于控制關(guān)聯(lián)表之間的指針聯(lián)動,這種關(guān)系不能僅用于控制關(guān)聯(lián)表之間的指針聯(lián)動,這種關(guān)系不能被保存在

43、文件中,每次要使用時都需要重新建立。被保存在文件中,每次要使用時都需要重新建立。 3.5.1 為數(shù)據(jù)庫表建立索引為數(shù)據(jù)庫表建立索引1. 索引的概念索引的概念物理順序物理順序:指記錄存儲在磁盤上的順序。在執(zhí)行排序:指記錄存儲在磁盤上的順序。在執(zhí)行排序 命令后,新生成的文件形成新的物理順序。命令后,新生成的文件形成新的物理順序。邏輯順序邏輯順序:指索引文件中記錄的排列順序。在執(zhí):指索引文件中記錄的排列順序。在執(zhí)行索引命令后,形成一個索引關(guān)鍵表達(dá)式值與記行索引命令后,形成一個索引關(guān)鍵表達(dá)式值與記錄號之間的對照表,這個對照表就是索引文件。錄號之間的對照表,這個對照表就是索引文件。2. 索引文件的種類索

44、引文件的種類(1)單索引文件單索引文件。單索引文件是指一個索引文件中。單索引文件是指一個索引文件中只能保存一個索引,其擴展名為只能保存一個索引,其擴展名為IDX。(2)復(fù)合索引文件復(fù)合索引文件。復(fù)合索引文件可以存儲多個索。復(fù)合索引文件可以存儲多個索引,其擴展名為引,其擴展名為CDX。復(fù)合索引文件中的每個索引用一個索引標(biāo)志來表復(fù)合索引文件中的每個索引用一個索引標(biāo)志來表示,代表一種記錄的邏輯次序示,代表一種記錄的邏輯次序。復(fù)合索引分為結(jié)構(gòu)和非結(jié)構(gòu)兩種:復(fù)合索引分為結(jié)構(gòu)和非結(jié)構(gòu)兩種:結(jié)構(gòu)復(fù)合索引文件:結(jié)構(gòu)復(fù)合索引文件:文件主名與表的主名同名,它隨文件主名與表的主名同名,它隨表的打開而打開,在表進(jìn)行維

45、護時能自動維護。表的打開而打開,在表進(jìn)行維護時能自動維護。非結(jié)構(gòu)復(fù)合索引文件:非結(jié)構(gòu)復(fù)合索引文件:在建立時由用戶定義索引文件在建立時由用戶定義索引文件名。使用時,需要用打開索引文件的命令打開。名。使用時,需要用打開索引文件的命令打開。3. 索引文件的類型索引文件的類型 依據(jù)是否允許相同的索引關(guān)鍵值在不同記錄中重依據(jù)是否允許相同的索引關(guān)鍵值在不同記錄中重復(fù)出現(xiàn)來劃分。復(fù)出現(xiàn)來劃分。 (1)主索引主索引-不允許在指定字段或表達(dá)式中出現(xiàn)重復(fù)不允許在指定字段或表達(dá)式中出現(xiàn)重復(fù)值的索引值的索引 。每個表只能建立一個主索引,且只能。每個表只能建立一個主索引,且只能是數(shù)據(jù)庫表。是數(shù)據(jù)庫表。 (2)候選索引候

46、選索引-不允許在指定字段或表達(dá)式中出現(xiàn)重不允許在指定字段或表達(dá)式中出現(xiàn)重復(fù)值的索引復(fù)值的索引 。每個表可以建立多個候選索引,數(shù)。每個表可以建立多個候選索引,數(shù)據(jù)庫表和自由表均可建立。據(jù)庫表和自由表均可建立。 (3)惟一索引惟一索引-索引文件中只保留第一次出現(xiàn)的索引索引文件中只保留第一次出現(xiàn)的索引關(guān)鍵字值。數(shù)據(jù)庫表和自由表均可建立。關(guān)鍵字值。數(shù)據(jù)庫表和自由表均可建立。 (4)普通索引普通索引-允許索引關(guān)鍵字值重復(fù)出現(xiàn),數(shù)據(jù)庫允許索引關(guān)鍵字值重復(fù)出現(xiàn),數(shù)據(jù)庫表和自由表均可建立。表和自由表均可建立。 主索引主索引候選索引候選索引惟一索引惟一索引普通索引普通索引 具有索引的功能以及關(guān)鍵字的功具有索引的

47、功能以及關(guān)鍵字的功能??梢员WC字段值的唯一性,排除能??梢员WC字段值的唯一性,排除關(guān)鍵值的重復(fù)值。關(guān)鍵值的重復(fù)值。 兩種索引都與表文件同時打開和兩種索引都與表文件同時打開和關(guān)閉,且存儲在關(guān)閉,且存儲在結(jié)構(gòu)復(fù)合索引文件結(jié)構(gòu)復(fù)合索引文件中,中,而不能存儲在非結(jié)構(gòu)復(fù)合索引文件和而不能存儲在非結(jié)構(gòu)復(fù)合索引文件和單索候選索引文件中。單索候選索引文件中。 只具有索引排序的功能。只具有索引排序的功能。 數(shù)據(jù)庫表和自由表均可建立。數(shù)據(jù)庫表和自由表均可建立。4. 為數(shù)據(jù)庫表建立索引為數(shù)據(jù)庫表建立索引 選擇需要建立索引的數(shù)據(jù)庫表,單擊數(shù)據(jù)庫設(shè)選擇需要建立索引的數(shù)據(jù)庫表,單擊數(shù)據(jù)庫設(shè)計器工具欄的計器工具欄的“修改表

48、修改表”按鈕,彈出表設(shè)計器按鈕,彈出表設(shè)計器窗口,單擊索引選項卡,在各欄輸入有關(guān)內(nèi)容。窗口,單擊索引選項卡,在各欄輸入有關(guān)內(nèi)容。 5、永久關(guān)系的建立與使用、永久關(guān)系的建立與使用 在數(shù)據(jù)庫的兩個表間建立永久聯(lián)系時,必在數(shù)據(jù)庫的兩個表間建立永久聯(lián)系時,必須先選擇父表的主索引或候選索引,而子表中須先選擇父表的主索引或候選索引,而子表中的索引類型決定了要建立的永久聯(lián)系類型。如的索引類型決定了要建立的永久聯(lián)系類型。如果子表中的索引類型是主索引或候選索引,則果子表中的索引類型是主索引或候選索引,則建立建立一對一一對一關(guān)系;如果子表中的索引類型是普關(guān)系;如果子表中的索引類型是普通索引,則建立通索引,則建立一

49、對多一對多關(guān)系。關(guān)系。 建立過程:在數(shù)據(jù)庫設(shè)計器中,用鼠標(biāo)左建立過程:在數(shù)據(jù)庫設(shè)計器中,用鼠標(biāo)左鍵選中父表中的主索字段,然后拖至與其建立鍵選中父表中的主索字段,然后拖至與其建立聯(lián)系的子表中的對應(yīng)索引字段處,再松開鼠標(biāo)聯(lián)系的子表中的對應(yīng)索引字段處,再松開鼠標(biāo)左鍵,兩表間就建立了永久關(guān)系。左鍵,兩表間就建立了永久關(guān)系。數(shù)據(jù)庫設(shè)計器中建立永久關(guān)系數(shù)據(jù)庫設(shè)計器中建立永久關(guān)系 永久關(guān)系在數(shù)據(jù)庫設(shè)計器中表現(xiàn)為表索引之永久關(guān)系在數(shù)據(jù)庫設(shè)計器中表現(xiàn)為表索引之間的連線,若連線的一端為一根線,另一端也為間的連線,若連線的一端為一根線,另一端也為一根線,代表一對一關(guān)系,若連線的一端為一根一根線,代表一對一關(guān)系,若連

50、線的一端為一根線,另一端也為三根線,代表一對多關(guān)系。線,另一端也為三根線,代表一對多關(guān)系。 如果需要編輯修改已建立的聯(lián)系,可以單擊如果需要編輯修改已建立的聯(lián)系,可以單擊表之間的永久關(guān)系連線,此時連線變粗,然后從表之間的永久關(guān)系連線,此時連線變粗,然后從“數(shù)據(jù)庫數(shù)據(jù)庫”菜單項中選擇菜單項中選擇“編輯關(guān)系編輯關(guān)系”命令?;蛎睢;蛘哂檬髽?biāo)右鍵單擊連線,在彈出的快捷菜單中選者用鼠標(biāo)右鍵單擊連線,在彈出的快捷菜單中選擇擇“編輯關(guān)系編輯關(guān)系”或或“刪除關(guān)系刪除關(guān)系”命令?;蛘唠p擊命令?;蛘唠p擊連線,打開連線,打開“編輯關(guān)系編輯關(guān)系”對話框,在對話框中進(jìn)對話框,在對話框中進(jìn)行修改。行修改。6、 設(shè)置參照完

51、整性設(shè)置參照完整性 前面介紹了數(shù)據(jù)庫表的字段級、記錄級間的表前面介紹了數(shù)據(jù)庫表的字段級、記錄級間的表內(nèi)驗證規(guī)則,而參照完整性是表間規(guī)則。對于具有內(nèi)驗證規(guī)則,而參照完整性是表間規(guī)則。對于具有永久關(guān)系的兩個數(shù)據(jù)庫表,當(dāng)對一個表更新、刪除永久關(guān)系的兩個數(shù)據(jù)庫表,當(dāng)對一個表更新、刪除或插入記錄時,另一個表并未作相應(yīng)變化,這就破或插入記錄時,另一個表并未作相應(yīng)變化,這就破壞了數(shù)據(jù)的完整性。壞了數(shù)據(jù)的完整性。Visual FoxPro中提供參照完整中提供參照完整性生成器供用戶指出保證數(shù)據(jù)完整性的要求。性生成器供用戶指出保證數(shù)據(jù)完整性的要求。 在建立參照完整性之前必須首先清理數(shù)據(jù)庫,在建立參照完整性之前必須

52、首先清理數(shù)據(jù)庫,既物理刪除數(shù)據(jù)庫各個表中所有帶有刪除標(biāo)志的記既物理刪除數(shù)據(jù)庫各個表中所有帶有刪除標(biāo)志的記錄。操作方法是選擇錄。操作方法是選擇“數(shù)據(jù)庫數(shù)據(jù)庫”菜單項中的菜單項中的“清理清理數(shù)據(jù)庫數(shù)據(jù)庫”命令。命令。 ( 1)、打開參照完整性生成器)、打開參照完整性生成器 打開參照完整性生成器窗口有三種方法:打開參照完整性生成器窗口有三種方法: 從數(shù)據(jù)庫設(shè)計器快捷菜單中選擇從數(shù)據(jù)庫設(shè)計器快捷菜單中選擇“編輯參照完編輯參照完 整性整性”命令。命令。 選擇數(shù)據(jù)庫菜單中的選擇數(shù)據(jù)庫菜單中的“編輯參照完整性編輯參照完整性”命令。命令。 在數(shù)據(jù)庫設(shè)計器中雙擊兩個表之間的連線,在在數(shù)據(jù)庫設(shè)計器中雙擊兩個表之間的連線,在 編輯關(guān)系對話框中選擇參照完整性按鈕。編輯關(guān)系對話框中選擇參照完整性按鈕。(2)、設(shè)置參照完整性)、設(shè)置參照完整性 參照完整性生成器窗

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論