數(shù)據(jù)庫(kù)SQL ServerSQLite教程課件:數(shù)據(jù)庫(kù)應(yīng)用開發(fā)_第1頁(yè)
數(shù)據(jù)庫(kù)SQL ServerSQLite教程課件:數(shù)據(jù)庫(kù)應(yīng)用開發(fā)_第2頁(yè)
數(shù)據(jù)庫(kù)SQL ServerSQLite教程課件:數(shù)據(jù)庫(kù)應(yīng)用開發(fā)_第3頁(yè)
數(shù)據(jù)庫(kù)SQL ServerSQLite教程課件:數(shù)據(jù)庫(kù)應(yīng)用開發(fā)_第4頁(yè)
數(shù)據(jù)庫(kù)SQL ServerSQLite教程課件:數(shù)據(jù)庫(kù)應(yīng)用開發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)應(yīng)用開發(fā)9.1關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)9.2數(shù)據(jù)庫(kù)應(yīng)用開發(fā)過(guò)程9.3數(shù)據(jù)庫(kù)訪問(wèn)架構(gòu)設(shè)計(jì)

把基于數(shù)據(jù)庫(kù)的應(yīng)用程序(或應(yīng)用軟件)稱為數(shù)據(jù)庫(kù)應(yīng)用。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)本質(zhì)上也是軟件,因此它的開發(fā)過(guò)程與一般的軟件開發(fā)相似。數(shù)據(jù)庫(kù)本身并不能建立應(yīng)用程序,只

能完成后臺(tái)數(shù)據(jù)的存儲(chǔ)與管理,因此必須和前端的應(yīng)用程序結(jié)合起來(lái)才能執(zhí)行業(yè)務(wù)處理功能。

9.1關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)

9.1.1關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的概念數(shù)據(jù)庫(kù)設(shè)計(jì)(DatabaseDesign)是指對(duì)于一個(gè)設(shè)定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求。它是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程。

9.1.2關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的基本過(guò)程

按照規(guī)范設(shè)計(jì)的方法,結(jié)合軟件工程的思想,可將數(shù)據(jù)庫(kù)設(shè)計(jì)分為6個(gè)階段:需求分析階段、概念結(jié)構(gòu)設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、數(shù)據(jù)庫(kù)實(shí)施階段、數(shù)據(jù)庫(kù)運(yùn)

行和維護(hù)階段。

1.需求分析

需求分析就是了解用戶的需求。通過(guò)調(diào)查和分析用戶的業(yè)務(wù)活動(dòng)和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量及它們?cè)跇I(yè)務(wù)活動(dòng)中的情況,確定用戶的使用要求和約

束條件等,形成文本資料,在此基礎(chǔ)上確定系統(tǒng)的功能及其擴(kuò)展。

2.概念設(shè)計(jì)

概念設(shè)計(jì)就是將用戶需求分析得到的用戶需求抽象為信息結(jié)構(gòu),即概念模型。最著名的概念模型就是E-R模型,概念設(shè)計(jì)的結(jié)果就是E-R圖。

3.邏輯設(shè)計(jì)

邏輯設(shè)計(jì)的任務(wù)就是把概念設(shè)計(jì)的成果E-R圖轉(zhuǎn)換為DBMS支持的邏輯結(jié)構(gòu)。

4.物理設(shè)計(jì)

物理設(shè)計(jì)的任務(wù)是為了有效地實(shí)現(xiàn)邏輯模式,確定所采取的存儲(chǔ)策略,其內(nèi)容包括關(guān)系模型的存取方法、數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)、參數(shù)配置等。

5.數(shù)據(jù)庫(kù)實(shí)施

數(shù)據(jù)庫(kù)實(shí)施就是在計(jì)算機(jī)上建立起符合需求的數(shù)據(jù)庫(kù)結(jié)構(gòu)、填入數(shù)據(jù)、測(cè)試和試運(yùn)行的過(guò)程。

⒍數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

數(shù)據(jù)庫(kù)試運(yùn)行通過(guò)后,數(shù)據(jù)庫(kù)開發(fā)工作就基本結(jié)束,進(jìn)入正式運(yùn)行階段。對(duì)數(shù)據(jù)庫(kù)的經(jīng)常性維護(hù)工作主要由DBA完成,包括安全性與完整性控制、性能監(jiān)測(cè)與改善、數(shù)據(jù)備

份與管理等工作。

