一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ppt課件_第1頁(yè)
一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ppt課件_第2頁(yè)
一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ppt課件_第3頁(yè)
一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ppt課件_第4頁(yè)
一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一個(gè)數(shù)據(jù)庫(kù)運(yùn)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 1 運(yùn)用背景與需求闡明在單機(jī)上實(shí)現(xiàn)一個(gè)教學(xué)管理系統(tǒng)的例子,并且可以很容易地把它移植到C/S構(gòu)造中,只涉及教學(xué)管理中的對(duì)學(xué)生、課程和教師的管理部分: 工程的詳細(xì)要求是: .運(yùn)轉(zhuǎn)環(huán)境是Windows 95/98操作系統(tǒng),數(shù)據(jù)庫(kù)的前端開發(fā)環(huán)境是VB 5.0。 一門課程可由多名教師來講授。 一個(gè)教師可講授多門課程。 一個(gè)學(xué)生可以選修多門課程。需產(chǎn)生的報(bào)表有.每學(xué)期開學(xué)時(shí)要生成學(xué)生修課情況表,內(nèi)容包括學(xué)號(hào)、姓名、課程名、修課類別,其中修課類別分為必修、選修、重修。.每學(xué)期終了時(shí)要生成學(xué)生修課成果表,內(nèi)容包括學(xué)號(hào)、姓名、課程名、修課類別、平常成果、卷面成果、總評(píng)成果。生成教

2、師授課效力表,內(nèi)容包括教師號(hào)、教師名、課程名、授課類別、學(xué)時(shí)數(shù)、班數(shù),授課類別分為主講、輔導(dǎo)、帶實(shí)驗(yàn)。平安性要求本門課程的主講教師才具有對(duì)其所講授課程的成果的修正權(quán),教學(xué)秘書和系主任才有修正教師授課效力表中的內(nèi)容的權(quán)益。其它人只需查詢有關(guān)信息的權(quán)益。2 數(shù)據(jù)庫(kù)設(shè)計(jì)2.1 概念設(shè)計(jì)概念設(shè)計(jì)中心活動(dòng)中心活動(dòng):是系統(tǒng)中的其它活動(dòng)都是圍繞這個(gè)活動(dòng)展開的或與此活動(dòng)是系統(tǒng)中的其它活動(dòng)都是圍繞這個(gè)活動(dòng)展開的或與此活動(dòng)是親密相關(guān)的活動(dòng)是親密相關(guān)的活動(dòng)確定系統(tǒng)的中心活動(dòng):對(duì)現(xiàn)實(shí)系統(tǒng)分析的關(guān)鍵確定系統(tǒng)的中心活動(dòng):對(duì)現(xiàn)實(shí)系統(tǒng)分析的關(guān)鍵該教學(xué)管理系統(tǒng)中,中心活動(dòng)就是授課,學(xué)生與課程之間是經(jīng)過授該教學(xué)管理系統(tǒng)中,中心活

3、動(dòng)就是授課,學(xué)生與課程之間是經(jīng)過授課發(fā)生聯(lián)絡(luò)的,教師與課程之間是經(jīng)過教師授課發(fā)生聯(lián)絡(luò)的。系統(tǒng)課發(fā)生聯(lián)絡(luò)的,教師與課程之間是經(jīng)過教師授課發(fā)生聯(lián)絡(luò)的。系統(tǒng)所包含的實(shí)體:所包含的實(shí)體: 課程:元素為由一個(gè)主講教師擔(dān)任且教學(xué)內(nèi)容一樣的教學(xué)活動(dòng)課程:元素為由一個(gè)主講教師擔(dān)任且教學(xué)內(nèi)容一樣的教學(xué)活動(dòng) 單位,用課程號(hào)來標(biāo)識(shí)此實(shí)體。單位,用課程號(hào)來標(biāo)識(shí)此實(shí)體。 學(xué)生:元素為一個(gè)學(xué)生,由學(xué)號(hào)來標(biāo)識(shí)。學(xué)生:元素為一個(gè)學(xué)生,由學(xué)號(hào)來標(biāo)識(shí)。 教師:元素為一個(gè)教師,由教師號(hào)來標(biāo)識(shí)。教師:元素為一個(gè)教師,由教師號(hào)來標(biāo)識(shí)。初步初步ER圖:圖:學(xué)生修課課程授課教師nmnm課程號(hào)、課程名、講授學(xué)期、學(xué)時(shí)數(shù)學(xué)號(hào)、姓名、系、專業(yè)、

