數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例401015226_第1頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例401015226_第2頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例401015226_第3頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例401015226_第4頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例401015226_第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īng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)應(yīng)用背景與需求說明在單機(jī)上實(shí)現(xiàn)一個(gè)教學(xué)管理系統(tǒng)的例子,并且可以很容易地把它移植到C/S結(jié)構(gòu)中,只涉及教學(xué)管理中的對(duì)學(xué)生、課程和教師的管理部分:項(xiàng)目的具體要求是:.運(yùn)行環(huán)境是Windows2000/xp操作系統(tǒng),數(shù)據(jù)庫(kù)的前端開發(fā)環(huán)境是VB 6.0。一門課程可由多名教師來講授。一個(gè)教師可講授多門課程。一個(gè)學(xué)生可以選修多門課程。需產(chǎn)生的報(bào)表有.每學(xué)期開學(xué)時(shí)要生成學(xué)生修課情況表,內(nèi)容包括學(xué)號(hào)、姓名、課程名、修課類別,其中修課類別分為必修、選修、重修。.每學(xué)期結(jié)束時(shí)要生成學(xué)生修課成績(jī)表,內(nèi)容包括學(xué)號(hào)、姓名、課程名、修課類別、平時(shí)成績(jī)、卷面成績(jī)、總評(píng)成績(jī)。生成教師授課服務(wù)表,

2、內(nèi)容包括教師號(hào)、教師名、課程名、授課類別、學(xué)時(shí)數(shù)、班數(shù),授課類別分為主講、輔導(dǎo)、帶實(shí)驗(yàn)。安全性要求本門課程的主講教師才具有對(duì)其所講授課程的成績(jī)的修改權(quán),教學(xué)秘書和系主任才有修改教師授課服務(wù)表中的內(nèi)容的權(quán)力。其它人只有查詢有關(guān)信息的權(quán)力。 數(shù)據(jù)庫(kù)設(shè)計(jì) 概念設(shè)計(jì)核心活動(dòng):是系統(tǒng)中的其它活動(dòng)都是圍繞這個(gè)活動(dòng)展開的或與此活動(dòng)是密切相關(guān)的活動(dòng)確定系統(tǒng)的核心活動(dòng):對(duì)現(xiàn)實(shí)系統(tǒng)分析的關(guān)鍵該教學(xué)管理系統(tǒng)中,核心活動(dòng)就是授課,學(xué)生與課程之間是通過授課發(fā)生聯(lián)系的,教師與課程之間是通過教師授課發(fā)生聯(lián)系的。系統(tǒng)所包含的實(shí)體: 課程:元素為由一個(gè)主講教師負(fù)責(zé)且教學(xué)內(nèi)容相同的教學(xué)活動(dòng) 單位,用課程號(hào)來標(biāo)識(shí)此實(shí)體。 學(xué)生:元

3、素為一個(gè)學(xué)生,由學(xué)號(hào)來標(biāo)識(shí)。 教師:元素為一個(gè)教師,由教師號(hào)來標(biāo)識(shí)。初步ER圖:課程號(hào)、課程名、講授學(xué)期、學(xué)時(shí)數(shù)學(xué)號(hào)、姓名、系、專業(yè)、班級(jí)教師號(hào)、教師名、系、教研室 數(shù)據(jù)庫(kù)設(shè)計(jì) 設(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)系也轉(zhuǎn)換為一個(gè)關(guān)系模式,該關(guān)系模式的屬性由與該聯(lián)系相連的各個(gè)實(shí)體的主碼及該聯(lián)系的屬性組成,該聯(lián)系的主碼分三種情況:. 若聯(lián)系是1:1的,則每個(gè)實(shí)體的主碼即是該聯(lián)系的候選碼。. 若聯(lián)系是1:n的,則此聯(lián)系的主碼是n端實(shí)體的主碼。.