9.2數(shù)據(jù)庫(kù)應(yīng)用開發(fā)過(guò)程

應(yīng)用軟件(ApplicationSoftware)是和系統(tǒng)軟件相對(duì)應(yīng)的,是使用各種程序設(shè)計(jì)語(yǔ)言編制的應(yīng)用程序的集合。隨著面向?qū)ο蠹夹g(shù)的應(yīng)用,軟件架構(gòu)也進(jìn)入了大家的視野。通常,小規(guī)模網(wǎng)站的Web應(yīng)用系統(tǒng)架構(gòu)將Web應(yīng)用和數(shù)據(jù)庫(kù)分開部署,Web應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器各司其職,在系統(tǒng)訪問(wèn)量增加時(shí)可以分別升級(jí)應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。

9.2.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的架構(gòu)

計(jì)算機(jī)中的Architecture一詞,譯成中文有“架構(gòu)”“體系”之意,是有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述。軟件架構(gòu)在定義上分為“組成派”和“決策派”兩大陣營(yíng)。“組成派”認(rèn)為軟件架構(gòu)是將系統(tǒng)描述成計(jì)算組件及組件之間的交互;“決策派”認(rèn)為軟件架構(gòu)包含了一系列的決策,主要包括軟件系統(tǒng)的組織選擇、組成系統(tǒng)的結(jié)構(gòu)元素和它們之間的接口等。

數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的架構(gòu)一般指軟件體系結(jié)構(gòu)。一般地,可以將數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的所有業(yè)務(wù)功能劃分為以下三個(gè)部分:

(1)操作界面服務(wù)。

(2)商業(yè)服務(wù)。

(3)數(shù)據(jù)服務(wù)。

根據(jù)這三類功能在整個(gè)架構(gòu)中位置的不同,數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的架構(gòu)大致可分為兩種,即客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)和瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)。

1.C/S結(jié)構(gòu)

C/S結(jié)構(gòu)由客戶端和服務(wù)器構(gòu)成,其中服務(wù)器指數(shù)據(jù)庫(kù)服務(wù)器,客戶端指完成前端業(yè)務(wù)處理的應(yīng)用程序。在C/S結(jié)構(gòu)中,客戶端可以根據(jù)業(yè)務(wù)處理的要求實(shí)時(shí)地訪問(wèn)后臺(tái)的數(shù)

據(jù)庫(kù)服務(wù)器,從而提供對(duì)前臺(tái)數(shù)據(jù)的增加、刪除、修改、查詢等服務(wù)。

C/S結(jié)構(gòu)又有許多變種,在實(shí)際開發(fā)中常用的結(jié)構(gòu)主要有以前端為主的C/S結(jié)構(gòu)和以后端為主的C/S結(jié)構(gòu)。以前端為主的C/S結(jié)構(gòu)是指在應(yīng)用系統(tǒng)的三類服務(wù)中,操作界面服

務(wù)和商業(yè)服務(wù)都在客戶端完成,而服務(wù)器僅提供數(shù)據(jù)服務(wù)。在圖9-1給出了以前端為主的C/S結(jié)構(gòu)示意圖。在這種結(jié)構(gòu)中,客戶端負(fù)擔(dān)重,服務(wù)器負(fù)擔(dān)輕,所以也稱為“胖客戶機(jī)/瘦服務(wù)器結(jié)構(gòu)”。圖9-1以前端為主的C/S結(jié)構(gòu)

以后端為主的C/S結(jié)構(gòu)是在以前端為主的結(jié)構(gòu)基礎(chǔ)上提出來(lái)的,可以看成是對(duì)以前端為主的C/S結(jié)構(gòu)的一種改進(jìn)。圖9-2給出了以后端為主的C/S結(jié)構(gòu)示意圖。圖9-2以后端為主的C/S結(jié)構(gòu)

2.B/S結(jié)構(gòu)

在C/S結(jié)構(gòu)中,操作界面服務(wù)和商業(yè)服務(wù)通常在客戶端運(yùn)行,因此一旦系統(tǒng)需要升級(jí),就需要對(duì)所有客戶端進(jìn)行更新。在銀行、證券、郵電等分布式應(yīng)用系統(tǒng)中,這種維護(hù)性任務(wù)的工作量巨大,對(duì)系統(tǒng)的升級(jí)工作帶來(lái)了很大的困難。B/S結(jié)構(gòu)正是在這樣的背景下出現(xiàn)的。B/S結(jié)構(gòu)出現(xiàn)的基礎(chǔ)是互聯(lián)網(wǎng)和WWW服務(wù)的出現(xiàn)。