4、班級(jí)教師號(hào)、教師名、系、教研室2 數(shù)據(jù)庫(kù)設(shè)計(jì) 2.2 設(shè)計(jì)關(guān)系方式設(shè)計(jì)根本關(guān)系方式主要就是從ER圖出發(fā),將其直接轉(zhuǎn)換為關(guān)系方式。轉(zhuǎn)換的規(guī)那么為: 1.將每個(gè)實(shí)體都轉(zhuǎn)換為一個(gè)關(guān)系方式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的主碼就是關(guān)系的主碼。 2.將每個(gè)聯(lián)絡(luò)也轉(zhuǎn)換為一個(gè)關(guān)系方式,該關(guān)系方式的屬性由與該聯(lián)絡(luò)相連的各個(gè)實(shí)體的主碼及該聯(lián)絡(luò)的屬性組成,該聯(lián)絡(luò)的主碼分三種情況:. 假設(shè)聯(lián)絡(luò)是1:1的,那么每個(gè)實(shí)體的主碼即是該聯(lián)絡(luò)的候選碼。. 假設(shè)聯(lián)絡(luò)是1:n的,那么此聯(lián)絡(luò)的主碼是n端實(shí)體的主碼。. 假設(shè)聯(lián)絡(luò)是m:n的,那么此聯(lián)絡(luò)的主碼是各個(gè)實(shí)體的主碼的并。此ER圖的關(guān)系方式為: (1)課程課程號(hào),課程名,講授學(xué)

5、期,學(xué)時(shí)數(shù),主碼為課程號(hào)。 (2)學(xué)生學(xué)號(hào)、姓名、系、專業(yè)、班,主碼為學(xué)號(hào)。 (3)教師教師號(hào)、教師名、系、教研室,主碼為教師號(hào)。 (4)修課學(xué)號(hào),課程號(hào),修課類別,平常成果,卷面成果,總評(píng)成果,主碼為學(xué)號(hào),課程號(hào)。 (5)授課課程號(hào),教師號(hào),授課類別,班數(shù),主碼為課程號(hào),教師號(hào)。2.2 設(shè)計(jì)關(guān)系方式確定表中各屬性的詳細(xì)信息(1)(1)課程表課程表課程號(hào):字符串型,課程號(hào):字符串型,1010字節(jié),主碼字節(jié),主碼課程名:字符串型,課程名:字符串型,2020字節(jié),非空字節(jié),非空講授學(xué)期:字符串型,講授學(xué)期:字符串型,2 2字節(jié),非空字節(jié),非空學(xué)時(shí)數(shù):整型,非空學(xué)時(shí)數(shù):整型,非空(2) (2) 學(xué)生

6、表學(xué)生表學(xué)號(hào):字符串型,學(xué)號(hào):字符串型,1010字節(jié),主碼字節(jié),主碼姓名:字符串型,姓名:字符串型,2020字節(jié),非空字節(jié),非空系:字符串型,系:字符串型,2020字節(jié),非空字節(jié),非空專業(yè):字符串型,專業(yè):字符串型,2020字節(jié),非空字節(jié),非空班:字符串型,班:字符串型,1010字節(jié),非空字節(jié),非空(3) (3) 教師表教師表教師號(hào):字符串型,教師號(hào):字符串型,1010字節(jié),主碼字節(jié),主碼教師名:字符串型,教師名:字符串型,2020字節(jié)字節(jié), ,非空非空 系:字符串型,系:字符串型,2020字節(jié)字節(jié)教研室:字符串型,教研室:字符串型,1010字節(jié)字節(jié)(4) (4) 修課表修課表學(xué)號(hào):字符串型,

7、學(xué)號(hào):字符串型,1010字節(jié),主碼,學(xué)生表的外碼字節(jié),主碼,學(xué)生表的外碼課程號(hào):字符串型,課程號(hào):字符串型,1010字節(jié),主碼,課程表的外碼字節(jié),主碼,課程表的外碼修課類別:字符串型,修課類別:字符串型,4 4字節(jié),非空字節(jié),非空平常成果:浮點(diǎn)型,大于等于平常成果:浮點(diǎn)型,大于等于0 0,小于等于,小于等于100100卷面成果:浮點(diǎn)型,大于等于卷面成果:浮點(diǎn)型,大于等于0 0,小于等于,小于等于100100總評(píng)成果:浮點(diǎn)型,大于等于總評(píng)成果:浮點(diǎn)型,大于等于0 0,小于等于,小于等于100100 (5) (5) 授課表授課表課程號(hào):字符串型,課程號(hào):字符串型,1010字節(jié),主碼,課程表的外碼字

8、節(jié),主碼,課程表的外碼教師號(hào):字符串型,教師號(hào):字符串型,1010字節(jié),主碼,教師表的外碼字節(jié),主碼,教師表的外碼授課類別:字符串型,授課類別:字符串型,1010字節(jié)字節(jié)班數(shù):浮點(diǎn)型,大于班數(shù):浮點(diǎn)型,大于0 0。假設(shè)選修課有半個(gè)班的情。假設(shè)選修課有半個(gè)班的情況,因此取浮點(diǎn)型。況,因此取浮點(diǎn)型。2.3 確定數(shù)據(jù)庫(kù)運(yùn)用的功能最常用的功能就是對(duì)數(shù)據(jù)的增、刪、改、查及生成報(bào)表1.數(shù)據(jù)錄入添加2.數(shù)據(jù)刪除3.數(shù)據(jù)修正4.數(shù)據(jù)查詢5.生成報(bào)表本例三張報(bào)表:(1) 學(xué)生修課表學(xué)號(hào),姓名,課程名,修課類別(2) 學(xué)生成果表學(xué)號(hào),姓名,課程名,修課類別,平常成果,卷面成果,總評(píng)成果(3) 教師授課效力表教師號(hào)