4、若聯(lián)系是m:n的,則此聯(lián)系的主碼是各個(gè)實(shí)體的主碼的并。此ER圖的關(guān)系模式為:(1)課程(課程號(hào),課程名,講授學(xué)期,學(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),修課類別,平時(shí)成績(jī),卷面成績(jī),總評(píng)成績(jī)),主碼為(學(xué)號(hào),課程號(hào))。 (5)授課(課程號(hào),教師號(hào),授課類別,班數(shù)),主碼為(課程號(hào),教師號(hào))。 設(shè)計(jì)關(guān)系模式確定表中各屬性的詳細(xì)信息(1)課程表課程號(hào):字符串型,10字節(jié),主碼課程名:字符串型,20字節(jié),非空講授學(xué)期:字符串型,2字節(jié),非空學(xué)時(shí)數(shù):整型,非空(2) 學(xué)生表學(xué)號(hào):字符

5、串型,10字節(jié),主碼姓名:字符串型,20字節(jié),非空系:字符串型,20字節(jié),非空專業(yè):字符串型,20字節(jié),非空班:字符串型,10字節(jié),非空(3) 教師表教師號(hào):字符串型,10字節(jié),主碼教師名:字符串型,20字節(jié),非空 系:字符串型,20字節(jié)教研室:字符串型,10字節(jié)(4) 修課表學(xué)號(hào):字符串型,10字節(jié),主碼,學(xué)生表的外碼課程號(hào):字符串型,10字節(jié),主碼,課程表的外碼修課類別:字符串型,4字節(jié),非空平時(shí)成績(jī):浮點(diǎn)型,大于等于0,小于等于100卷面成績(jī):浮點(diǎn)型,大于等于0,小于等于100總評(píng)成績(jī):浮點(diǎn)型,大于等于0,小于等于100 (5) 授課表課程號(hào):字符串型,10字節(jié),主碼,課程表的外碼教師號(hào)

6、:字符串型,10字節(jié),主碼,教師表的外碼授課類別:字符串型,10字節(jié)班數(shù):浮點(diǎn)型,大于0。假設(shè)選修課有半個(gè)班的情況,因此取浮點(diǎn)型。 確定數(shù)據(jù)庫(kù)應(yīng)用的功能最常用的功能就是對(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é)生成績(jī)表(學(xué)號(hào),姓名,課程名,修課類別,平時(shí)成績(jī),卷面成績(jī),總評(píng)成績(jī))(3) 教師授課服務(wù)表(教師號(hào),教師名,課程名,授課類別,學(xué)時(shí)數(shù),班數(shù))創(chuàng)建視圖的SQL語(yǔ)句可描述為:CREATE VIEW 學(xué)生修課表(學(xué)號(hào),姓名,課程名,修課類別)ASSELECT 學(xué)

7、生.學(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ì)“學(xué)生成績(jī)表”和“教師授課服務(wù)表”的處理與此類似 數(shù)據(jù)庫(kù)開發(fā)環(huán)境在C/S環(huán)境下實(shí)現(xiàn)時(shí)應(yīng)注意數(shù)據(jù)的分布將數(shù)據(jù)全部放在服務(wù)器上-中央數(shù)據(jù)庫(kù) 將數(shù)據(jù)全部集中管理,數(shù)據(jù)只有一份,比如實(shí)時(shí)采集的數(shù)據(jù)一般都應(yīng)該放在服務(wù)器端。將一部分?jǐn)?shù)據(jù)放在服務(wù)器上,另一部分?jǐn)?shù)據(jù)放在客戶機(jī)上-地方數(shù)據(jù)庫(kù) 將