圖9-3給出了數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的B/S結(jié)構(gòu)示意圖。圖9-3B/S結(jié)構(gòu)

9.2.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)的過(guò)程

數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開發(fā)過(guò)程一般遵循結(jié)構(gòu)化方法即生命周期法。

結(jié)構(gòu)化軟件開發(fā)方法首先對(duì)問(wèn)題進(jìn)行全面、細(xì)致的調(diào)查,然后從功能和流程的角度來(lái)分析和優(yōu)化問(wèn)題,最后設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)。它的核心思想是結(jié)構(gòu)化的分析、設(shè)計(jì)與編程,特點(diǎn)是強(qiáng)調(diào)自頂向下設(shè)計(jì)以及流程化和文檔化。結(jié)構(gòu)化方法一般通過(guò)數(shù)據(jù)流程圖分析、模塊化技術(shù)和結(jié)構(gòu)化程序技術(shù)來(lái)實(shí)現(xiàn)。圖9-4所示為基于結(jié)構(gòu)化方法的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)過(guò)程。圖9-4結(jié)構(gòu)化方法的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)過(guò)程

下面簡(jiǎn)要介紹每個(gè)過(guò)程,更詳細(xì)的內(nèi)容可參考有關(guān)軟件工程的書籍。

⒈可行性分析

可行性分析是研究對(duì)于提出的系統(tǒng)開發(fā)需求是否存在可行性,是否值得去做??尚行苑治鲆话阋治鱿到y(tǒng)開發(fā)的經(jīng)濟(jì)可行性、技術(shù)可行性及操作可行性,基本的步驟如下:

(1)復(fù)查系統(tǒng)規(guī)模和目標(biāo):根據(jù)系統(tǒng)的開發(fā)目標(biāo)訪問(wèn)關(guān)鍵人員,改正含糊的、二義的以及不正確的描述,核查系統(tǒng)限制和約束。

(2)研究現(xiàn)有系統(tǒng)功能:分析現(xiàn)有系統(tǒng)的任務(wù)和功能,比較新舊系統(tǒng)。

(3)導(dǎo)出新系統(tǒng)模型:定義新系統(tǒng)的邏輯模型,明確新系統(tǒng)的功能需求和其他目標(biāo)。

(4)重新定義問(wèn)題:復(fù)查問(wèn)題定義、規(guī)模和目標(biāo),根據(jù)新系統(tǒng)邏輯模型重新定義問(wèn)題。

(5)導(dǎo)出和分析各種可選解決方案:根據(jù)新系統(tǒng)的邏輯模型,從不同角度導(dǎo)出不同的物理模型(物理實(shí)現(xiàn)方案),并分析每一種方案的經(jīng)濟(jì)可行性、技術(shù)可行性和操作可行性,

去掉經(jīng)濟(jì)上不合算、用戶沒(méi)有能力操作、技術(shù)上實(shí)現(xiàn)不了的方案,最后為可行的方案制訂進(jìn)度計(jì)劃。

(6)推薦行動(dòng)方針:得出可行性研究的結(jié)論,即終止還是繼續(xù)開發(fā)。如果繼續(xù)開發(fā),則對(duì)推薦方案進(jìn)行成本/效益分析。

(7)草擬開發(fā)計(jì)劃:為推薦方案制訂開發(fā)計(jì)劃,包括進(jìn)度安排、開發(fā)人員、硬件設(shè)備、軟件工具、各階段成本估計(jì)等。

(8)書寫文檔提交審查:提交可行性研究報(bào)告,總結(jié)各階段的任務(wù)和結(jié)果,給出推薦方案及可行性分析結(jié)果,描述開發(fā)計(jì)劃等。

⒉需求分析

軟件系統(tǒng)的需求是以一種清晰、簡(jiǎn)潔、一致且無(wú)二義性的方式,對(duì)一個(gè)待開發(fā)系統(tǒng)中各個(gè)有意義方面的陳述的一個(gè)集合。常見的需求有功能需求、數(shù)據(jù)需求、性能需求、環(huán)境

需求、可靠性需求、安全保密需求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等,其中最重要的是功能需求、數(shù)據(jù)需求和性能需求。需求分析通常包括需求獲