9、,教師名,課程名,授課類別,學(xué)時(shí)數(shù),班數(shù)創(chuàng)建視圖的SQL語(yǔ)句可描畫為:CREATE VIEW 學(xué)生修課表學(xué)號(hào),姓名,課程名,修課類別ASSELECT 學(xué)生.學(xué)號(hào),學(xué)生.姓名,課程.課程名,修課.修課類別 FROM 學(xué)生,課程,修課 WHERE 學(xué)生.學(xué)號(hào) = 修課.學(xué)號(hào) AND 課程.課程號(hào) = 修課.課程號(hào)包括對(duì)張表的數(shù)據(jù)錄入有條件刪除,有權(quán)限限制,有刪除確認(rèn)有條件查詢后修正,有權(quán)限限制,修正后保管根據(jù)用戶提出的條件查詢,一切用戶都有查詢權(quán)限用數(shù)據(jù)庫(kù)開發(fā)工具生成報(bào)表對(duì)對(duì)“學(xué)生成果表和學(xué)生成果表和“教師授課效力表教師授課效力表的處置與此類似的處置與此類似3 數(shù)據(jù)庫(kù)開發(fā)環(huán)境在C/S環(huán)境下實(shí)現(xiàn)時(shí)應(yīng)

10、留意數(shù)據(jù)的分布將數(shù)據(jù)全部放在效力器上-中央數(shù)據(jù)庫(kù) 將數(shù)據(jù)全部集中管理,數(shù)據(jù)只需一份,比照實(shí)時(shí)采集的數(shù)據(jù)普通都應(yīng)該放在效力器端。將一部分?jǐn)?shù)據(jù)放在效力器上,另一部分?jǐn)?shù)據(jù)放在客戶機(jī)上-地方數(shù)據(jù)庫(kù) 將數(shù)據(jù)分散管理,只將重要的、一切部門共享的數(shù)據(jù)放在中央數(shù)據(jù)庫(kù)中,將各個(gè)部門本人需求的數(shù)據(jù)放在地方數(shù)據(jù)庫(kù)中。例:本教學(xué)管理系統(tǒng)中,將所設(shè)計(jì)的五張表放在效力器,便于全校一致管理,各部門共享,同時(shí)各部門有本人的地方數(shù)據(jù)庫(kù)。 如“修課表,中央和地方各有一個(gè),且兩者構(gòu)造一致,當(dāng)?shù)胤秸n程數(shù)據(jù)庫(kù)修正時(shí),能及時(shí)修正中央數(shù)據(jù)庫(kù),在堅(jiān)持?jǐn)?shù)據(jù)的一致性。將數(shù)據(jù)分為中央數(shù)據(jù)庫(kù)和地方數(shù)據(jù)庫(kù)的益處:減少對(duì)中央數(shù)據(jù)庫(kù)的操作次數(shù),先在地方數(shù)

11、據(jù)庫(kù)中錄入數(shù)據(jù)有關(guān)數(shù)據(jù)比如本系的修課情況表,當(dāng)確認(rèn)準(zhǔn)確無(wú)誤之后再送到中央數(shù)據(jù)庫(kù)中。數(shù)據(jù)一旦被送到中央數(shù)據(jù)庫(kù)就不能被隨意地修正和刪除,這也添加了中央數(shù)據(jù)庫(kù)數(shù)據(jù)的平安性和可靠性。數(shù)據(jù)過于龐雜易于各部門開發(fā)本人公用的地方數(shù)據(jù)庫(kù)分類3.1 Visual Basic中的數(shù)據(jù)訪問Jet Jet :Visual Basic Visual Basic 提供的數(shù)據(jù)庫(kù)引擎提供的數(shù)據(jù)庫(kù)引擎JetJet數(shù)據(jù)庫(kù)引擎接口的方法:數(shù)據(jù)庫(kù)引擎接口的方法:DataData控件控件Data ControlData Control和數(shù)和數(shù)據(jù)訪問對(duì)象據(jù)訪問對(duì)象DAODAOVBVB中數(shù)據(jù)庫(kù)編程的內(nèi)容:創(chuàng)建數(shù)據(jù)訪問對(duì)象,這些數(shù)據(jù)訪問對(duì)中