8、數(shù)據(jù)分散管理,只將重要的、所有部門共享的數(shù)據(jù)放在中央數(shù)據(jù)庫(kù)中,將各個(gè)部門自己需要的數(shù)據(jù)放在地方數(shù)據(jù)庫(kù)中。例:本教學(xué)管理系統(tǒng)中,將所設(shè)計(jì)的五張表放在服務(wù)器,便于全校統(tǒng)一管理,各部門共享,同時(shí)各部門有自己的地方數(shù)據(jù)庫(kù)。 如“修課表”,中央和地方各有一個(gè),且兩者結(jié)構(gòu)一致,當(dāng)?shù)胤秸n程數(shù)據(jù)庫(kù)修改時(shí),能及時(shí)修改中央數(shù)據(jù)庫(kù),在保持?jǐn)?shù)據(jù)的一致性。將數(shù)據(jù)分為中央數(shù)據(jù)庫(kù)和地方數(shù)據(jù)庫(kù)的好處:減少對(duì)中央數(shù)據(jù)庫(kù)的操作次數(shù),先在地方數(shù)據(jù)庫(kù)中錄入數(shù)據(jù)有關(guān)數(shù)據(jù)(比如本系的修課情況表),當(dāng)確認(rèn)準(zhǔn)確無誤之后再送到中央數(shù)據(jù)庫(kù)中。數(shù)據(jù)一旦被送到中央數(shù)據(jù)庫(kù)就不能被隨便地修改和刪除,這也增加了中央數(shù)據(jù)庫(kù)數(shù)據(jù)的安全性和可靠性。數(shù)據(jù)過于龐雜

9、易于各部門開發(fā)自己專用的地方數(shù)據(jù)庫(kù)分類 Visual Basic中的數(shù)據(jù)訪問Jet :Visual Basic 提供的數(shù)據(jù)庫(kù)引擎Jet數(shù)據(jù)庫(kù)引擎接口的方法:Data控件(Data Control)和數(shù)據(jù)訪問對(duì)象(DAO)VB中數(shù)據(jù)庫(kù)編程的內(nèi)容:創(chuàng)建數(shù)據(jù)訪問對(duì)象,這些數(shù)據(jù)訪問對(duì)象對(duì)應(yīng)于被訪問的物理數(shù)據(jù)庫(kù)的不同部分,如:用這些對(duì)象的屬性和方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。VB可以識(shí)別三類數(shù)據(jù)庫(kù):1.Visual Basic數(shù)據(jù)庫(kù):2.外部數(shù)據(jù)庫(kù):3.ODBC數(shù)據(jù)庫(kù):符合ODBC標(biāo)準(zhǔn)的客戶/服務(wù)器數(shù)據(jù)庫(kù)提供有限的不需編程就能訪問現(xiàn)存數(shù)據(jù)庫(kù)的功能DAO模型則是全面控制數(shù)據(jù)庫(kù)的完整編程接口Database(數(shù)據(jù)

10、庫(kù))、TableDef(表)、Field(字段)Index(索引)對(duì)象。數(shù)據(jù)庫(kù)文件使用與Microsoft Access相同的格式dBase III或IVFoxPro 2.0和2.5Paradox版本3.x和4.xMicrosoft ExcelLotus 1-2-3Microsoft SQL Server Visual Basic 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)Jet引擎的作用:處理存儲(chǔ)、檢索、更新數(shù)據(jù)的結(jié)構(gòu),并提供了功能強(qiáng)大的、面向?qū)ο蟮腄AO編程接口VB數(shù)據(jù)庫(kù)應(yīng)用程序的組成實(shí)現(xiàn)“透明”訪問(讀取、寫入或修改數(shù)據(jù)庫(kù),處理所有內(nèi)部事物)顯示數(shù)據(jù)并允許用戶查看或更新數(shù)據(jù)窗體VB中添加或刪除記錄,執(zhí)行查詢等Jet