取和需求規(guī)格說(shuō)明兩部分內(nèi)容,最終的目標(biāo)是形成軟件系統(tǒng)的需求規(guī)格說(shuō)明書。

⒊設(shè)計(jì)

設(shè)計(jì)一般分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。其中概要設(shè)計(jì)階段主要完成軟件系統(tǒng)的體系結(jié)構(gòu)(功能模塊結(jié)構(gòu))設(shè)計(jì)、處理程序設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和接口設(shè)計(jì)等工作;詳細(xì)設(shè)

計(jì)階段主要給出每個(gè)模塊具體的輸入/輸出、程序流程、數(shù)據(jù)結(jié)構(gòu)和約束等內(nèi)容,為模塊的編碼奠定基礎(chǔ)。具體介紹如下:

(1)軟件的功能模塊結(jié)構(gòu)一般從需求分析的數(shù)據(jù)流程圖中導(dǎo)出,最終建立層次結(jié)構(gòu)的功能模塊劃分。

(2)處理流程設(shè)計(jì)是指多個(gè)模塊組合響應(yīng)系統(tǒng)需求的工作過(guò)程。

(3)數(shù)據(jù)庫(kù)設(shè)計(jì)是概要設(shè)計(jì)中的重要內(nèi)容之一。

(4)接口設(shè)計(jì)主要包括內(nèi)部接口設(shè)計(jì)和外部接口設(shè)計(jì)。

(5)詳細(xì)設(shè)計(jì)的主要任務(wù)是精確描述每個(gè)模塊的程序邏輯。

⒋編碼

編碼階段主要是完成詳細(xì)設(shè)計(jì)階段各個(gè)模塊的編程實(shí)現(xiàn)任務(wù),包括人機(jī)界面設(shè)計(jì)和程序編碼工作。人機(jī)界面設(shè)計(jì)一般需要遵循3條基本原則:置于用戶控制之下、減少用戶的

記憶負(fù)擔(dān)和保持界面一致。程序編碼的基本要求是邏輯清楚、清晰易讀。

軟件系統(tǒng)開發(fā)所用的程序設(shè)計(jì)語(yǔ)言一般要根據(jù)自己的特點(diǎn)和需求選擇,主要考慮的因素包括以下幾點(diǎn):

(1)軟件的應(yīng)用領(lǐng)域。

(2)系統(tǒng)用戶的要求。

(3)可以使用的編譯程序。

(4)可以得到的軟件工具。

(5)工程規(guī)模。

(6)程序員的知識(shí)。

(7)軟件可移植性。

下面是常見的一些程序設(shè)計(jì)語(yǔ)言與所適用的領(lǐng)域。

(1)C/C++語(yǔ)言,適合系統(tǒng)底層實(shí)現(xiàn)及實(shí)時(shí)應(yīng)用。

(2)Fortran,適合工程領(lǐng)域。

(3)Python、Prolog和Lisp,適合人工智能領(lǐng)域。

(4)Delphi、VB,適合MIS應(yīng)用開發(fā)。

(5)VC、Python,適合信息處理與控制等應(yīng)用開發(fā)。

(6)Java,適合平臺(tái)無(wú)關(guān)的應(yīng)用。

(7)C#、Python、JSP、ASP,適合Web應(yīng)用。

5.測(cè)試

軟件測(cè)試是軟件系統(tǒng)開發(fā)過(guò)程中非常重要的一個(gè)步驟。測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤。一個(gè)好的測(cè)試用例在于能夠發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤,一個(gè)成功的測(cè)試是發(fā)

現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。(1)關(guān)于軟件測(cè)試,必須清楚以下幾點(diǎn):

①軟件測(cè)試的目的是以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。如果成功地實(shí)施了測(cè)試,就能發(fā)現(xiàn)軟件中的錯(cuò)誤。

②軟件測(cè)試的附帶收獲是指它能夠證明軟件的功能和性能與需求說(shuō)明相符合。

③實(shí)施收集的測(cè)試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。

④測(cè)試不能表明軟件中不存在錯(cuò)誤,它只能說(shuō)明軟件中存在錯(cuò)誤。

⑤最嚴(yán)重的錯(cuò)誤(從用戶角度)是導(dǎo)致軟件無(wú)法滿足需求的錯(cuò)誤。