12、數(shù)據(jù)庫(kù)編程的內(nèi)容:創(chuàng)建數(shù)據(jù)訪問對(duì)象,這些數(shù)據(jù)訪問對(duì)象對(duì)應(yīng)于被訪問的物理數(shù)據(jù)庫(kù)的不同部分,如:用這些對(duì)象的象對(duì)應(yīng)于被訪問的物理數(shù)據(jù)庫(kù)的不同部分,如:用這些對(duì)象的屬性和方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。屬性和方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。VBVB可以識(shí)別三類數(shù)據(jù)庫(kù):可以識(shí)別三類數(shù)據(jù)庫(kù):1.Visual Basic1.Visual Basic數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù): :2.2.外部數(shù)據(jù)庫(kù)外部數(shù)據(jù)庫(kù): :3.ODBC3.ODBC數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù): :符合符合ODBCODBC規(guī)范的客戶規(guī)范的客戶/ /效力器數(shù)據(jù)庫(kù)效力器數(shù)據(jù)庫(kù)提供有限的不需編程就能訪問現(xiàn)存數(shù)據(jù)庫(kù)的功能DAO模型那么是全面控制數(shù)據(jù)庫(kù)的完好編程接口Database數(shù)據(jù)

13、庫(kù)、TableDef表、Field字段Index索引對(duì)象。數(shù)據(jù)庫(kù)文件運(yùn)用與Microsoft Access一樣的格式dBase III或IVFoxPro 2.0和2.5Paradox版本3.x和4.xMicrosoft ExcelLotus 1-2-3Microsoft SQL Server3.2 Visual Basic 數(shù)據(jù)庫(kù)體系構(gòu)造JetJet引擎的作用:引擎的作用:處置存儲(chǔ)、檢索、更新數(shù)據(jù)的構(gòu)造,并提供了功能強(qiáng)大的、面向?qū)ο蟮奶幹么鎯?chǔ)、檢索、更新數(shù)據(jù)的構(gòu)造,并提供了功能強(qiáng)大的、面向?qū)ο蟮腄AODAO編程編程接口接口VBVB數(shù)據(jù)庫(kù)運(yùn)用程序的組成數(shù)據(jù)庫(kù)運(yùn)用程序的組成用戶界面Jet 引擎數(shù)據(jù)

14、庫(kù)實(shí)現(xiàn)“透明訪問讀取、寫入或修正數(shù)據(jù)庫(kù),處置一切內(nèi)部事物顯示數(shù)據(jù)并允許用戶查看或更新數(shù)據(jù)窗體VB中添加或刪除記錄,執(zhí)行查詢等Jet包含在一組DLL文件中,被鏈接到VB程序,把運(yùn)用程序譯成.mdb文件或其它數(shù)據(jù)庫(kù)的物理操作。 包含數(shù)據(jù)表的一個(gè)或多個(gè)文件2.2.數(shù)據(jù)庫(kù)運(yùn)用程序的存放數(shù)據(jù)庫(kù)運(yùn)用程序的存放 遠(yuǎn)程數(shù)據(jù)庫(kù)遠(yuǎn)程數(shù)據(jù)庫(kù) 客戶機(jī)客戶機(jī)/ /效力器數(shù)據(jù)庫(kù)效力器數(shù)據(jù)庫(kù)3.2 Visual Basic 數(shù)據(jù)庫(kù)體系構(gòu)造數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)引擎用戶界面數(shù)據(jù)庫(kù)用戶界面數(shù)據(jù)庫(kù)引擎客戶/服務(wù)器服務(wù)器 客戶機(jī) 遠(yuǎn)程 客戶/效力器與遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的存放可同時(shí)對(duì)多個(gè)客戶機(jī)的運(yùn)用程序提供效力,操作數(shù)據(jù)庫(kù)并對(duì)每個(gè)運(yùn)用程序前往所

15、懇求的記錄4 創(chuàng)建數(shù)據(jù)庫(kù)VB中創(chuàng)建數(shù)據(jù)庫(kù)途徑:中創(chuàng)建數(shù)據(jù)庫(kù)途徑:1、可視化數(shù)據(jù)管理器、可視化數(shù)據(jù)管理器2、DAO3、Microsoft Access4 、外部數(shù)據(jù)庫(kù)運(yùn)用程序、外部數(shù)據(jù)庫(kù)運(yùn)用程序不編程即可創(chuàng)建Jet引擎運(yùn)用VB的DAO部件可以經(jīng)過編程的方法創(chuàng)建數(shù)據(jù)庫(kù)用 Access創(chuàng)建的數(shù)據(jù)庫(kù)和直接在VB中創(chuàng)建的數(shù)據(jù)庫(kù)一樣,兩者用的數(shù)據(jù)庫(kù)引擎與格式一樣VB可經(jīng)過ISAM或ODBC驅(qū)動(dòng)程序來訪問FoxPro、dBASE或ODBC客戶/效力器運(yùn)用程序4.1 可視化數(shù)據(jù)管理器數(shù)據(jù)管理器Data Manager可以用于快速地建立數(shù)據(jù)庫(kù)構(gòu)造及數(shù)據(jù)庫(kù)內(nèi)容。VB的數(shù)據(jù)管理器是一個(gè)獨(dú)立的可單獨(dú)運(yùn)轉(zhuǎn)的運(yùn)用程序Vi

