
Visual FoxPro(數(shù)據(jù)庫開發(fā)軟件)
詳情介紹
Visual FoxPro是Microsoft公司推出的數(shù)據(jù)庫開發(fā)軟件,用戶可用它來開發(fā)數(shù)據(jù)庫,既簡單又方便,它不僅可簡化數(shù)據(jù)庫管理,而且還可使應用程序的開發(fā)流程更為的合理,通過Visual FoxPro 用戶可使組織數(shù)據(jù)、定義數(shù)據(jù)庫規(guī)則和建立應用程序等工作變得簡單易行,且用戶還可利用可視化的設計工具和向?qū)砜焖賱?chuàng)建表單、查詢和打印報表。
與其他同類型的軟件相比,Visual FoxPro 的操作更為的快捷與簡單,它為用戶提供了菜單操作、命令操作和設計器操作三種方式,這三個都能為用戶實現(xiàn)同樣的效果,但菜單操作是其中最簡單,也是最適合新手的操作方式,用戶只需選擇菜單項和定義對話框中的參數(shù)就可以完成對數(shù)據(jù)庫的處理功能和Visual FoxPro 的狀態(tài)設置,同時用戶還可利用設計器創(chuàng)建數(shù)據(jù)庫處理的相應文件,該方式采用“所見即所得”的工作方式,可大大降低數(shù)據(jù)庫操作的難度,可以這么說只要用戶有了菜單操作和設計器工具即可直接進入數(shù)據(jù)處理。
另外,Visual FoxPro 還為用戶提供了一個集成化的系統(tǒng)開發(fā)環(huán)境,該環(huán)境支持過程式編程技術,而且在語言方面也作出了強大的擴充,并支持面向?qū)ο罂梢暬幊碳夹g,及強大的可視化程序設計工具。
1.在您的Visual FoxPro配置文件CONFIG.FPW 中,您可以包含需要的SET命令。在CONFIG.FPW 文件中,SET命令的語法是 command=value。例如,如果您想在CONFIG.FPW中設置默認目錄,則可以使用如下命令:DEFAULT=C:\VFP
2.若想改變不能使用SET命令的設置,您可以在“工具”菜單中選擇“選項”命令。在“選項”對話框中,您可以改變?nèi)缦略O置:界面選項-數(shù)據(jù)輸入和編程選項-文本編輯選項-表選項-遠程數(shù)據(jù)訪問選項-目錄、路徑和文件位置選項-表單設計器選項-項目管理器選項-可視類庫和OLE控制選項-日期、時間格式和數(shù)字格式選項
二、改變Visual FoxPro主窗口的標題
1.在您的配置文件CONFIG.FPW中添加TITLE命令,請使用如下語法:TITLE=MyTitle
2.如果您有啟動程序,您可以使用如下命令:_SCREEN.Caption=MyTitle
三、在表單上創(chuàng)建數(shù)組屬性
在“表單”菜單中選擇“新屬性”命令,然后輸入數(shù)組名和維數(shù)
1.可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據(jù)對應且只對應一個實體
2.在特殊情況下,它們可能是一對多或多對一的關系,即一張原始單證對應多個實體,或多張原始單證對應一個實體
3.這里的實體可以理解為基本表。明確這種對應關系后,對我們設計錄入界面大有好處:
〖例1〗:一份員工履歷資料,在人力資源信息系統(tǒng)中,就對應三個基本表:員工基本情況表、社會關系表、工作簡歷表。
這就是“一張原始單證對應多個實體”的典型例子
二、主鍵與外鍵
1.一般而言,一個實體不能既無主鍵又無外鍵。在E—R 圖中, 處于葉子部位的實體, 可以定義主鍵,也可以不定義主鍵
2.(因為它無子孫), 但必須要有外鍵(因為它有父親)
3.主鍵與外鍵的設計,在全局數(shù)據(jù)庫的設計中,占有重要地位。當全局數(shù)據(jù)庫的設計完成以后,有個美國數(shù)據(jù)庫設計專家說:“鍵,到處都是鍵,除了鍵之外,什么也沒有”,這就是他的數(shù)據(jù)庫設計經(jīng)驗之談,也反映了他對信息系統(tǒng)核心(數(shù)據(jù)模型)的高度抽象思想。因為:主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接
三、基本表的性質(zhì)
基本表與中間表、臨時表不同,因為它具有如下四個特性:
(1) 原子性?;颈碇械淖侄问遣豢稍俜纸獾?br /> (2) 原始性?;颈碇械挠涗浭窃紨?shù)據(jù)(基礎數(shù)據(jù))的記錄
(3) 演繹性。由基本表與代碼表中的數(shù)據(jù),可以派生出所有的輸出數(shù)據(jù)
(4) 穩(wěn)定性?;颈淼慕Y構是相對穩(wěn)定的,表中的記錄是要長期保存的
理解基本表的性質(zhì)后,在設計數(shù)據(jù)庫時,就能將基本表與中間表、臨時表區(qū)分開來
四、范式標準
1.基本表及其字段之間的關系, 應盡量滿足第三范式。但是,滿足第三范式的數(shù)據(jù)庫設計,往往不是最好的設計
2.為了提高數(shù)據(jù)庫的運行效率,常常需要降低范式標準:適當增加冗余,達到以空間換時間的目的
3.〖例2〗:有一張存放商品的基本表,如表1所示?!敖痤~”這個字段的存在,表明該表的設計不滿足第三范式,因為“金額”可以由“單價”乘以“數(shù)量”得到,說明“金額”是冗余字段。但是,增加“金額”這個冗余字段,可以提高查詢統(tǒng)計的速度,這就是以空間換時間的作法。在Rose 2002中,規(guī)定列有兩種類型:數(shù)據(jù)列和計算列?!敖痤~”這樣的列被稱為“計算列”,而“單價”和“數(shù)量”這樣的列被稱為“數(shù)據(jù)列”。
表1 商品表的表結構
商品名稱 商品型號 單價 數(shù)量 金額
電視機 29吋 2,500 40 100,000
五、通俗地理解三個范式
通俗地理解三個范式,對于數(shù)據(jù)庫設計大有好處。在數(shù)據(jù)庫設計中,為了更好地應用三個范式,就必須通俗地理解三個范式(通俗地理解是夠用的理解,并不是最科學最準確的理解):
1.第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解
2.第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性
3.第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余
沒有冗余的數(shù)據(jù)庫設計可以做到。但是,沒有冗余的數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫,有時為了提高運行效率,就必須降低范式標準,適當保留冗余數(shù)據(jù)。具體做法是:在概念數(shù)據(jù)模型設計時遵守第三范式,降低范式標準的工作放到物理數(shù)據(jù)模型設計時考慮。降低范式就是增加字段,允許冗余
六、要善于識別與正確處理多對多的關系
若兩個實體之間存在多對多的關系,則應消除這種關系。消除的辦法是,在兩者之間增加第三個實體。這樣,原來一個多對多的關系,現(xiàn)在變?yōu)閮蓚€一對多的關系。要將原來兩個實體的屬性合理地分配到三個實體中去。這里的第三個實體,實質(zhì)上是一個較復雜的關系,它對應一張基本表。一般來講,數(shù)據(jù)庫設計工具不能識別多對多的關系,但能處理多對多的關系
〖例3〗:在“圖書館信息系統(tǒng)”中,“圖書”是一個實體,“讀者”也是一個實體。這兩個實體之間的關系,是一個典型的多對多關系:一本圖書在不同時間可以被多個讀者借閱,一個讀者又可以借多本圖書。為此,要在二者之間增加第三個實體,該實體取名為“借還書”,它的屬性為:借還時間、借還標志(0表示借書,1表示還書),另外,還應該有兩個外鍵(“圖書”的主鍵,“讀者”的主鍵),使它能與“圖書”和“讀者”連接
七、主鍵PK的取值方法
PK是供程序員使用的表間連接工具,可以是一無物理意義的數(shù)字串, 由程序自動加1來實現(xiàn)。也可以是有物理意義的字段名或字段名的組合。不過前者比后者好。當PK是字段名的組合時,建議字段的個數(shù)不要太多,多了不但索引占用空間大,而且速度也慢
八、正確認識數(shù)據(jù)冗余
主鍵與外鍵在多表中的重復出現(xiàn), 不屬于數(shù)據(jù)冗余,這個概念必須清楚,事實上有許多人還不清楚。非鍵字段的重復出現(xiàn), 才是數(shù)據(jù)冗余!而且是一種低級冗余,即重復性的冗余。高級冗余不是字段的重復出現(xiàn),而是字段的派生出現(xiàn)。
〖例4〗:商品中的“單價、數(shù)量、金額”三個字段,“金額”就是由“單價”乘以“數(shù)量”派生出來的,它就是冗余,而且是一種高級冗余。冗余的目的是為了提高處理速度。只有低級冗余才會增加數(shù)據(jù)的不一致性,因為同一數(shù)據(jù),可能從不同時間、地點、角色上多次錄入。因此,我們提倡高級冗余(派生性冗余),反對低級冗余(重復性冗余)
九、E--R圖沒有標準答案
信息系統(tǒng)的E--R圖沒有標準答案,因為它的設計與畫法不是惟一的,只要它覆蓋了系統(tǒng)需求的業(yè)務范圍和功能內(nèi)容,就是可行的。反之要修改E--R圖。盡管它沒有惟一的標準答案,并不意味著可以隨意設計。好的E—R圖的標準是:結構清晰、關聯(lián)簡潔、實體個數(shù)適中、屬性分配合理、沒有低級冗余
十、視圖技術在數(shù)據(jù)庫設計中很有用
1.與基本表、代碼表、中間表不同,視圖是一種虛表,它依賴數(shù)據(jù)源的實表而存在。視圖是供程序員使用數(shù)據(jù)庫的一個窗口,是基表數(shù)據(jù)綜合的一種形式, 是數(shù)據(jù)處理的一種方法,是用戶數(shù)據(jù)保密的一種手段。為了進行復雜處理、提高運算速度和節(jié)省存儲空間, 視圖的定義深度一般不得超過三層。 若三層視圖仍不夠用, 則應在視圖上定義臨時表,在臨時表上再定義視圖。這樣反復交迭定義, 視圖的深度就不受限制了。
2.對于某些與國家政治、經(jīng)濟、技術、軍事和安全利益有關的信息系統(tǒng),視圖的作用更加重要。這些系統(tǒng)的基本表完成物理設計之后,立即在基本表上建立第一層視圖,這層視圖的個數(shù)和結構,與基本表的個數(shù)和結構是完全相同。并且規(guī)定,所有的程序員,一律只準在視圖上操作。只有數(shù)據(jù)庫管理員,帶著多個人員共同掌握的“安全鑰匙”,才能直接在基本表上操作。請讀者想想:這是為什么?
十一、中間表、報表和臨時表
中間表是存放統(tǒng)計數(shù)據(jù)的表,它是為數(shù)據(jù)倉庫、輸出報表或查詢結果而設計的,有時它沒有主鍵與外鍵(數(shù)據(jù)倉庫除外)。臨時表是程序員個人設計的,存放臨時記錄,為個人所用?;砗椭虚g表由DBA維護,臨時表由程序員自己用程序自動維護。
十二、完整性約束表現(xiàn)在三個方面
域的完整性:用Check來實現(xiàn)約束,在數(shù)據(jù)庫設計工具中,對字段的取值范圍進行定義時,有一個Check按鈕,通過它定義字段的值城。參照完整性:用PK、FK、表級觸發(fā)器來實現(xiàn)。用戶定義完整性:它是一些業(yè)務規(guī)則,用存儲過程和觸發(fā)器來實現(xiàn)。
十三、防止數(shù)據(jù)庫設計打補丁的方法是“三少原則”
(1) 一個數(shù)據(jù)庫中表的個數(shù)越少越好。只有表的個數(shù)少了,才能說明系統(tǒng)的E--R圖少而精,去掉了重復的多余的實體,形成了對客觀世界的高度抽象,進行了系統(tǒng)的數(shù)據(jù)集成,防止了打補丁式的設計;
(2) 一個表中組合主鍵的字段個數(shù)越少越好。因為主鍵的作用,一是建主鍵索引,二是做為子表的外鍵,所以組合主鍵的字段個數(shù)少了,不僅節(jié)省了運行時間,而且節(jié)省了索引存儲空間;
(3) 一個表中的字段個數(shù)越少越好。只有字段的個數(shù)少了,才能說明在系統(tǒng)中不存在數(shù)據(jù)重復,且很少有數(shù)據(jù)冗余,更重要的是督促讀者學會“列變行”,這樣就防止了將子表中的字段拉入到主表中去,在主表中留下許多空余的字段。所謂“列變行”,就是將主表中的一部分內(nèi)容拉出去,另外單獨建一個子表。這個方法很簡單,有的人就是不習慣、不采納、不執(zhí)行。數(shù)據(jù)庫設計的實用原則是:在數(shù)據(jù)冗余和處理速度之間找到合適的平衡點。“三少”是一個整體概念,綜合觀點,不能孤立某一個原則。該原則是相對的,不是絕對的?!叭唷痹瓌t肯定是錯誤的。試想:若覆蓋系統(tǒng)同樣的功能,一百個實體(共一千個屬性) 的E--R圖,肯定比二百個實體(共二千個屬性) 的E--R圖,要好得多。提倡“三少”原則,是叫讀者學會利用數(shù)據(jù)庫設計技術進行系統(tǒng)的數(shù)據(jù)集成。數(shù)據(jù)集成的步驟是將文件系統(tǒng)集成為應用數(shù)據(jù)庫,將應用數(shù)據(jù)庫集成為主題數(shù)據(jù)庫,將主題數(shù)據(jù)庫集成為全局綜合數(shù)據(jù)庫。集成的程度越高,數(shù)據(jù)共享性就越強,信息孤島現(xiàn)象就越少,整個企業(yè)信息系統(tǒng)的全局E—R圖中實體的個數(shù)、主鍵的個數(shù)、屬性的個數(shù)就會越少。
提倡“三少”原則的目的,是防止讀者利用打補丁技術,不斷地對數(shù)據(jù)庫進行增刪改,使企業(yè)數(shù)據(jù)庫變成了隨意設計數(shù)據(jù)庫表的“垃圾堆”,或數(shù)據(jù)庫表的“大雜院”,最后造成數(shù)據(jù)庫中的基本表、代碼表、中間表、臨時表雜亂無章,不計其數(shù),導致企事業(yè)單位的信息系統(tǒng)無法維護而癱瘓。“三多”原則任何人都可以做到,該原則是“打補丁方法”設計數(shù)據(jù)庫的歪理學說?!叭佟痹瓌t是少而精的原則,它要求有較高的數(shù)據(jù)庫設計技巧與藝術,不是任何人都能做到的,因為該原則是杜絕用“打補丁方法”設計數(shù)據(jù)庫的理論依據(jù)。
十四、 提高數(shù)據(jù)庫運行效率的辦法
在給定的系統(tǒng)硬件和系統(tǒng)軟件條件下,提高數(shù)據(jù)庫系統(tǒng)的運行效率的辦法是:
(1) 在數(shù)據(jù)庫物理設計時,降低范式,增加冗余, 少用觸發(fā)器, 多用存儲過程。
(2) 當計算非常復雜、而且記錄條數(shù)非常巨大時(例如一千萬條),復雜計算要先在數(shù)據(jù)庫外面,以文件系統(tǒng)方式用C++語言計算處理完成之后,最后才入庫追加到表中去。這是電信計費系統(tǒng)設計的經(jīng)驗。
(3) 發(fā)現(xiàn)某個表的記錄太多,例如超過一千萬條,則要對該表進行水平分割。水平分割的做法是,以該表主鍵PK的某個值為界線,將該表的記錄水平分割為兩個表。若發(fā)現(xiàn)某個表的字段太多,例如超過八十個,則垂直分割該表,將原來的一個表分解為兩個表。
(4) 對數(shù)據(jù)庫管理系統(tǒng)DBMS進行系統(tǒng)優(yōu)化,即優(yōu)化各種系統(tǒng)參數(shù),如緩沖區(qū)個數(shù)。
(5) 在使用面向數(shù)據(jù)的SQL語言進行程序設計時,盡量采取優(yōu)化算法。
總之,要提高數(shù)據(jù)庫的運行效率,必須從數(shù)據(jù)庫系統(tǒng)級優(yōu)化、數(shù)據(jù)庫設計級優(yōu)化、程序?qū)崿F(xiàn)級優(yōu)化,這三個層次上同時下功夫。
在Visual FoxPro 中可以借助“項目管理器”創(chuàng)建和集中管理應用程序中的任何元素;可以訪問所有向?qū)?、生成器、工具欄和其他易于使用的工?br /> 二、提高應用程序開發(fā)的效率
Visual FoxPro 增加了面向?qū)ο蟮恼Z言和方式,借助Visual FoxPro 的對象模型,可以充分使用面向?qū)ο蟪绦蛟O計的所有功能
三、互操作性和支持Internet
Visual FoxPro 支持具有對象的鏈接與嵌入(OLE)拖放,可以在Visual FoxPro 和其他應用程序之間,或在Visual FoxPro 應用程序內(nèi)部移動數(shù)據(jù)
四、充分利用已有數(shù)據(jù)
Visual FoxPro 為升級數(shù)據(jù)庫提供了一個方便實用的轉(zhuǎn)換器工具,可以將早期版本中的數(shù)據(jù)移植過來使用;對于電子表格或文本文件中的數(shù)據(jù),也可以方便的實現(xiàn)數(shù)據(jù)共享
五、全新的操作方式
在操作方式上提供了菜單操作、命令操作和設計器操作三種方式,它們都能達到相同的效果:
1.菜單操作是最簡單的一種,用戶只須選擇菜單欄中的菜單項和定義對話框中的參數(shù)就可以完成對數(shù)據(jù)庫的處理功能和Visual FoxPro 的狀態(tài)設置
2.通過設計器創(chuàng)建數(shù)據(jù)庫處理的相應文件,這是可視化的工作方式,所見格式即所得,大大降低了數(shù)據(jù)庫操作的難度
3.對于最終用戶來說,有了菜單操作和設計器工具,可以直接進行數(shù)據(jù)處理
六、新的操作
它的語句、函數(shù)和語法規(guī)則與Xbase(如dBASE、FoxBase、FoxPro)語言基本上是兼容的,而且功能更加強大
七、新的關系數(shù)據(jù)庫系統(tǒng)
新一代小型數(shù)據(jù)庫管理系統(tǒng)的杰出代表,它以強大的性能、完整而又豐富的工具、極高的處理速度、友好的界面以及完備的兼容性等特點,備受廣大用戶的歡迎
八、集成化的系統(tǒng)開發(fā)環(huán)境
它不僅支持過程式編程技術,而且在語言方面作了強大的擴充,支持面向?qū)ο罂梢暬幊碳夹g,并擁有功能強大的可視化程序設計工具,目前,Visual FoxPro 是用戶收集信息、查詢數(shù)據(jù)、創(chuàng)建集成數(shù)據(jù)庫系統(tǒng)、進行實用系統(tǒng)開發(fā)較為理想的工具軟件
3、成功解決了計算機2000年的問題
4、增強了Internet技術和WWW數(shù)據(jù)庫的設計
5、ctiveX 和向?qū)?、生成器及控件等集成化工?br /> 6、新引入了網(wǎng)絡圖象文件格式:gif和jpeg
一、成立數(shù)據(jù)小組
大型數(shù)據(jù)庫數(shù)據(jù)元素多,在設計上有必要成立專門的數(shù)據(jù)小組。由于數(shù)據(jù)庫設計者不一定是使用者,對系統(tǒng)設計中的數(shù)據(jù)元素不可能考慮周全,數(shù)據(jù)庫設計出來后,往往難以找到所需的庫表,因此數(shù)據(jù)小組最好由熟悉業(yè)務的項目骨干組成。
數(shù)據(jù)小組的職能并非是設計數(shù)據(jù)庫,而是通過需求分析,在參考其他相似系統(tǒng)的基礎上,提取系統(tǒng)的基本數(shù)據(jù)元素,擔負對數(shù)據(jù)庫的審核。審核內(nèi)容包括審核新的數(shù)據(jù)庫元素是否完全、能否實現(xiàn)全部業(yè)務需求;對舊數(shù)據(jù)庫(如果存在舊系統(tǒng))的分析及數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)庫設計的審核、控制及必要調(diào)整。
二、設計原則
1.規(guī)范命名。所有的庫名、表名、域名必須遵循統(tǒng)一的命名規(guī)則,并進行必要說明,以方便設計、維護、查詢。
2.控制字段的引用。在設計時,可以選擇適當?shù)臄?shù)據(jù)庫設計管理工具,以方便開發(fā)人員的分布式設計和數(shù)據(jù)小組的集中審核管理。采用統(tǒng)一的命名規(guī)則,如果設計的字段已經(jīng)存在,可直接引用;否則,應重新設計。
3.庫表重復控制。在設計過程中,如果發(fā)現(xiàn)大部分字段都已存在,開發(fā)人員應懷疑所設計的庫表是否已存在。通過對字段所在庫表及相應設計人員的查詢,可以確認庫表是否確實重復。
4.并發(fā)控制。設計中應進行并發(fā)控制,即對于同一個庫表,在同一時間只有一個人有控制權,其他人只能進行查詢。
5.必要的討論。數(shù)據(jù)庫設計完成后,數(shù)據(jù)小組應與相關人員進行討論,通過討論來熟悉數(shù)據(jù)庫,從而對設計中存在的問題進行控制或從中獲取數(shù)據(jù)庫設計的必要信息。
6.數(shù)據(jù)小組的審核。庫表的定版、修改最終都要通過數(shù)據(jù)小組的審核,以保證符合必要的要求。
7.頭文件處理。每次數(shù)據(jù)修改后,數(shù)據(jù)小組要對相應的頭文件進行修改(可由管理軟件自動完成),并通知相關的開發(fā)人員,以便進行相應的程序修改。
三、設計技巧
1.分類拆分數(shù)據(jù)量大的表。對于經(jīng)常使用的表(如某些參數(shù)表或代碼對照表),由于其使用頻率很高,要盡量減少表中的記錄數(shù)量。例如,銀行的戶主賬表原來設計成一張表,雖然可以方便程序的設計與維護,但經(jīng)過分析發(fā)現(xiàn),由于數(shù)據(jù)量太大,會影響數(shù)據(jù)的迅速定位。如果將戶主賬表分別設計為活期戶主賬、定期戶主賬及對公戶主賬等,則可以大大提高查詢效率。
2.索引設計。對于大的數(shù)據(jù)庫表,合理的索引能夠提高整個數(shù)據(jù)庫的操作效率。在索引設計中,索引字段應挑選重復值較少的字段;在對建有復合索引的字段進行檢索時,應注意按照復合索引字段建立的順序進行。例如,如果對一個5萬多條記錄的流水表以日期和流水號為序建立復合索引,由于在該表中日期的重復值接近整個表的記錄數(shù),用流水號進行查詢所用的時間接近3秒;而如果以流水號為索引字段建立索引進行相同的查詢,所用時間不到1秒。因此在大型數(shù)據(jù)庫設計中,只有進行合理的索引字段選擇,才能有效提高整個數(shù)據(jù)庫的操作效率。
3.數(shù)據(jù)操作的優(yōu)化。在大型數(shù)據(jù)庫中,如何提高數(shù)據(jù)操作效率值得關注。例如,每在數(shù)據(jù)庫流水表中增加一筆業(yè)務,就必須從流水控制表中取出流水號,并將其流水號的數(shù)值加一。正常情況下,單筆操作的反應速度尚屬正常,但當用它進行批量業(yè)務處理時,速度會明顯減慢。經(jīng)過分析發(fā)現(xiàn),每次對流水控制表中的流水號數(shù)值加一時都要鎖定該表,而該表卻是整個系統(tǒng)操作的核心,有可能在操作時被其他進程鎖定,因而使整個事務操作速度變慢。對這一問題的解決的辦法是,根據(jù)批量業(yè)務的總筆數(shù)批量申請流水號,并對流水控制表進行一次更新,即可提高批量業(yè)務處理的速度。另一個例子是對插表的優(yōu)化。對于大批量的業(yè)務處理,如果在插入數(shù)據(jù)庫表時用普通的Insert語句,速度會很慢。其原因在于,每次插表都要進行一次I/O操作,花費較長的時間。改進后,可以用Put語句等緩沖區(qū)形式等滿頁后再進行I/O操作,從而提高效率。對大的數(shù)據(jù)庫表進行刪除時,一般會直接用Delete語句,這個語句雖然可以進行小表操作,但對大表卻會因帶來大事務而導致刪除速度很慢甚至失敗。解決的方法是去掉事務,但更有效的辦法是先進行Drop操作再進行重建。
Visual FoxPro 現(xiàn)在認為數(shù)據(jù)庫是表的容器,而不將單個的表看作數(shù)據(jù)庫。Visual FoxPro 數(shù)據(jù)庫 (.DBC) 使得“數(shù)據(jù)庫”菜單上的選項過時。因為“運行”菜單中的選項被去掉或被放在其他菜單上,所以 Visual FoxPro 去掉了“運行”菜單
二、如何找到 Visual FoxPro 系統(tǒng)工具欄列表?
在“查看”菜單中選擇“工具欄”命令,您可以看到可用的系統(tǒng)工具欄列表。在“工具欄”對話框中選擇一個工具欄,然后單擊“定制”按鈕,您可以定制一個工具欄
三、當關閉項目管理器窗口,使之成為工具欄后,如何恢復原來的窗口?
用鼠標單擊選項卡上矩形區(qū)域。將項目管理器拖到 Visual FoxPro 主窗口,然后釋放
四、單擊鼠標右鍵后,為何會出現(xiàn)一個菜單?
單擊鼠標右鍵可以彈出一個對環(huán)境敏感的快捷菜單。也就是說,如果鼠標指在一個對象上,單擊右鍵會彈出一個菜單,它包含能用來操作該對象的選項
五、打開多個窗口和工具欄時,怎樣才能避免雜亂?
您有如下幾個選擇:您可以在屏幕的上部和邊緣停放工具欄。您可以按下 CTRL+F1 激活每個窗口,找到想要的窗口。您可以在“窗口”菜單中使用窗口列表,選擇想激活的窗口。您可以重新放置和調(diào)整各個窗口
六、當創(chuàng)建一個控制的子類時,想為按鈕的單擊事件添加代碼,還想執(zhí)行父類的代碼。怎辦?
在單擊事件中,在添加任何新代碼之前添加 objectname::click。這樣,Visual FoxPro 就執(zhí)行父類的單擊事件,接下來運行您添加的代碼
七、有一個按鈕位于表單上,當創(chuàng)建一個基于按鈕的類時,怎樣引用表單屬性?
您可以使用 THISFORM、THIS.PARENT 或 THISFORMSET 對象引用。例如: ThisForm.Caption="MYCAPTION"
八、定義一個類之后,怎樣擊活或訪問對象?
基于類可以創(chuàng)建對象。類就象房子的藍圖或者電話的電路圖,藍圖和電路圖簡單地勾勒出房子和電話的特點和功能。您不能激活類,必須使用 CREATEOBJECT( ) 命令從一個類創(chuàng)建對象,然后可以顯示對象。有關詳細信息,請參閱“幫助”中的 CREATEOBJECT( ) 主題
與其他同類型的軟件相比,Visual FoxPro 的操作更為的快捷與簡單,它為用戶提供了菜單操作、命令操作和設計器操作三種方式,這三個都能為用戶實現(xiàn)同樣的效果,但菜單操作是其中最簡單,也是最適合新手的操作方式,用戶只需選擇菜單項和定義對話框中的參數(shù)就可以完成對數(shù)據(jù)庫的處理功能和Visual FoxPro 的狀態(tài)設置,同時用戶還可利用設計器創(chuàng)建數(shù)據(jù)庫處理的相應文件,該方式采用“所見即所得”的工作方式,可大大降低數(shù)據(jù)庫操作的難度,可以這么說只要用戶有了菜單操作和設計器工具即可直接進入數(shù)據(jù)處理。
另外,Visual FoxPro 還為用戶提供了一個集成化的系統(tǒng)開發(fā)環(huán)境,該環(huán)境支持過程式編程技術,而且在語言方面也作出了強大的擴充,并支持面向?qū)ο罂梢暬幊碳夹g,及強大的可視化程序設計工具。