⑥軟件測(cè)試不等于程序測(cè)試,軟件測(cè)試應(yīng)貫穿于軟件定義與開發(fā)的整個(gè)過(guò)程,并且在概要設(shè)計(jì)階段就要完成軟件測(cè)試計(jì)劃的編寫。

(2)軟件測(cè)試過(guò)程一般分為單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試3個(gè)階段。

第一階段:?jiǎn)卧獪y(cè)試。

第二階段:集成測(cè)試。通常包括以下幾個(gè)方面:

①在把各個(gè)模塊連接起來(lái)時(shí),穿越模塊接口的數(shù)據(jù)是否會(huì)丟失。

②一個(gè)模塊的功能是否會(huì)使另一個(gè)模塊的功能產(chǎn)生不利的影響。

③各個(gè)功能組合起來(lái),能否達(dá)到預(yù)期要求的功能。

全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題。

⑤單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。

第三階段:確認(rèn)測(cè)試。

(3)軟件測(cè)試方法。軟件測(cè)試的基本方法有白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試(White-boxTesting)也稱玻璃盒測(cè)試(Glass-boxTesting),是指測(cè)試者完全知道程序的內(nèi)部結(jié)構(gòu)和處理算法,而黑盒測(cè)試(Black-boxTesting)是指測(cè)試者完全不知道程序的內(nèi)部結(jié)構(gòu)和處理算法的測(cè)試。

6.運(yùn)行維護(hù)

軟件測(cè)試通過(guò)后即開始試運(yùn)行,并進(jìn)入維護(hù)階段。軟件維護(hù)是指在軟件已經(jīng)交付使用后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。軟件維護(hù)包括3種類型的維護(hù)工作:

改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。

(1)改正性維護(hù)。

(2)適應(yīng)性維護(hù)。

(3)完善性維護(hù)。

9.3數(shù)據(jù)庫(kù)訪問(wèn)架構(gòu)設(shè)計(jì)

9.3.1數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)⒈O(jiān)DBC技術(shù)ODBC(OpenDataBaseConnectivity,開放數(shù)據(jù)庫(kù)互聯(lián))是微軟公司開放服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組成部分,是一種數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議,提供了訪問(wèn)數(shù)據(jù)庫(kù)的API接口。

一個(gè)完整的ODBC由下列幾個(gè)部件組成:

(1)應(yīng)用程序(ApplicationProgram):包括ODBC管理器(其主要任務(wù)是管理安裝的ODBC驅(qū)動(dòng)程序和管理數(shù)據(jù)源)、驅(qū)動(dòng)程序管理器(DriverManager,包含在ODBC32.dll中,

管理驅(qū)動(dòng)程序,是ODBC中最重要的部件)。

(2)ODBCAPI:提供ODBC與數(shù)據(jù)庫(kù)之間的接口,是一些DLL,如ODBC驅(qū)動(dòng)程序。

(3)數(shù)據(jù)源:包含數(shù)據(jù)庫(kù)位置和數(shù)據(jù)庫(kù)類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。

⒉ADO技術(shù)

ADO(ActiveXDataObiects,ActiveX數(shù)據(jù)對(duì)象)是微軟的一個(gè)用于存取數(shù)據(jù)源的COM組件,具有跨系統(tǒng)平臺(tái)的特性。ADO隨微軟的IIS被自動(dòng)安裝,提供了編程語(yǔ)言和

統(tǒng)一數(shù)據(jù)訪問(wèn)方式OLEDB的一個(gè)中間層。OLEDB(ObjectLinkandEmbed,對(duì)象連接與嵌入)是一組讀寫數(shù)據(jù)的方法,是一個(gè)低層的數(shù)據(jù)訪問(wèn)接口,可以訪問(wèn)各種數(shù)據(jù)源,包括

關(guān)系數(shù)據(jù)庫(kù)、非關(guān)系數(shù)據(jù)庫(kù)、電子郵件、文件系統(tǒng)、文本和圖像等。

ADO是高層數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),相對(duì)于ODBC來(lái)說(shuō),具有面向?qū)ο蟮奶攸c(diǎn)。ADO包括了6個(gè)類:Connection、Command、Recordset、Errors、Parameters和Fields。其中:

Connection用于表示和數(shù)據(jù)源的連接,以及處理一些命令和事務(wù);Command用于執(zhí)行某些命令來(lái)進(jìn)行諸如查詢、添加、刪除或更新記錄的操作;Recordset用于處理數(shù)據(jù)源的記錄集,