16、sdata.exe。隨安裝過程放置在VB目錄中,可以單獨(dú)運(yùn)轉(zhuǎn),也可以在VB開發(fā)環(huán)境中啟動(dòng)它。凡是VB有關(guān)數(shù)據(jù)庫(kù)的操作,比如數(shù)據(jù)庫(kù)構(gòu)造的建立、記錄的添加及修正以及運(yùn)用ODBC銜接到效力器端的數(shù)據(jù)庫(kù),如SQL Server,都可以利用此工具來完成。啟動(dòng)數(shù)據(jù)管理器的方法:翻開VB 外接程序可視化數(shù)據(jù)管理器 VisData 窗體工具欄提供了三組9個(gè)按鈕在以下圖中引見以VB提供的Biblio.mdb數(shù)據(jù)庫(kù)為實(shí)例引見。 文件翻開數(shù)據(jù)庫(kù)VB目錄下的Biblio.mdb 確定表類型記錄集動(dòng)態(tài)集類型記錄集快照類型記錄集顯示數(shù)據(jù)表數(shù)據(jù)群組按鈕打開 Biblio.mdb 后的 VisData 窗口窗體窗口事務(wù)方式群

17、組按鈕所進(jìn)展的增、刪、改、查等操作直接更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)在內(nèi)存中操作,不直接影響數(shù)據(jù)庫(kù)只能讀,不能改進(jìn)展事物處置圖1 數(shù)據(jù)管理器1、建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)構(gòu)造建立數(shù)據(jù)構(gòu)造文件文件新建新建Microsoft Access 版本版本7.0 輸入存儲(chǔ)的文件名輸入存儲(chǔ)的文件名如圖如圖1添加數(shù)據(jù)表添加數(shù)據(jù)表鼠標(biāo)右鍵鼠標(biāo)右鍵新表新表出現(xiàn)出現(xiàn)“構(gòu)造表構(gòu)造表 表稱號(hào):課程表稱號(hào):課程單擊單擊“添加字段添加字段 輸入字段內(nèi)容輸入字段內(nèi)容稱號(hào):課程名、授課學(xué)期、學(xué)時(shí)數(shù)等稱號(hào):課程名、授課學(xué)期、學(xué)時(shí)數(shù)等類型:類型:text或或integer大小:不定大?。翰欢ń⑺饕⑺饕龜?shù)據(jù)庫(kù)窗口在窗體上運(yùn)用DBGrid控件課程鼠

18、標(biāo)右鍵翻開顯示以下圖錄入數(shù)據(jù)3.建立查詢對(duì)已有數(shù)據(jù)的數(shù)據(jù)表進(jìn)展有條件或無(wú)條件查詢 VisData窗口適用程序查詢生成器右鍵新查詢輸入查詢條件4.2 數(shù)據(jù)訪問對(duì)象DAODAO的引入:的引入:數(shù)據(jù)管理器:只適宜于做比較簡(jiǎn)單的運(yùn)用,假設(shè)要實(shí)現(xiàn)復(fù)雜的運(yùn)用系統(tǒng),數(shù)據(jù)管理器:只適宜于做比較簡(jiǎn)單的運(yùn)用,假設(shè)要實(shí)現(xiàn)復(fù)雜的運(yùn)用系統(tǒng),運(yùn)用運(yùn)用VBVB提供的數(shù)據(jù)訪問對(duì)象提供的數(shù)據(jù)訪問對(duì)象DAODAO,DAODAO是經(jīng)過編程來直接控制是經(jīng)過編程來直接控制JETJET數(shù)據(jù)數(shù)據(jù)庫(kù)引擎,來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)庫(kù)運(yùn)用系統(tǒng)。庫(kù)引擎,來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)庫(kù)運(yùn)用系統(tǒng)。DAODAO的分層構(gòu)造:的分層構(gòu)造:數(shù)據(jù)訪問對(duì)象是以分層方式組織而成的,大