11、包含在一組DLL文件中,被鏈接到VB程序,把應(yīng)用程序譯成.mdb文件或其它數(shù)據(jù)庫(kù)的物理操作。 包含數(shù)據(jù)表的一個(gè)或多個(gè)文件2.數(shù)據(jù)庫(kù)應(yīng)用程序的存放 遠(yuǎn)程數(shù)據(jù)庫(kù) 客戶機(jī)/服務(wù)器數(shù)據(jù)庫(kù) Visual Basic 數(shù)據(jù)庫(kù)體系結(jié)構(gòu) 客戶/服務(wù)器與遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的存放可同時(shí)對(duì)多個(gè)客戶機(jī)的應(yīng)用程序提供服務(wù),操作數(shù)據(jù)庫(kù)并對(duì)每個(gè)應(yīng)用程序返回所請(qǐng)求的記錄 創(chuàng)建數(shù)據(jù)庫(kù)VB中創(chuàng)建數(shù)據(jù)庫(kù)途徑:1、可視化數(shù)據(jù)管理器2、DAO3、Microsoft Access4 、外部數(shù)據(jù)庫(kù)應(yīng)用程序不編程即可創(chuàng)建Jet引擎使用VB的DAO部件可以通過編程的方法創(chuàng)建數(shù)據(jù)庫(kù)用 Access創(chuàng)建的數(shù)據(jù)庫(kù)和直接在VB中創(chuàng)建的數(shù)據(jù)庫(kù)一樣,兩者用

12、的數(shù)據(jù)庫(kù)引擎與格式一樣VB可通過ISAM或ODBC驅(qū)動(dòng)程序來訪問FoxPro、dBASE或ODBC客戶/服務(wù)器應(yīng)用程序 可視化數(shù)據(jù)管理器數(shù)據(jù)管理器(Data Manager)可以用于快速地建立數(shù)據(jù)庫(kù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)內(nèi)容。VB的數(shù)據(jù)管理器是一個(gè)獨(dú)立的可單獨(dú)運(yùn)行的應(yīng)用程序Visdata.exe。隨安裝過程放置在VB目錄中,可以單獨(dú)運(yùn)行,也可以在VB開發(fā)環(huán)境中啟動(dòng)它。凡是VB有關(guān)數(shù)據(jù)庫(kù)的操作,比如數(shù)據(jù)庫(kù)結(jié)構(gòu)的建立、記錄的添加及修改以及使用ODBC連接到服務(wù)器端的數(shù)據(jù)庫(kù),如SQL Server,都可以利用此工具來完成。啟動(dòng)數(shù)據(jù)管理器的方法:打開VB 外接程序可視化數(shù)據(jù)管理器 VisData 窗體工具欄提供

13、了三組9個(gè)按鈕在下圖中介紹以VB提供的Biblio.mdb數(shù)據(jù)庫(kù)為實(shí)例介紹。 文件打開數(shù)據(jù)庫(kù)VB目錄下的Biblio.mdb 確定所進(jìn)行的增、刪、改、查等操作直接更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)在內(nèi)存中操作,不直接影響數(shù)據(jù)庫(kù)只能讀,不能改進(jìn)行事物處理圖11.1 數(shù)據(jù)管理器1、建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)結(jié)構(gòu)文件新建Microsoft Access 版本7.0 輸入存儲(chǔ)的文件名如圖11.1添加數(shù)據(jù)表鼠標(biāo)右鍵新表出現(xiàn)“結(jié)構(gòu)表” 表名稱:課程單擊“添加字段” 輸入字段內(nèi)容名稱:課程名、授課學(xué)期、學(xué)時(shí)數(shù)等類型:text或integer大小:不定建立索引2.錄入數(shù)據(jù)數(shù)據(jù)庫(kù)窗口在窗體上使用DBGrid控件課程鼠標(biāo)右鍵打開顯示下圖

