一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)流程(一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)流程包括)
1 系統(tǒng)總體設(shè)計(jì)
1.1 應(yīng)用背景
1.2 項(xiàng)目目標(biāo):包括系統(tǒng)登錄功能,權(quán)限設(shè)置,數(shù)據(jù)錄入,信息查詢,報(bào)表輸出,系統(tǒng)維護(hù),退出功能等;
1.3 設(shè)計(jì)思路:自底向上,首先設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),然后設(shè)計(jì)表單、菜單、報(bào)表、主程序等;
1.4 系統(tǒng)結(jié)構(gòu)圖:系統(tǒng)的整體結(jié)構(gòu)是先運(yùn)行主程序,由主程序調(diào)出用戶登錄界面(表單),成功登錄后,調(diào)出系統(tǒng)的主菜單,通過主菜單進(jìn)入各個(gè)表單和報(bào)表,二者的數(shù)據(jù)均來自數(shù)據(jù)庫(kù)中的表;
2 數(shù)據(jù)庫(kù)總體設(shè)計(jì)
2.1 需求分析:系統(tǒng)的每個(gè)功能都要通過菜單和報(bào)表來操作數(shù)據(jù)表中的數(shù)據(jù);
2.2 確定所需的數(shù)據(jù)表;
2.3 數(shù)據(jù)表的結(jié)構(gòu)字段;
2.4 表之間的關(guān)聯(lián):通過參照完整性確保數(shù)據(jù)的一致性,建立一對(duì)多表單、報(bào)表;
3 建立項(xiàng)目
選擇合適的開發(fā)語(yǔ)言和合適的IDE,建立項(xiàng)目;
4 建立數(shù)據(jù)庫(kù)和表
4.1 建立數(shù)據(jù)庫(kù);
4.2 建立數(shù)據(jù)表;
4.3 建立表之間的完整參照性;數(shù)據(jù)庫(kù)管理器—關(guān)聯(lián)線右擊—編輯參照完整性(打開數(shù)據(jù)完整性生成器)
5 各表單設(shè)計(jì)
5.1 布局表單控件(屬性);
5.2 表單的方法和事件代碼:loading、按鈕的click等事件的代碼;
6 菜單和工具欄設(shè)計(jì)
用戶登錄后會(huì)出現(xiàn)菜單系統(tǒng),由此可以訪問到系統(tǒng)的各個(gè)模塊;
7 報(bào)表設(shè)計(jì)
8 主程序設(shè)計(jì)
8.1 建立主程序:項(xiàng)目管理器—代碼—程序—編寫代碼–保存為MainPro;
8.2 設(shè)置主文件:由該文件調(diào)用應(yīng)用程序中的某些組件,再由這些組件調(diào)用其他組件,主文件可以是一個(gè)PRG程序,一個(gè)表單,一個(gè)菜單,選擇—項(xiàng)目(菜單)—設(shè)置主文件:一般來說,主文件可以具有以下的一些功能:
I 對(duì)應(yīng)用系統(tǒng)的環(huán)境進(jìn)行初始化;
II 用控制事件循環(huán)的訪求來實(shí)行程序調(diào)用;
III 恢復(fù)初始化前的環(huán)境;(設(shè)置主程序?yàn)橹魑募?/p>
8.3 系統(tǒng)連編:將應(yīng)用程序各個(gè)分散的部件連接在一個(gè)可執(zhí)行文件或可執(zhí)行應(yīng)用程序;
用戶對(duì)系統(tǒng)中的數(shù)據(jù)的操作是通過界面進(jìn)行的,界面主要由表單和菜單兩部分組成,主要部分是表單,表單也是面向?qū)ο缶幊痰暮诵牟糠郑?/p>
由主程序(設(shè)置為主文件)設(shè)置系統(tǒng)登錄屏幕界面,調(diào)用系統(tǒng)登錄表單;由登錄表單—調(diào)用主程序或主界面(可以是表單,包含初始環(huán)境設(shè)置,主菜單);由主菜單調(diào)用各功能模塊;
9 補(bǔ)充
9.1 一個(gè)完整的計(jì)算機(jī)應(yīng)用系統(tǒng)的模塊組成:
主程序
系統(tǒng)菜單
系統(tǒng)登錄界面
數(shù)據(jù)庫(kù)
數(shù)據(jù)輸入界面
數(shù)據(jù)輸出界面
數(shù)據(jù)維護(hù)功能
數(shù)據(jù)檢索界面
幫助功能
項(xiàng)目文件
9.2 數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)
9.2.1 需求分析
收集基礎(chǔ)數(shù)據(jù)、數(shù)據(jù)流程圖,把一個(gè)處理功能的數(shù)據(jù)逐步分解,直到把系統(tǒng)的工作過程表達(dá)清楚為止。數(shù)據(jù)字典:各類數(shù)據(jù)屬性的清單:
9.2.2 概念結(jié)構(gòu)設(shè)計(jì):
E-R模型是對(duì)現(xiàn)實(shí)世界的一種抽象,是對(duì)實(shí)際人、事、物和概念的人為處理,宏觀地抽取人們共同關(guān)心的特性,而忽略非本質(zhì)的細(xì)節(jié);
抽象機(jī)制由三種抽象方法形成:
I 分類classification:
定義:某一概念作為現(xiàn)象世界中一組對(duì)象的類型
抽象對(duì)象:對(duì)象值和型之間的is a member of的語(yǔ)義;
E-R模型是的抽象:實(shí)體型;
II 聚焦aggregation:
定義:某一類型的組成部分;
抽象對(duì)象:對(duì)象內(nèi)部屬性類型和整體與部分之間is a part of的語(yǔ)義;
E-R模型是的抽象:若干屬性的聚集組成了實(shí)體型;
III 概括generalization:
定義:類型之間的各種子集之間的聯(lián)系;
抽象對(duì)象:類型之間的is a subset of的語(yǔ)義;
E-R模型是的抽象:子類繼承超類上定義的所有抽象性質(zhì);
9.2.3 邏輯結(jié)構(gòu)設(shè)計(jì)
將E-R圖的一個(gè)實(shí)體或一個(gè)聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系模式;
9.3 應(yīng)用程序開發(fā)的類型
9.3.1 單機(jī)模型:
應(yīng)用程序和數(shù)據(jù)庫(kù)位于同一臺(tái)PC中;
9.3.2 客戶/服務(wù)器模型:C/S,運(yùn)行于局域網(wǎng)環(huán)境中的數(shù)據(jù)應(yīng)用程序)
應(yīng)用程序使用的數(shù)據(jù)庫(kù)位于局域網(wǎng)服務(wù)器中,其它的計(jì)算機(jī)通過客戶端應(yīng)用程序訪問服務(wù)器中的數(shù)據(jù)。c/s結(jié)構(gòu),應(yīng)用軟件被劃分為客戶軟件和服務(wù)器軟件兩部分,這兩部分允許安裝在同一臺(tái)設(shè)備上,但多數(shù)情況下被安裝在網(wǎng)絡(luò)不同的PC上,當(dāng)客戶軟件發(fā)出訪問數(shù)據(jù)庫(kù)請(qǐng)求后,服務(wù)器軟件接收這一請(qǐng)求;C/S模式的最大優(yōu)勢(shì)是把系統(tǒng)劃分為前臺(tái)和后臺(tái),在通常情況下,客戶機(jī)運(yùn)行前端front-end)應(yīng)用程序,向用戶提供界面(user interface)和顯示邏輯(presentation logic),而服務(wù)器則負(fù)責(zé)訪問后臺(tái)數(shù)據(jù)庫(kù),并完成各種事務(wù)邏輯(transaction logic)的處理,這樣每次任務(wù)都是由客戶機(jī)和服務(wù)器共同完成;C/S模式的第三個(gè)成分就是連接器,它是溝通客戶機(jī)和服務(wù)器的紐帶,包括網(wǎng)卡及其驅(qū)動(dòng)程序,和實(shí)施數(shù)據(jù)庫(kù)訪問的軟件,如ODBC、ADO,使服務(wù)器成為數(shù)據(jù)庫(kù)服務(wù)器。
9.3.3 瀏覽器/服務(wù)器模型:B/S,適用于開發(fā)internet環(huán)境中的數(shù)據(jù)庫(kù)應(yīng)用程序)
客戶端應(yīng)用程序?yàn)闉g覽器,客戶通過瀏覽器訪問服務(wù)器中的某個(gè)網(wǎng)頁(yè),如在網(wǎng)頁(yè)中提出數(shù)據(jù)請(qǐng)求,該請(qǐng)求首先發(fā)送到web服務(wù)器,由web服務(wù)器將數(shù)據(jù)請(qǐng)求發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器接到數(shù)據(jù)請(qǐng)求后,完成數(shù)據(jù)處理,并將處理結(jié)果返回web服務(wù)器,web服務(wù)器最后將結(jié)果返回到客戶端的瀏覽器中,在設(shè)計(jì)網(wǎng)頁(yè)時(shí),可以使用ADO(activeX data object)訪問VF數(shù)據(jù)庫(kù)。
-End-