19、多數(shù)對(duì)象成員都是一個(gè)對(duì)象數(shù)據(jù)訪問對(duì)象是以分層方式組織而成的,大多數(shù)對(duì)象成員都是一個(gè)對(duì)象類別的集合,而這個(gè)集合又隸屬于上一層的另一個(gè)對(duì)象類別,類別的集合,而這個(gè)集合又隸屬于上一層的另一個(gè)對(duì)象類別,大多數(shù)數(shù)據(jù)訪問對(duì)象被描畫為大多數(shù)數(shù)據(jù)訪問對(duì)象被描畫為“對(duì)象和集合。分層構(gòu)造的頂部是對(duì)象和集合。分層構(gòu)造的頂部是Microsoft JetMicrosoft Jet數(shù)據(jù)庫(kù)引擎本身數(shù)據(jù)庫(kù)引擎本身DBEngineDBEngine對(duì)象。它是獨(dú)一不被其它對(duì)對(duì)象。它是獨(dú)一不被其它對(duì)象所包含的數(shù)據(jù)訪問對(duì)象象所包含的數(shù)據(jù)訪問對(duì)象對(duì)象分層構(gòu)造經(jīng)過對(duì)象分層構(gòu)造經(jīng)過“包含一種其它對(duì)象的包含一種其它對(duì)象的“集合實(shí)現(xiàn),集合對(duì)象用

20、于集合實(shí)現(xiàn),集合對(duì)象用于包含其它對(duì)象,集合中的對(duì)象都是同一類型的。包含其它對(duì)象,集合中的對(duì)象都是同一類型的。 DAO DAO分層構(gòu)造中的元素實(shí)踐上是類,而不是對(duì)象,它們是對(duì)象的分層構(gòu)造中的元素實(shí)踐上是類,而不是對(duì)象,它們是對(duì)象的“藍(lán)圖。藍(lán)圖。類與數(shù)據(jù)類型類似,它只描畫所援用的對(duì)象的類與數(shù)據(jù)類型類似,它只描畫所援用的對(duì)象的“類型。例如,聲明類型。例如,聲明 Dim MyWs As WorkspaceDim MyWs As WorkspaceMyWs是一個(gè)代表Workspace類型的對(duì)象的變量DBEngine對(duì)象WorkSpaces集合對(duì)象WorkSpace對(duì)象DataBases集合對(duì)象DataB

21、ase對(duì)象RecordSets集合對(duì)象QueryDefs集合對(duì)象TableDefs集合對(duì)象Relations集合對(duì)象Contains集合對(duì)象RecordSets對(duì)象QueryDefs對(duì)象TableDefs對(duì)象Relations對(duì)象Contains對(duì)象FieldFieldParamterFieldIndexFieldDocumentField. . . DAO分層構(gòu)造圖DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟:創(chuàng)建數(shù)據(jù)庫(kù)的步驟:創(chuàng)建新數(shù)據(jù)庫(kù)的第一步是創(chuàng)建創(chuàng)建新數(shù)據(jù)庫(kù)的第一步是創(chuàng)建Database對(duì)象本身,然后添加與設(shè)計(jì)相一致的對(duì)象本身,然后添加與設(shè)計(jì)相一致的TableDef和和Field對(duì)象來定義其構(gòu)造,方法:對(duì)

22、象來定義其構(gòu)造,方法:1、運(yùn)用、運(yùn)用Dim語(yǔ)句給數(shù)據(jù)庫(kù)中的每一個(gè)對(duì)象創(chuàng)建對(duì)象變量。除了構(gòu)造構(gòu)成環(huán)境的語(yǔ)句給數(shù)據(jù)庫(kù)中的每一個(gè)對(duì)象創(chuàng)建對(duì)象變量。除了構(gòu)造構(gòu)成環(huán)境的DBEnigne和和缺省的缺省的Workspace對(duì)象外,還需求:對(duì)象外,還需求:一個(gè)一個(gè)Database對(duì)象對(duì)象每個(gè)表需求一個(gè)每個(gè)表需求一個(gè)TableDef對(duì)象對(duì)象每個(gè)表中的每個(gè)字段需求一個(gè)每個(gè)表中的每個(gè)字段需求一個(gè)Field對(duì)象對(duì)象每個(gè)表中的每個(gè)索引需求一個(gè)每個(gè)表中的每個(gè)索引需求一個(gè)Index對(duì)象對(duì)象如:用如下代碼創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象變量:數(shù)據(jù)庫(kù)名:如:用如下代碼創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象變量:數(shù)據(jù)庫(kù)名: JXGL.mdb Dim MyDb A

23、s Database, MyWs As WorkspaceDim StuTd As TableDef, TeaTd As TableDef, CosTd As TableDef, XKTd As TableDef, SKTd As TableDef Dim StuFlds(5) As Field, TeaFlds(4) As Field, CosFlds(4) As Field, XKFlds(5) As Field, SKFlds(5) As FieldDim StuIdx As Index, TeaIdx As Index, CosIdx As Index, XKIdx(2) As Ind