14、錄入數(shù)據(jù)3.建立查詢對(duì)已有數(shù)據(jù)的數(shù)據(jù)表進(jìn)行有條件或無條件查詢 VisData窗口實(shí)用程序查詢生成器(右鍵新查詢)輸入查詢條件 數(shù)據(jù)訪問對(duì)象DAO的引入:數(shù)據(jù)管理器:只適合于做比較簡(jiǎn)單的應(yīng)用,如果要實(shí)現(xiàn)復(fù)雜的應(yīng)用系統(tǒng),使用VB提供的數(shù)據(jù)訪問對(duì)象(DAO),DAO是通過編程來直接控制JET數(shù)據(jù)庫(kù)引擎,來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。DAO的分層結(jié)構(gòu):數(shù)據(jù)訪問對(duì)象是以分層形式組織而成的,大多數(shù)對(duì)象成員都是一個(gè)對(duì)象類別的集合,而這個(gè)集合又隸屬于上一層的另一個(gè)對(duì)象類別,大多數(shù)數(shù)據(jù)訪問對(duì)象被描述為“對(duì)象和集合”。分層結(jié)構(gòu)的頂部是Microsoft Jet數(shù)據(jù)庫(kù)引擎本身DBEngine對(duì)象。它是唯一不被其它對(duì)象

15、所包含的數(shù)據(jù)訪問對(duì)象對(duì)象分層結(jié)構(gòu)通過“包含”一種其它對(duì)象的“集合”實(shí)現(xiàn),集合對(duì)象用于包含其它對(duì)象,集合中的對(duì)象都是同一類型的。 DAO分層結(jié)構(gòu)中的元素實(shí)際上是類,而不是對(duì)象,它們是對(duì)象的“藍(lán)圖”。類與數(shù)據(jù)類型類似,它只描述所引用的對(duì)象的“類型”。例如,聲明 Dim MyWs As WorkspaceMyWs是一個(gè)代表Workspace類型的對(duì)象的變量 DAO分層結(jié)構(gòu)圖DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟:創(chuàng)建新數(shù)據(jù)庫(kù)的第一步是創(chuàng)建Database對(duì)象本身,然后添加與設(shè)計(jì)相一致的TableDef和Field對(duì)象來定義其結(jié)構(gòu),方法:1、使用Dim語(yǔ)句給數(shù)據(jù)庫(kù)中的每一個(gè)對(duì)象創(chuàng)建對(duì)象變量。除了構(gòu)造構(gòu)成環(huán)境的DBEn

16、igne和缺省的Workspace對(duì)象外,還需要:一個(gè)Database對(duì)象每個(gè)表需要一個(gè)TableDef對(duì)象每個(gè)表中的每個(gè)字段需要一個(gè)Field對(duì)象每個(gè)表中的每個(gè)索引需要一個(gè)Index對(duì)象如:用如下代碼創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象變量:(數(shù)據(jù)庫(kù)名: JXGL.mdb )Dim MyDb As 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)

17、 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 Index, SKIdx(2) As Index 數(shù)據(jù)訪問對(duì)象 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟2、使用Workspace對(duì)象的CreateDatabase方法創(chuàng)建新的數(shù)據(jù)庫(kù)。Set MyWs = DBEngine.Eorkspaces(0)Set MyDb = MyWs.CreateDatabase(“C:VBJXGL

18、.mdb”,dbLangGeneral,dbVersion03)3、使用Database對(duì)象的CreateTableDef方法為數(shù)據(jù)庫(kù)中的所有表創(chuàng)建新的TableDef對(duì)象。如本例中:Set StuTd = MyDB.CreateTableDef(“學(xué)生”)Set TeaTd = MyDB.CreateTableDef(“教師”)Set CosTd = MyDB.CreateTableDef(“課程”)Set XKTd = MyDB.CreateTableDef(“修課”)Set SKTd = MyDB.CreateTableDef(“授課”)4、使用TableDef對(duì)象的CreateFiel