是在表中修改、檢索數(shù)據(jù)的最主要的方法。

9.3.2ADO.NET

ADO.NET是一組訪問(wèn)數(shù)據(jù)源的面向?qū)ο蟮念悗?kù)。數(shù)據(jù)源就是數(shù)據(jù)庫(kù),同時(shí)也包括文本文件、Excel表格或者XML文件。

ADO.NET是用于和數(shù)據(jù)源打交道的.NET技術(shù),包含了許多DataProviders,分別用于訪問(wèn)不同的數(shù)據(jù)源,取決于它們所使用的數(shù)據(jù)庫(kù)或協(xié)議。ADO.NET提供了訪問(wèn)數(shù)據(jù)源的公共方法,對(duì)于不同的數(shù)據(jù)源,采用不同的類庫(kù),這些類庫(kù)稱為DataProviders?;镜念悗?kù)如表9-1所示,其中API前綴表示它們支持的協(xié)議。

如果使用OleDbDataProvider連接一個(gè)提供OleDb接口的數(shù)據(jù)源,那么將使用的連接對(duì)象就是OleDbConnection。同理,如果使用Odbc數(shù)據(jù)源或SQLServer數(shù)據(jù)源就分別

加上Odbc或Sql前綴,即OdbcConnection或SqlConnection。具體介紹如下:

⒈SqlConnection對(duì)象

要訪問(wèn)一個(gè)數(shù)據(jù)源,必須先建立一個(gè)到它的連接。

⒉SqlCommand對(duì)象

連接數(shù)據(jù)庫(kù)后就可以開始操作想要執(zhí)行的數(shù)據(jù)庫(kù),這個(gè)是通過(guò)Command對(duì)象完成的。

⒊SqlDataReader對(duì)象

許多數(shù)據(jù)庫(kù)操作僅僅只是需要讀取一組數(shù)據(jù)。

⒋DataSet對(duì)象

DataSet對(duì)象用于表示那些存儲(chǔ)在內(nèi)存中的數(shù)據(jù),包括多個(gè)DataTable對(duì)象。

⒌SqlDataAdapter對(duì)象

SqlDataAdapter通過(guò)斷開模型來(lái)減少數(shù)據(jù)庫(kù)調(diào)用的次數(shù),把讀取的數(shù)據(jù)緩存在內(nèi)存中。

綜上所述,SqlConnection對(duì)象用于管理與數(shù)據(jù)源的連接,SqlCommand對(duì)象可以向數(shù)據(jù)源發(fā)送SQL命令,SqlDataReader對(duì)象可以快速地從數(shù)據(jù)源獲得只讀的、向前的數(shù)據(jù)流,使用DataSet可以處理那些已經(jīng)斷開的數(shù)據(jù)(存儲(chǔ)在內(nèi)存中的),通過(guò)SqlDataAdapter可實(shí)現(xiàn)數(shù)據(jù)源的讀取和寫入。

9.3.3C#操作SQLServer數(shù)據(jù)庫(kù)

C#語(yǔ)言(CSharp)是一種面向?qū)ο蟮木幊陶Z(yǔ)言,是專門為.NET的應(yīng)用而開發(fā)的語(yǔ)言,吸收了C++、VisualBasic、Delphi和Java等語(yǔ)言的優(yōu)點(diǎn),可以通過(guò)它編寫在.NETFramework上運(yùn)行的各種安全可靠的應(yīng)用程序。

1.ADO.NET訪問(wèn)SQLServer數(shù)據(jù)庫(kù)的方法

1)連接對(duì)象——Connect

連接對(duì)象用于提供與數(shù)據(jù)庫(kù)的連接。常用的連接對(duì)象有以下幾種:

(1)SqlConnection:只連接SQLServer。

(2)OleDbConnection:連接支持OleDb的任何數(shù)據(jù)源SQLServer、Access、DB2等。

(3)OdbcConnection:連接建立的ODBC數(shù)據(jù)源。

(4)OracleConnection:只連接Oracle數(shù)據(jù)庫(kù)。

使用SqlConnection對(duì)象的基本步驟如下:

(1)引用命名空間,即

usingSystem.Data.SqlClient;

(2)使用構(gòu)造函數(shù)實(shí)例化連接對(duì)象,即

SqlConnectionSqlConn=newSqlConnection(DB連接字符串);