24、ex, SKIdx(2) As Index4.2 數(shù)據(jù)訪問對(duì)象4.2 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟2 2、運(yùn)用、運(yùn)用WorkspaceWorkspace對(duì)象的對(duì)象的CreateDatabaseCreateDatabase方法創(chuàng)建新的數(shù)據(jù)庫(kù)。方法創(chuàng)建新的數(shù)據(jù)庫(kù)。Set MyWs = DBEngine.Eorkspaces(0)Set MyWs = DBEngine.Eorkspaces(0)Set MyDb = MyWs.CreateDatabase(Set MyDb = MyWs.CreateDatabase(“C:VBJXGL.mdbC:VBJXGL.mdb,dbLangGenera

25、l,dbVersion03),dbLangGeneral,dbVersion03)3 3、運(yùn)用、運(yùn)用DatabaseDatabase對(duì)象的對(duì)象的CreateTableDefCreateTableDef方法為數(shù)據(jù)庫(kù)中的一切表創(chuàng)建新的方法為數(shù)據(jù)庫(kù)中的一切表創(chuàng)建新的TableDefTableDef對(duì)象。如本例中:對(duì)象。如本例中:Set StuTd = MyDB.CreateTableDef(Set StuTd = MyDB.CreateTableDef(“學(xué)生學(xué)生) )Set TeaTd = MyDB.CreateTableDef(Set TeaTd = MyDB.CreateTableDef(“教

26、師教師) )Set CosTd = MyDB.CreateTableDef(Set CosTd = MyDB.CreateTableDef(“課程課程) )Set XKTd = MyDB.CreateTableDef(Set XKTd = MyDB.CreateTableDef(“修課修課) )Set SKTd = MyDB.CreateTableDef(Set SKTd = MyDB.CreateTableDef(“授課授課) )4、運(yùn)用、運(yùn)用TableDef對(duì)象的對(duì)象的CreateField方法,為表中每個(gè)字段創(chuàng)建方法,為表中每個(gè)字段創(chuàng)建Field對(duì)象,然后設(shè)置對(duì)象,然后設(shè)置每個(gè)字段的屬性

27、來定義字段的長(zhǎng)度、數(shù)據(jù)類型和其它所需的屬性。例如,下面的每個(gè)字段的屬性來定義字段的長(zhǎng)度、數(shù)據(jù)類型和其它所需的屬性。例如,下面的代碼用來創(chuàng)建代碼用來創(chuàng)建JXGL.mdb數(shù)據(jù)庫(kù)中的課程表:數(shù)據(jù)庫(kù)中的課程表:Set CosFlds(0) = CosTd.CreateField(“課程號(hào)課程號(hào),dbText)Set CosFlds(0).Size = 10Set CosFlds(1) = CosTd.CreateField(“課程名課程名,dbText)Set CosFlds(1).Size = 20Set CosFlds(2) = CosTd.CreateField(“授課學(xué)期授課學(xué)期,dbInte

28、ger)Set CosFlds(3) = CosTd.CreateField(“學(xué)時(shí)數(shù)學(xué)時(shí)數(shù),dbInteger)5、用、用Append方法把每個(gè)字段添加到表中,并把每個(gè)表添加到數(shù)據(jù)庫(kù)中。例如:方法把每個(gè)字段添加到表中,并把每個(gè)表添加到數(shù)據(jù)庫(kù)中。例如:CosTd.Fields.Append CosFlds(0)CosTd.Fields.Append CosFlds(1)CosTd.Fields.Append CosFlds(2)CosTd.Fields.Append CosFlds(3)MyDb.TableDefs.Append CosTd4.2 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟用數(shù)據(jù)庫(kù)表

29、添加索引的步驟:1.用TableDef對(duì)象中的CreateIndex方法給每個(gè)表創(chuàng)建索引,并設(shè)置其屬性:Set CosIdx = CosTd.CreateIndex(“課程號(hào))CosIdx.Primary = True是主碼CosIdx.Unique = Ture值不重2.用Index對(duì)象的Createfield方法給每個(gè)索引對(duì)象創(chuàng)建字段:Set NewFld = CosIdx.CreateField(“課程號(hào))3.把字段追加到Index中,然后把Index清查到TableDef對(duì)象中:CosIdx.Fields.Append NewFldCosTd.Indexes.Append AuIdx

30、留意:用Index對(duì)象中的CreateField方法創(chuàng)建的字段不添加到TableDef中,而是添加到Index對(duì)象中,并給Name屬性賦值,該屬性與被索引的TableDef字段中的Name屬性一樣。不用指定Index對(duì)象中字段的Type(類型)和Size(大小)屬性。4.3 添加索引建好數(shù)據(jù)庫(kù)之后,還要指定索建好數(shù)據(jù)庫(kù)之后,還要指定索引及各表間的關(guān)系:用引及各表間的關(guān)系:用CreatIndex方法可以給方法可以給TableDef定義的表添加索引,用定義的表添加索引,用Index對(duì)對(duì)象的象的CreatField方法創(chuàng)建新的方法創(chuàng)建新的Field指定被索引的字段指定被索引的字段4.4 添加關(guān)系和援