19、d方法,為表中每個(gè)字段創(chuàng)建Field對(duì)象,然后設(shè)置每個(gè)字段的屬性來定義字段的長(zhǎng)度、數(shù)據(jù)類型和其它所需的屬性。例如,下面的代碼用來創(chuàng)建JXGL.mdb數(shù)據(jù)庫(kù)中的課程表:Set CosFlds(0) = CosTd.CreateField(“課程號(hào)”,dbText)Set CosFlds(0).Size = 10Set CosFlds(1) = CosTd.CreateField(“課程名”,dbText)Set CosFlds(1).Size = 20Set CosFlds(2) = CosTd.CreateField(“授課學(xué)期”,dbInteger)Set CosFlds(3) = CosT

20、d.CreateField(“學(xué)時(shí)數(shù)”,dbInteger)5、用Append方法把每個(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 CosTd 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫(kù)的步驟用數(shù)據(jù)庫(kù)表添加索引的步驟:1.用TableDef對(duì)象中的CreateIndex方法給每個(gè)表創(chuàng)建索引,并設(shè)置其屬性:Set CosId

21、x = 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 注意:用Index對(duì)象中的CreateField方法創(chuàng)建的字段不添加到TableDef中,而是添加到Index對(duì)象中,

22、并給Name屬性賦值,該屬性與被索引的TableDef字段中的Name屬性相同。不用指定Index對(duì)象中字段的Type(類型)和Size(大小)屬性。 添加索引建好數(shù)據(jù)庫(kù)之后,還要指定索引及各表間的關(guān)系:用CreatIndex方法可以給TableDef定義的表添加索引,用Index對(duì)象的CreatField方法創(chuàng)建新的Field指定被索引的字段 添加關(guān)系和引用完整性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和Foreign

23、Table屬性: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 TempField As FieldSet TempField = Stu_XK.CreateField(“學(xué)號(hào)”)TempField.ForeignName = “學(xué)號(hào)”3.用Append方法把Field對(duì)象添加到Relation中,然后把Re

24、lation添加到Database中。Stu_XK.Fields.Append TempFieldMyDb.Relations.Append Stu_XK在添加和刪除記錄時(shí)必須保持引用的完整性以確保數(shù)據(jù)庫(kù)中的關(guān)系有用 創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序 數(shù)據(jù)控件(Data Control)數(shù)據(jù)控件是連接數(shù)據(jù)庫(kù)中的信息和用戶用來顯示信息的依附控件,是簡(jiǎn)單數(shù)據(jù)庫(kù)應(yīng)用程序的核心。依附控件是為處理創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序的數(shù)據(jù)控件而建立的控件。數(shù)據(jù)控件用于綁定數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的某個(gè)表,依附控件用于綁定表中的某個(gè)列。數(shù)據(jù)控件是VB工具箱中的一個(gè)可用控件,設(shè)置數(shù)據(jù)控件的步驟:打開VB選擇Data控件在窗體中畫出Data控件設(shè)定

25、Data控件的DatabaseName和RecordSource屬性。用于綁定某個(gè)數(shù)據(jù)庫(kù)用于綁定數(shù)據(jù)庫(kù)中的某個(gè)表文本框、標(biāo)簽、校驗(yàn)框、圖片框、圖像等 創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序 創(chuàng)建一個(gè)簡(jiǎn)單的應(yīng)用程序例:創(chuàng)建一個(gè)課程表應(yīng)用程序:1、建立窗體:打開VB 添加Data控件設(shè)置控件的屬性添加依附控件設(shè)置依附控件屬性。 Name:Course Caption:課程DatabaseName: JXGL.mdbRecordSource:課程數(shù)據(jù)訪問窗體設(shè)置的DataField和CaptionVB設(shè)置屏幕 2.瀏覽數(shù)據(jù)庫(kù)中數(shù)據(jù):?jiǎn)螕暨\(yùn)行按鈕,結(jié)果如下: 創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序 創(chuàng)建一個(gè)簡(jiǎn)單的應(yīng)用程序第一個(gè)記錄最后一個(gè)記錄下一條記錄上一條記錄3.數(shù)據(jù)控件的其它功能:添

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論