方法如下:

·Open():打開一個(gè)連接,建立到數(shù)據(jù)源的物理連接。

例如:

SqlConn.Open();

·Close():關(guān)閉一個(gè)連接。

屬性如下:

State:連接狀態(tài)。

例如:

if(SqlConn.State==ConnectionState.Open)

SqlConn.Close();

2)數(shù)據(jù)適配器——DataAdapter

DataAdapter表示一組SQL命令和一個(gè)數(shù)據(jù)庫(kù)連接,用于填充DataSet和更新數(shù)據(jù)源。DataAdapter對(duì)象是一個(gè)數(shù)據(jù)適配器對(duì)象,是DataSet與數(shù)據(jù)源之間的橋梁。DataAdapter

對(duì)象提供4個(gè)屬性,分別是SelectCommand屬性、InsertCommand屬性、DeleteCommand屬性和UpdateCommand屬性,用于實(shí)現(xiàn)與數(shù)據(jù)源之間的互通。

常用的數(shù)據(jù)適配器對(duì)象有以下幾種:

(1)SqlDataAdapter:只適用于SQLServer。

(2)OleDbDataAdapter:適用于支持OleDB的任何數(shù)據(jù)源SQLServer、Access、DB2等。

(3)OdbcDataAdapter:適用于建立ODBC數(shù)據(jù)源。

(4)OracleDataAdapter:只適用于Oracle數(shù)據(jù)庫(kù)。

下面重點(diǎn)介紹SqlDataAdapter。

(1)SqlDataAdapter的特性。

(2)SqlDataAdapter的創(chuàng)建和使用。

(3)使用New關(guān)鍵字創(chuàng)建SqlDataAdapter。

(4)SqlDataAdapter的構(gòu)造函數(shù)。

例9-2SqlDataAdapter對(duì)象示例。代碼如下:

3)數(shù)據(jù)集——DataSet

數(shù)據(jù)集是從數(shù)據(jù)源檢索的記錄的緩存,一般配合數(shù)據(jù)適配器(DataAdapter)使用,調(diào)用數(shù)據(jù)適配器的Fill方法填充數(shù)據(jù)集。

例如:

4)數(shù)據(jù)命令操作對(duì)象——Command

(1)命令對(duì)象。Command一般執(zhí)行select、insert、update、delete命令。它必須與連接

對(duì)象配合使用,且必須顯示打開連接。

常用的數(shù)據(jù)命令對(duì)象有以下幾種:

①SqlCommand:只適用于SQLServer。

②OleDbCommand:適用于支持Oledb的任何數(shù)據(jù)源(SQLServer、Access等)。

③OdbcCommand:適用于建立ODBC數(shù)據(jù)源。

④OracleCommand:只適用于Oracle數(shù)據(jù)庫(kù)。

Command常用的屬性和方法如表9-2所示。

(2)使用Command對(duì)象的基本步驟。代碼格式如下:

SqlCommandSqlComm=newSqlCommand(命令文本,連接對(duì)象)

例9-5SqlCommand對(duì)象。代碼如下:

5)SqlDataReader對(duì)象

DataReader對(duì)象提供了順序的、只讀的方式讀取Command對(duì)象獲得的數(shù)據(jù)結(jié)果集。

DataReader對(duì)象有許多屬性和方法,如表9-3所示。

要想讀取DataReader對(duì)象中的數(shù)據(jù),就要用到DataReader對(duì)象的Read方法。由于DataReader對(duì)象每次只在內(nèi)存緩沖區(qū)里存儲(chǔ)結(jié)果集中的一條數(shù)據(jù),因此要讀取DataReader對(duì)象中的多條數(shù)據(jù),就要用到迭代語(yǔ)句。

例9-6使用SqlCommand對(duì)象創(chuàng)建SqlDataReader對(duì)象。代碼如下:

例9-7SqlDataReader對(duì)象示例。添加一個(gè)ListBox控件,命名為L(zhǎng)stStudNo。代碼如下:

2.C#操作SQLServer數(shù)據(jù)庫(kù)

在MicrosoftVisualStudio官網(wǎng)下載VisualStudioCommunity2019,這是一個(gè)功能強(qiáng)大的集成開發(fā)環(huán)境,供學(xué)習(xí)者免費(fèi)使用。進(jìn)入VisualStudio安裝程序,安裝VisualStudioCom

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論