31、用完好性Jet數(shù)據(jù)庫(kù)引擎提供了Relation對(duì)象來強(qiáng)迫援用的完好性,以防止出現(xiàn)不一致的記錄。給數(shù)據(jù)庫(kù)添加關(guān)系的步驟:1.用Database對(duì)象的CreateRelation方法創(chuàng)建Relation對(duì)象,然后設(shè)置其table和ForeignTable屬性:Dim Stu_XK As RelationSet Stu_XK = MyDb.CreateRelation(“Student_XK)Stu_XK.Table = “學(xué)生Stu_XK.ForeignTable = “修課2.用Relation對(duì)象中的CreateField方法,創(chuàng)建一個(gè)字段,用來定義關(guān)系中的主碼和外碼字段。Dim TempFi

32、eld As FieldSet TempField = Stu_XK.CreateField(“學(xué)號(hào))TempField.ForeignName = “學(xué)號(hào)3.用Append方法把Field對(duì)象添加到Relation中,然后把Relation添加到Database中。Stu_XK.Fields.Append TempFieldMyDb.Relations.Append Stu_XK在添加和刪除記錄時(shí)必需堅(jiān)持援用的完好性以確保數(shù)據(jù)庫(kù)中的關(guān)系有用5 創(chuàng)建數(shù)據(jù)庫(kù)運(yùn)用程序5.1 數(shù)據(jù)控件Data Control數(shù)據(jù)控件是銜接數(shù)據(jù)庫(kù)中的信息和用戶用來顯數(shù)據(jù)控件是銜接數(shù)據(jù)庫(kù)中的信息和用戶用來顯示信息的依靠

33、控件,是簡(jiǎn)單數(shù)據(jù)庫(kù)運(yùn)用程序示信息的依靠控件,是簡(jiǎn)單數(shù)據(jù)庫(kù)運(yùn)用程序的中心。依靠控件是為處置創(chuàng)建數(shù)據(jù)庫(kù)運(yùn)用的中心。依靠控件是為處置創(chuàng)建數(shù)據(jù)庫(kù)運(yùn)用程序的數(shù)據(jù)控件而建立的控件。數(shù)據(jù)控件用程序的數(shù)據(jù)控件而建立的控件。數(shù)據(jù)控件用于綁定數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的某個(gè)表,依靠控于綁定數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的某個(gè)表,依靠控件用于綁定表中的某個(gè)列。數(shù)據(jù)控件是件用于綁定表中的某個(gè)列。數(shù)據(jù)控件是VB工工具箱中的一個(gè)可用控件,設(shè)置數(shù)據(jù)控件的步具箱中的一個(gè)可用控件,設(shè)置數(shù)據(jù)控件的步驟:驟:翻開翻開VB選擇選擇Data控件控件在窗體中畫出在窗體中畫出Data控控件件設(shè)定設(shè)定Data控件的控件的DatabaseName和和RecordSo

34、urce屬性。屬性。用于綁定某個(gè)數(shù)據(jù)庫(kù)用于綁定數(shù)據(jù)庫(kù)中的某個(gè)表文本框、標(biāo)簽、校驗(yàn)框、圖片框、圖像等5 創(chuàng)建數(shù)據(jù)庫(kù)運(yùn)用程序 5.2 創(chuàng)建一個(gè)簡(jiǎn)單的運(yùn)用程序 例:創(chuàng)建一個(gè)課程表運(yùn)用程序:例:創(chuàng)建一個(gè)課程表運(yùn)用程序:1、建立窗體:、建立窗體: 翻開翻開VB 添加添加Data控件控件設(shè)置控件的屬性設(shè)置控件的屬性添加依靠添加依靠控件控件設(shè)置依靠控件屬性。設(shè)置依靠控件屬性。 Name:Course Name:Course Caption: Caption:課程課程DatabaseName: DatabaseName: JXGL.mdbJXGL.mdbRecordSource:RecordSource:課程課程文本框名綁定字段對(duì)應(yīng)標(biāo)簽的標(biāo)題Text1課程號(hào)課程號(hào):Text2課程名課程名:Text3授課學(xué)期授課學(xué)期:Text4學(xué)時(shí)數(shù)學(xué)時(shí)數(shù):數(shù)據(jù)訪問窗體設(shè)置的數(shù)據(jù)訪問窗體設(shè)置的DataFieldDataField和和CaptionCaptionVBVB設(shè)置屏幕設(shè)置屏幕 2. 2.閱讀數(shù)據(jù)庫(kù)中數(shù)據(jù):閱讀數(shù)據(jù)庫(kù)中數(shù)據(jù):?jiǎn)螕暨\(yùn)轉(zhuǎn)按鈕,結(jié)果如下:?jiǎn)螕暨\(yùn)轉(zhuǎn)按鈕,結(jié)果如下:5 創(chuàng)建數(shù)據(jù)庫(kù)運(yùn)用程序 5.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論