Visual FoxPro使用教程
一、在Visual FoxPro環(huán)境中設置所需的默認值1.在您的Visual FoxPro配置文件CONFIG.FPW 中,您可以包含需要的SET命令。在CONFIG.FPW 文件中,SET命令的語法是 command=value。例如,如果您想在CONFIG.FPW中設置默認目錄,則可以使用如下命令:DEFAULT=C:\VFP
2.若想改變不能使用SET命令的設置,您可以在“工具”菜單中選擇“選項”命令。在“選項”對話框中,您可以改變?nèi)缦略O置:界面選項-數(shù)據(jù)輸入和編程選項-文本編輯選項-表選項-遠程數(shù)據(jù)訪問選項-目錄、路徑和文件位置選項-表單設計器選項-項目管理器選項-可視類庫和OLE控制選項-日期、時間格式和數(shù)字格式選項
二、改變Visual FoxPro主窗口的標題
1.在您的配置文件CONFIG.FPW中添加TITLE命令,請使用如下語法:TITLE=MyTitle
2.如果您有啟動程序,您可以使用如下命令:_SCREEN.Caption=MyTitle
三、在表單上創(chuàng)建數(shù)組屬性
在“表單”菜單中選擇“新屬性”命令,然后輸入數(shù)組名和維數(shù)
數(shù)據(jù)庫設計十四個技巧
一、原始單據(jù)與實體之間的關系1.可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據(jù)對應且只對應一個實體
2.在特殊情況下,它們可能是一對多或多對一的關系,即一張原始單證對應多個實體,或多張原始單證對應一個實體
3.這里的實體可以理解為基本表。明確這種對應關系后,對我們設計錄入界面大有好處:
〖例1〗:一份員工履歷資料,在人力資源信息系統(tǒng)中,就對應三個基本表:員工基本情況表、社會關系表、工作簡歷表。
這就是“一張原始單證對應多個實體”的典型例子
二、主鍵與外鍵
1.一般而言,一個實體不能既無主鍵又無外鍵。在E—R 圖中, 處于葉子部位的實體, 可以定義主鍵,也可以不定義主鍵
2.(因為它無子孫), 但必須要有外鍵(因為它有父親)
3.主鍵與外鍵的設計,在全局數(shù)據(jù)庫的設計中,占有重要地位。當全局數(shù)據(jù)庫的設計完成以后,有個美國數(shù)據(jù)庫設計專家說:“鍵,到處都是鍵,除了鍵之外,什么也沒有”,這就是他的數(shù)據(jù)庫設計經(jīng)驗之談,也反映了他對信息系統(tǒng)核心(數(shù)據(jù)模型)的高度抽象思想。因為:主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接
三、基本表的性質(zhì)
基本表與中間表、臨時表不同,因為它具有如下四個特性:
(1) 原子性?;颈碇械淖侄问遣豢稍俜纸獾?br /> (2) 原始性?;颈碇械挠涗浭窃紨?shù)據(jù)(基礎數(shù)據(jù))的記錄
(3) 演繹性。由基本表與代碼表中的數(shù)據(jù),可以派生出所有的輸出數(shù)據(jù)
(4) 穩(wěn)定性?;颈淼慕Y構是相對穩(wěn)定的,表中的記錄是要長期保存的
理解基本表的性質(zhì)后,在設計數(shù)據(jù)庫時,就能將基本表與中間表、臨時表區(qū)分開來
四、范式標準
1.基本表及其字段之間的關系, 應盡量滿足第三范式。但是,滿足第三范式的數(shù)據(jù)庫設計,往往不是最好的設計
2.為了提高數(shù)據(jù)庫的運行效率,常常需要降低范式標準:適當增加冗余,達到以空間換時間的目的
3.〖例2〗:有一張存放商品的基本表,如表1所示?!敖痤~”這個字段的存在,表明該表的設計不滿足第三范式,因為“金額”可以由“單價”乘以“數(shù)量”得到,說明“金額”是冗余字段。但是,增加“金額”這個冗余字段,可以提高查詢統(tǒng)計的速度,這就是以空間換時間的作法。在Rose 2002中,規(guī)定列有兩種類型:數(shù)據(jù)列和計算列?!敖痤~”這樣的列被稱為“計算列”,而“單價”和“數(shù)量”這樣的列被稱為“數(shù)據(jù)列”。
表1 商品表的表結構
商品名稱 商品型號 單價 數(shù)量 金額
電視機 29吋 2,500 40 100,000
五、通俗地理解三個范式
通俗地理解三個范式,對于數(shù)據(jù)庫設計大有好處。在數(shù)據(jù)庫設計中,為了更好地應用三個范式,就必須通俗地理解三個范式(通俗地理解是夠用的理解,并不是最科學最準確的理解):
1.第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解
2.第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性
3.第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余
沒有冗余的數(shù)據(jù)庫設計可以做到。但是,沒有冗余的數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫,有時為了提高運行效率,就必須降低范式標準,適當保留冗余數(shù)據(jù)。具體做法是:在概念數(shù)據(jù)模型設計時遵守第三范式,降低范式標準的工作放到物理數(shù)據(jù)模型設計時考慮。降低范式就是增加字段,允許冗余
六、要善于識別與正確處理多對多的關系
若兩個實體之間存在多對多的關系,則應消除這種關系。消除的辦法是,在兩者之間增加第三個實體。這樣,原來一個多對多的關系,現(xiàn)在變?yōu)閮蓚€一對多的關系。要將原來兩個實體的屬性合理地分配到三個實體中去。這里的第三個實體,實質(zhì)上是一個較復雜的關系,它對應一張基本表。一般來講,數(shù)據(jù)庫設計工具不能識別多對多的關系,但能處理多對多的關系
〖例3〗:在“圖書館信息系統(tǒng)”中,“圖書”是一個實體,“讀者”也是一個實體。這兩個實體之間的關系,是一個典型的多對多關系:一本圖書在不同時間可以被多個讀者借閱,一個讀者又可以借多本圖書。為此,要在二者之間增加第三個實體,該實體取名為“借還書”,它的屬性為:借還時間、借還標志(0表示借書,1表示還書),另外,還應該有兩個外鍵(“圖書”的主鍵,“讀者”的主鍵),使它能與“圖書”和“讀者”連接
七、主鍵PK的取值方法
PK是供程序員使用的表間連接工具,可以是一無物理意義的數(shù)字串, 由程序自動加1來實現(xiàn)。也可以是有物理意義的字段名或字段名的組合。不過前者比后者好。當PK是字段名的組合時,建議字段的個數(shù)不要太多,多了不但索引占用空間大,而且速度也慢
八、正確認識數(shù)據(jù)冗余
主鍵與外鍵在多表中的重復出現(xiàn), 不屬于數(shù)據(jù)冗余,這個概念必須清楚,事實上有許多人還不清楚。非鍵字段的重復出現(xiàn), 才是數(shù)據(jù)冗余!而且是一種低級冗余,即重復性的冗余。高級冗余不是字段的重復出現(xiàn),而是字段的派生出現(xiàn)。
〖例4〗:商品中的“單價、數(shù)量、金額”三個字段,“金額”就是由“單價”乘以“數(shù)量”派生出來的,它就是冗余,而且是一種高級冗余。冗余的目的是為了提高處理速度。只有低級冗余才會增加數(shù)據(jù)的不一致性,因為同一數(shù)據(jù),可能從不同時間、地點、角色上多次錄入。因此,我們提倡高級冗余(派生性冗余),反對低級冗余(重復性冗余)
九、E--R圖沒有標準答案
信息系統(tǒng)的E--R圖沒有標準答案,因為它的設計與畫法不是惟一的,只要它覆蓋了系統(tǒng)需求的業(yè)務范圍和功能內(nèi)容,就是可行的。反之要修改E--R圖。盡管它沒有惟一的標準答案,并不意味著可以隨意設計。好的E—R圖的標準是:結構清晰、關聯(lián)簡潔、實體個數(shù)適中、屬性分配合理、沒有低級冗余
十、視圖技術在數(shù)據(jù)庫設計中很有用
1.與基本表、代碼表、中間表不同,視圖是一種虛表,它依賴數(shù)據(jù)源的實表而存在。視圖是供程序員使用數(shù)據(jù)庫的一個窗口,是基表數(shù)據(jù)綜合的一種形式, 是數(shù)據(jù)處理的一種方法,是用戶數(shù)據(jù)保密的一種手段。為了進行復雜處理、提高運算速度和節(jié)省存儲空間, 視圖的定義深度一般不得超過三層。 若三層視圖仍不夠用, 則應在視圖上定義臨時表,在臨時表上再定義視圖。這樣反復交迭定義, 視圖的深度就不受限制了。
2.對于某些與國家政治、經(jīng)濟、技術、軍事和安全利益有關的信息系統(tǒng),視圖的作用更加重要。這些系統(tǒng)的基本表完成物理設計之后,立即在基本表上建立第一層視圖,這層視圖的個數(shù)和結構,與基本表的個數(shù)和結構是完全相同。并且規(guī)定,所有的程序員,一律只準在視圖上操作。只有數(shù)據(jù)庫管理員,帶著多個人員共同掌握的“安全鑰匙”,才能直接在基本表上操作。請讀者想想:這是為什么?
十一、中間表、報表和臨時表
中間表是存放統(tǒng)計數(shù)據(jù)的表,它是為數(shù)據(jù)倉庫、輸出報表或查詢結果而設計的,有時它沒有主鍵與外鍵(數(shù)據(jù)倉庫除外)。臨時表是程序員個人設計的,存放臨時記錄,為個人所用?;砗椭虚g表由DBA維護,臨時表由程序員自己用程序自動維護。
十二、完整性約束表現(xiàn)在三個方面
域的完整性:用Check來實現(xiàn)約束,在數(shù)據(jù)庫設計工具中,對字段的取值范圍進行定義時,有一個Check按鈕,通過它定義字段的值城。參照完整性:用PK、FK、表級觸發(fā)器來實現(xiàn)。用戶定義完整性:它是一些業(yè)務規(guī)則,用存儲過程和觸發(fā)器來實現(xiàn)。
十三、防止數(shù)據(jù)庫設計打補丁的方法是“三少原則”
(1) 一個數(shù)據(jù)庫中表的個數(shù)越少越好。只有表的個數(shù)少了,才能說明系統(tǒng)的E--R圖少而精,去掉了重復的多余的實體,形成了對客觀世界的高度抽象,進行了系統(tǒng)的數(shù)據(jù)集成,防止了打補丁式的設計;
(2) 一個表中組合主鍵的字段個數(shù)越少越好。因為主鍵的作用,一是建主鍵索引,二是做為子表的外鍵,所以組合主鍵的字段個數(shù)少了,不僅節(jié)省了運行時間,而且節(jié)省了索引存儲空間;
(3) 一個表中的字段個數(shù)越少越好。只有字段的個數(shù)少了,才能說明在系統(tǒng)中不存在數(shù)據(jù)重復,且很少有數(shù)據(jù)冗余,更重要的是督促讀者學會“列變行”,這樣就防止了將子表中的字段拉入到主表中去,在主表中留下許多空余的字段。所謂“列變行”,就是將主表中的一部分內(nèi)容拉出去,另外單獨建一個子表。這個方法很簡單,有的人就是不習慣、不采納、不執(zhí)行。數(shù)據(jù)庫設計的實用原則是:在數(shù)據(jù)冗余和處理速度之間找到合適的平衡點。“三少”是一個整體概念,綜合觀點,不能孤立某一個原則。該原則是相對的,不是絕對的?!叭唷痹瓌t肯定是錯誤的。試想:若覆蓋系統(tǒng)同樣的功能,一百個實體(共一千個屬性) 的E--R圖,肯定比二百個實體(共二千個屬性) 的E--R圖,要好得多。提倡“三少”原則,是叫讀者學會利用數(shù)據(jù)庫設計技術進行系統(tǒng)的數(shù)據(jù)集成。數(shù)據(jù)集成的步驟是將文件系統(tǒng)集成為應用數(shù)據(jù)庫,將應用數(shù)據(jù)庫集成為主題數(shù)據(jù)庫,將主題數(shù)據(jù)庫集成為全局綜合數(shù)據(jù)庫。集成的程度越高,數(shù)據(jù)共享性就越強,信息孤島現(xiàn)象就越少,整個企業(yè)信息系統(tǒng)的全局E—R圖中實體的個數(shù)、主鍵的個數(shù)、屬性的個數(shù)就會越少。
提倡“三少”原則的目的,是防止讀者利用打補丁技術,不斷地對數(shù)據(jù)庫進行增刪改,使企業(yè)數(shù)據(jù)庫變成了隨意設計數(shù)據(jù)庫表的“垃圾堆”,或數(shù)據(jù)庫表的“大雜院”,最后造成數(shù)據(jù)庫中的基本表、代碼表、中間表、臨時表雜亂無章,不計其數(shù),導致企事業(yè)單位的信息系統(tǒng)無法維護而癱瘓。“三多”原則任何人都可以做到,該原則是“打補丁方法”設計數(shù)據(jù)庫的歪理學說?!叭佟痹瓌t是少而精的原則,它要求有較高的數(shù)據(jù)庫設計技巧與藝術,不是任何人都能做到的,因為該原則是杜絕用“打補丁方法”設計數(shù)據(jù)庫的理論依據(jù)。
十四、 提高數(shù)據(jù)庫運行效率的辦法
在給定的系統(tǒng)硬件和系統(tǒng)軟件條件下,提高數(shù)據(jù)庫系統(tǒng)的運行效率的辦法是:
(1) 在數(shù)據(jù)庫物理設計時,降低范式,增加冗余, 少用觸發(fā)器, 多用存儲過程。
(2) 當計算非常復雜、而且記錄條數(shù)非常巨大時(例如一千萬條),復雜計算要先在數(shù)據(jù)庫外面,以文件系統(tǒng)方式用C++語言計算處理完成之后,最后才入庫追加到表中去。這是電信計費系統(tǒng)設計的經(jīng)驗。
(3) 發(fā)現(xiàn)某個表的記錄太多,例如超過一千萬條,則要對該表進行水平分割。水平分割的做法是,以該表主鍵PK的某個值為界線,將該表的記錄水平分割為兩個表。若發(fā)現(xiàn)某個表的字段太多,例如超過八十個,則垂直分割該表,將原來的一個表分解為兩個表。
(4) 對數(shù)據(jù)庫管理系統(tǒng)DBMS進行系統(tǒng)優(yōu)化,即優(yōu)化各種系統(tǒng)參數(shù),如緩沖區(qū)個數(shù)。
(5) 在使用面向數(shù)據(jù)的SQL語言進行程序設計時,盡量采取優(yōu)化算法。
總之,要提高數(shù)據(jù)庫的運行效率,必須從數(shù)據(jù)庫系統(tǒng)級優(yōu)化、數(shù)據(jù)庫設計級優(yōu)化、程序?qū)崿F(xiàn)級優(yōu)化,這三個層次上同時下功夫。
軟件功能
一、對項目及數(shù)據(jù)庫控制的增強在Visual FoxPro 中可以借助“項目管理器”創(chuàng)建和集中管理應用程序中的任何元素;可以訪問所有向?qū)?、生成器、工具欄和其他易于使用的工?br /> 二、提高應用程序開發(fā)的效率
Visual FoxPro 增加了面向?qū)ο蟮恼Z言和方式,借助Visual FoxPro 的對象模型,可以充分使用面向?qū)ο蟪绦蛟O計的所有功能
三、互操作性和支持Internet
Visual FoxPro 支持具有對象的鏈接與嵌入(OLE)拖放,可以在Visual FoxPro 和其他應用程序之間,或在Visual FoxPro 應用程序內(nèi)部移動數(shù)據(jù)
四、充分利用已有數(shù)據(jù)
Visual FoxPro 為升級數(shù)據(jù)庫提供了一個方便實用的轉(zhuǎn)換器工具,可以將早期版本中的數(shù)據(jù)移植過來使用;對于電子表格或文本文件中的數(shù)據(jù),也可以方便的實現(xiàn)數(shù)據(jù)共享
五、全新的操作方式
在操作方式上提供了菜單操作、命令操作和設計器操作三種方式,它們都能達到相同的效果:
1.菜單操作是最簡單的一種,用戶只須選擇菜單欄中的菜單項和定義對話框中的參數(shù)就可以完成對數(shù)據(jù)庫的處理功能和Visual FoxPro 的狀態(tài)設置
2.通過設計器創(chuàng)建數(shù)據(jù)庫處理的相應文件,這是可視化的工作方式,所見格式即所得,大大降低了數(shù)據(jù)庫操作的難度
3.對于最終用戶來說,有了菜單操作和設計器工具,可以直接進行數(shù)據(jù)處理
六、新的操作
它的語句、函數(shù)和語法規(guī)則與Xbase(如dBASE、FoxBase、FoxPro)語言基本上是兼容的,而且功能更加強大
七、新的關系數(shù)據(jù)庫系統(tǒng)
新一代小型數(shù)據(jù)庫管理系統(tǒng)的杰出代表,它以強大的性能、完整而又豐富的工具、極高的處理速度、友好的界面以及完備的兼容性等特點,備受廣大用戶的歡迎
八、集成化的系統(tǒng)開發(fā)環(huán)境
它不僅支持過程式編程技術,而且在語言方面作了強大的擴充,支持面向?qū)ο罂梢暬幊碳夹g,并擁有功能強大的可視化程序設計工具,目前,Visual FoxPro 是用戶收集信息、查詢數(shù)據(jù)、創(chuàng)建集成數(shù)據(jù)庫系統(tǒng)、進行實用系統(tǒng)開發(fā)較為理想的工具軟件
軟件特性
1、提供多種可視化編程工具,最突出的是面向?qū)ο缶幊?br /> 2、在表的設計方面,增添了表的字段和控件直接結合的設置3、成功解決了計算機2000年的問題
4、增強了Internet技術和WWW數(shù)據(jù)庫的設計
5、ctiveX 和向?qū)?、生成器及控件等集成化工?br /> 6、新引入了網(wǎng)絡圖象文件格式:gif和jpeg
大型數(shù)據(jù)庫的設計原則與開發(fā)技巧
隨著計算機技術越來越廣泛地應用于國民經(jīng)濟的各個領域,在計算機硬件不斷微型化的同時,應用系統(tǒng)向著復雜化、大型化的方向發(fā)展。數(shù)據(jù)庫是整個系統(tǒng)的核心,它的設計直接關系系統(tǒng)執(zhí)行的效率和系統(tǒng)的穩(wěn)定性。因此在軟件系統(tǒng)開發(fā)中,數(shù)據(jù)庫設計應遵循必要的數(shù)據(jù)庫范式理論,以減少冗余、保證數(shù)據(jù)的完整性與正確性。只有在合適的數(shù)據(jù)庫產(chǎn)品上設計出合理的數(shù)據(jù)庫模型,才能降低整個系統(tǒng)的編程和維護難度,提高系統(tǒng)的實際運行效率。雖然對于小項目或中等規(guī)模的項目 開發(fā)人員可以很容易地利用范式理論設計出一套符合要求的數(shù)據(jù)庫,但對于一個包含大型數(shù)據(jù)庫的軟件項目,就必須有一套完整的設計原則與技巧一、成立數(shù)據(jù)小組
大型數(shù)據(jù)庫數(shù)據(jù)元素多,在設計上有必要成立專門的數(shù)據(jù)小組。由于數(shù)據(jù)庫設計者不一定是使用者,對系統(tǒng)設計中的數(shù)據(jù)元素不可能考慮周全,數(shù)據(jù)庫設計出來后,往往難以找到所需的庫表,因此數(shù)據(jù)小組最好由熟悉業(yè)務的項目骨干組成。
數(shù)據(jù)小組的職能并非是設計數(shù)據(jù)庫,而是通過需求分析,在參考其他相似系統(tǒng)的基礎上,提取系統(tǒng)的基本數(shù)據(jù)元素,擔負對數(shù)據(jù)庫的審核。審核內(nèi)容包括審核新的數(shù)據(jù)庫元素是否完全、能否實現(xiàn)全部業(yè)務需求;對舊數(shù)據(jù)庫(如果存在舊系統(tǒng))的分析及數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)庫設計的審核、控制及必要調(diào)整。
二、設計原則
1.規(guī)范命名。所有的庫名、表名、域名必須遵循統(tǒng)一的命名規(guī)則,并進行必要說明,以方便設計、維護、查詢。
2.控制字段的引用。在設計時,可以選擇適當?shù)臄?shù)據(jù)庫設計管理工具,以方便開發(fā)人員的分布式設計和數(shù)據(jù)小組的集中審核管理。采用統(tǒng)一的命名規(guī)則,如果設計的字段已經(jīng)存在,可直接引用;否則,應重新設計。
3.庫表重復控制。在設計過程中,如果發(fā)現(xiàn)大部分字段都已存在,開發(fā)人員應懷疑所設計的庫表是否已存在。通過對字段所在庫表及相應設計人員的查詢,可以確認庫表是否確實重復。
4.并發(fā)控制。設計中應進行并發(fā)控制,即對于同一個庫表,在同一時間只有一個人有控制權,其他人只能進行查詢。
5.必要的討論。數(shù)據(jù)庫設計完成后,數(shù)據(jù)小組應與相關人員進行討論,通過討論來熟悉數(shù)據(jù)庫,從而對設計中存在的問題進行控制或從中獲取數(shù)據(jù)庫設計的必要信息。
6.數(shù)據(jù)小組的審核。庫表的定版、修改最終都要通過數(shù)據(jù)小組的審核,以保證符合必要的要求。
7.頭文件處理。每次數(shù)據(jù)修改后,數(shù)據(jù)小組要對相應的頭文件進行修改(可由管理軟件自動完成),并通知相關的開發(fā)人員,以便進行相應的程序修改。
三、設計技巧
1.分類拆分數(shù)據(jù)量大的表。對于經(jīng)常使用的表(如某些參數(shù)表或代碼對照表),由于其使用頻率很高,要盡量減少表中的記錄數(shù)量。例如,銀行的戶主賬表原來設計成一張表,雖然可以方便程序的設計與維護,但經(jīng)過分析發(fā)現(xiàn),由于數(shù)據(jù)量太大,會影響數(shù)據(jù)的迅速定位。如果將戶主賬表分別設計為活期戶主賬、定期戶主賬及對公戶主賬等,則可以大大提高查詢效率。
2.索引設計。對于大的數(shù)據(jù)庫表,合理的索引能夠提高整個數(shù)據(jù)庫的操作效率。在索引設計中,索引字段應挑選重復值較少的字段;在對建有復合索引的字段進行檢索時,應注意按照復合索引字段建立的順序進行。例如,如果對一個5萬多條記錄的流水表以日期和流水號為序建立復合索引,由于在該表中日期的重復值接近整個表的記錄數(shù),用流水號進行查詢所用的時間接近3秒;而如果以流水號為索引字段建立索引進行相同的查詢,所用時間不到1秒。因此在大型數(shù)據(jù)庫設計中,只有進行合理的索引字段選擇,才能有效提高整個數(shù)據(jù)庫的操作效率。
3.數(shù)據(jù)操作的優(yōu)化。在大型數(shù)據(jù)庫中,如何提高數(shù)據(jù)操作效率值得關注。例如,每在數(shù)據(jù)庫流水表中增加一筆業(yè)務,就必須從流水控制表中取出流水號,并將其流水號的數(shù)值加一。正常情況下,單筆操作的反應速度尚屬正常,但當用它進行批量業(yè)務處理時,速度會明顯減慢。經(jīng)過分析發(fā)現(xiàn),每次對流水控制表中的流水號數(shù)值加一時都要鎖定該表,而該表卻是整個系統(tǒng)操作的核心,有可能在操作時被其他進程鎖定,因而使整個事務操作速度變慢。對這一問題的解決的辦法是,根據(jù)批量業(yè)務的總筆數(shù)批量申請流水號,并對流水控制表進行一次更新,即可提高批量業(yè)務處理的速度。另一個例子是對插表的優(yōu)化。對于大批量的業(yè)務處理,如果在插入數(shù)據(jù)庫表時用普通的Insert語句,速度會很慢。其原因在于,每次插表都要進行一次I/O操作,花費較長的時間。改進后,可以用Put語句等緩沖區(qū)形式等滿頁后再進行I/O操作,從而提高效率。對大的數(shù)據(jù)庫表進行刪除時,一般會直接用Delete語句,這個語句雖然可以進行小表操作,但對大表卻會因帶來大事務而導致刪除速度很慢甚至失敗。解決的方法是去掉事務,但更有效的辦法是先進行Drop操作再進行重建。
Visual FoxPro 常見問題解答
一、“數(shù)據(jù)庫”和“運行”菜單在哪里?Visual FoxPro 現(xiàn)在認為數(shù)據(jù)庫是表的容器,而不將單個的表看作數(shù)據(jù)庫。Visual FoxPro 數(shù)據(jù)庫 (.DBC) 使得“數(shù)據(jù)庫”菜單上的選項過時。因為“運行”菜單中的選項被去掉或被放在其他菜單上,所以 Visual FoxPro 去掉了“運行”菜單
二、如何找到 Visual FoxPro 系統(tǒng)工具欄列表?
在“查看”菜單中選擇“工具欄”命令,您可以看到可用的系統(tǒng)工具欄列表。在“工具欄”對話框中選擇一個工具欄,然后單擊“定制”按鈕,您可以定制一個工具欄
三、當關閉項目管理器窗口,使之成為工具欄后,如何恢復原來的窗口?
用鼠標單擊選項卡上矩形區(qū)域。將項目管理器拖到 Visual FoxPro 主窗口,然后釋放
四、單擊鼠標右鍵后,為何會出現(xiàn)一個菜單?
單擊鼠標右鍵可以彈出一個對環(huán)境敏感的快捷菜單。也就是說,如果鼠標指在一個對象上,單擊右鍵會彈出一個菜單,它包含能用來操作該對象的選項
五、打開多個窗口和工具欄時,怎樣才能避免雜亂?
您有如下幾個選擇:您可以在屏幕的上部和邊緣停放工具欄。您可以按下 CTRL+F1 激活每個窗口,找到想要的窗口。您可以在“窗口”菜單中使用窗口列表,選擇想激活的窗口。您可以重新放置和調(diào)整各個窗口
六、當創(chuàng)建一個控制的子類時,想為按鈕的單擊事件添加代碼,還想執(zhí)行父類的代碼。怎辦?
在單擊事件中,在添加任何新代碼之前添加 objectname::click。這樣,Visual FoxPro 就執(zhí)行父類的單擊事件,接下來運行您添加的代碼
七、有一個按鈕位于表單上,當創(chuàng)建一個基于按鈕的類時,怎樣引用表單屬性?
您可以使用 THISFORM、THIS.PARENT 或 THISFORMSET 對象引用。例如: ThisForm.Caption="MYCAPTION"
八、定義一個類之后,怎樣擊活或訪問對象?
基于類可以創(chuàng)建對象。類就象房子的藍圖或者電話的電路圖,藍圖和電路圖簡單地勾勒出房子和電話的特點和功能。您不能激活類,必須使用 CREATEOBJECT( ) 命令從一個類創(chuàng)建對象,然后可以顯示對象。有關詳細信息,請參閱“幫助”中的 CREATEOBJECT( ) 主題
其他版本
-
visual foxpro 7.0 數(shù)據(jù)庫類 / 18.88M
下載地址
- 電腦版
Visual FoxPro(數(shù)據(jù)庫開發(fā)軟件) v6.0
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
Advanced ETL Processor(數(shù)據(jù)庫瀏覽器) v6.4.5.20官方版
Firebird Maestro(火鳥數(shù)據(jù)庫) v24.2官方版
Benthic Software Golden(數(shù)據(jù)庫管理工具) v7.3官方版
Studio 3T(數(shù)據(jù)管理工具) v2023.9.2官方版
PowerDesigner v16.5.0.3982
Universal SQL Editor(數(shù)據(jù)庫工具) v1.80
mariadb(數(shù)據(jù)庫管理系統(tǒng)) v11.1.2
mysql for visual studio v.2.0.5官方版
網(wǎng)友評論
共0條評論(您的評論需要經(jīng)過審核才能顯示)