畢業(yè)設(shè)計(論文)-基于C#的自助銀行模擬系統(tǒng)_第1頁
畢業(yè)設(shè)計(論文)-基于C#的自助銀行模擬系統(tǒng)_第2頁
畢業(yè)設(shè)計(論文)-基于C#的自助銀行模擬系統(tǒng)_第3頁
畢業(yè)設(shè)計(論文)-基于C#的自助銀行模擬系統(tǒng)_第4頁
畢業(yè)設(shè)計(論文)-基于C#的自助銀行模擬系統(tǒng)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 編號: 某某大學(xué)畢業(yè)論文(設(shè)計)題目 自助銀行模擬系統(tǒng)的設(shè)計與實現(xiàn) 院 (系) 信息工程學(xué)院 專 業(yè) 信息工程 學(xué)生姓名 某某某 成 績 指導(dǎo)教師 某某 (職稱) 副教授 2011年3月40摘要自助銀行是 automatic teller machine 的縮寫,意為自動柜員機。它是一種高度精密的機電一體化設(shè)備,利用磁卡或智能ic卡儲存用戶信息并通過加密鍵盤(epp)輸入密碼然后通過銀行內(nèi)部網(wǎng)絡(luò)驗證并進行各種交易的金融自助設(shè)備。自助銀行的功能主要包括:現(xiàn)金取款、現(xiàn)金存款、現(xiàn)金存取款、余額查詢、本行或異行轉(zhuǎn)賬、修改密碼等基本功能;有些多功能自助銀行還提供諸如存折打印、對賬單打印、支票存款、信封

2、存款、繳費、充值等一系列便捷服務(wù)。由此看來,自助銀行的管理是十分重要的。而人們在使用自助銀行前很重要的一個環(huán)節(jié),就是學(xué)習(xí)如何正確地使用自助銀行。如何利用現(xiàn)代計算機技術(shù)進行自助銀行的全真模擬,成了很棘手的問題。經(jīng)過需求分析,在數(shù)據(jù)庫方面,本項目使用sql sever 2000數(shù)據(jù)庫管理系統(tǒng);在應(yīng)用程序開發(fā)方面,使用微軟公司的vs.net的c#開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,其中最主要的是ado.net;在網(wǎng)絡(luò)查詢方面,使用c#技術(shù),開發(fā)語言也是c#.net。本論文將重點論述如何使用這些工具,對自助銀行進行更科學(xué)更有效地管理。關(guān)鍵詞:自助銀行模擬系統(tǒng); c#.net;sql; ado

3、.net; c# abstractthe application of electronic label and sql database in an automatic storage management systems development mainly includes three aspects of designing and realizing, that is the backstage database, the code of the database correspondence, and the report inquiring based on the networ

4、k. the database must have the uniformity, the integrity and the secure characteristics; the code the database correspondence could realize the appending, update and omitting functions of the database; the network report form inquiry should achieve report form inquiry functions.after carefully analyz

5、ing enterprise demand, sql the sever 2000 database management system is employed in this project; in the application procedure development aspect, microsoft corporations vs.net c# development kit is brought in, whose object-oriented development kits is utilized, especially the ado.net; in the networ

6、k inquiry aspects, the c# technology is taken into use, whose development language is c# net. this project has established the database, completed the database correspondence codes, realized report form inquiry based on the network.key words:stock management system;rfid;c#.net;sql;ado.net; c#目錄摘要iab

7、stractii目錄iii第一章 概述11.1課題名稱及其來源11.2 信息系統(tǒng)與管理信息系統(tǒng)11.3 自助銀行模擬系統(tǒng)的現(xiàn)狀與發(fā)展趨勢21.4 自助銀行模擬系統(tǒng)的意義3第二章 系統(tǒng)分析42.1 系統(tǒng)的功能42.2 用戶需求分析42.2.1應(yīng)用程序結(jié)構(gòu)確定42.2.2 確定系統(tǒng)開發(fā)環(huán)境5第三章 開發(fā)工具簡介63.1 microsoft visual studio .net 2005 的c# 語言63.1.1 c#.net簡介83.1.2 ado.net簡介93.2 c# 簡介113.3 sql server 200012第四章 系統(tǒng)的功能設(shè)計134.1 功能概述134.2 后臺數(shù)據(jù)庫設(shè)計144

8、.2.1 存儲過程介紹144.2.2 數(shù)據(jù)庫的表的設(shè)計174.2.3 設(shè)計局部er模式184.2.4數(shù)據(jù)字典20第五章 應(yīng)用程序界面設(shè)計245.1 用戶登陸245.2 系統(tǒng)主操作界面255.3 賬戶信息添加模塊265.4 帳戶信息查詢模塊275.5 系統(tǒng)介紹信息添加模塊305.6 查詢余額管理模塊315.7 賬戶明細(xì)管理模塊325.8 轉(zhuǎn)賬取現(xiàn)管理模塊33第六章 系統(tǒng)測試346.1 軟件測試概念346.2 軟件系統(tǒng)測試356.3 系統(tǒng)整體測試356.4 不足與改進35結(jié)論和建議37致謝38參考文獻(xiàn)39第一章 概述1.1課題名稱及其來源本課題根據(jù)銀行商業(yè)運營中的實際需要而產(chǎn)生,隨著社會的發(fā)展,互

9、聯(lián)網(wǎng)已經(jīng)成為人們?nèi)粘I睢W(xué)習(xí)辦公中不可缺少的一部分,并在各個領(lǐng)域發(fā)揮著越來越重要的作用。特別是在商業(yè)運營管理方面發(fā)展尤為迅速。本系統(tǒng)的開發(fā)主要是根據(jù)銀行實際運營管理中需要而制作,系統(tǒng)整體包括:基礎(chǔ)資料管理、銀行業(yè)務(wù)管理、財務(wù)報表管理、系統(tǒng)維護管理四大功能模塊。對其進行一條龍式的集中管理?!白灾y行模擬系統(tǒng)”的出現(xiàn)打破了銀行傳統(tǒng)的經(jīng)營管理模式,它憑借其銀行信息更新速度快、信息存儲量大、應(yīng)用簡便、安全性高等特點,為銀行的人員管理等信息的管理帶來了極大的方便,大大減輕了銀行管理人員的工作量,使管理者足不出戶便可對銀行的貨柜存儲信息、進出場信息、財務(wù)信息等了如執(zhí)掌,針對具體情況做出正確的決策。因此“

10、自助銀行模擬系統(tǒng)”已成為當(dāng)今銀行管理者不可缺少的管理工具之一,同時對于一個銀行的正常運做也發(fā)揮著極為重要的作用,并且隨著國家經(jīng)濟的不斷發(fā)展,國家和銀行進出口貿(mào)易量的不斷增加,“銀行信息管理系統(tǒng)”必將在未來國家進出口貿(mào)易發(fā)展中發(fā)揮越來越重要的作用。1.2 信息系統(tǒng)與管理信息系統(tǒng)(一)信息系統(tǒng)信息系統(tǒng)是一個人造系統(tǒng),它由人、硬件、軟件和數(shù)據(jù)資源組成,目的是及時、正確地收集、加工、存儲、傳遞和提供信息,實現(xiàn)組織中各項活動的管理、調(diào)節(jié)和控制。信息系統(tǒng)包括信息處理系統(tǒng)和信息傳輸系統(tǒng)兩個方面。信息處理系統(tǒng)對數(shù)據(jù)進行處理,使它獲得新的結(jié)構(gòu)與形態(tài)或者產(chǎn)生新的數(shù)據(jù)。信息傳輸系統(tǒng)不改變信息本身的內(nèi)容,作用是把信息

11、從一處傳到另一處。從第一臺電子計算機創(chuàng)始,50多年來,信息系統(tǒng)經(jīng)歷了由單片機到網(wǎng)絡(luò),由低級到高級,由電子數(shù)據(jù)處理到管理信息系統(tǒng)、再到?jīng)Q策支持系統(tǒng),由數(shù)據(jù)處理到智能處理的過程。edps是面向業(yè)務(wù)的信息系統(tǒng),mis是面向管理的信息系統(tǒng),dss則是面向決策的信息系統(tǒng)。edps、 mis、dss各自代表了信息系統(tǒng)發(fā)展過程中的某一階段,至今它們?nèi)愿髯圆粩嗟匕l(fā)展著,而且是相互交叉的關(guān)系。(二)管理信息系統(tǒng)管理信息系統(tǒng)是一個具有高度復(fù)雜性、多元性和綜合性的人機系統(tǒng),它全面使用計算機技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、數(shù)據(jù)庫技術(shù)以及管理科學(xué)、運籌學(xué)、統(tǒng)計學(xué)、模型論和各種最優(yōu)化技術(shù)、為經(jīng)營管理和決策服務(wù)。從廣義上說,管理信息系

12、統(tǒng)是一個對組織進行全面管理的綜合系統(tǒng)。隨著計算機技術(shù)的發(fā)展,信息技術(shù)在人們生活中變得越來越重要,信息化成為人們生活的主要內(nèi)容。管理信息系統(tǒng)作為信息化的一部分,在各行各業(yè)中,發(fā)揮著其不可替代的作用。管理信息系統(tǒng)綜合的意義在于產(chǎn)生更高層次的管理信息,為管理決策服務(wù)。管理信息系統(tǒng)綜合了管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)、行為科學(xué)、計算機科學(xué)和通信技術(shù)。在一個國家里管理信息系統(tǒng)的建立,運行和發(fā)展水平,標(biāo)志著這個國家的管理現(xiàn)代化水平和信息化水平。管理工作的成敗,取決于能否作出有效的決策,而決策的正確與否則在很大程度上取決于信息的質(zhì)量。隨著人類進入信息時代,信息管理的水平越來越成為衡量國家綜合實力的重要標(biāo)志。管

13、理信息系統(tǒng)是現(xiàn)代管理方法與手段相結(jié)合的系統(tǒng)。尤其是在銀行管理信息系統(tǒng)中,計算機系統(tǒng)與現(xiàn)代管理方法的結(jié)合才能使系統(tǒng)在管理中發(fā)揮作用。管理信息系統(tǒng)的目的是要使各級管理人員在計算機系統(tǒng)支持下,從各種繁瑣的日常事務(wù)中解脫出來,以便更好地投入到?jīng)Q策工作中去。管理信息系統(tǒng)不能只是對原有手工系統(tǒng)的簡單的模仿,它還必須能夠在仿真原管理信息系統(tǒng)的基礎(chǔ)上,改進管理系統(tǒng),使銀行管理在先進的技術(shù)手段和準(zhǔn)確及時的信息支持下,達(dá)到一個新層次。1.3 自助銀行模擬系統(tǒng)的現(xiàn)狀與發(fā)展趨勢自助銀行模擬系統(tǒng)由自助銀行賬戶管理系統(tǒng)、出入賬管理系統(tǒng)等多個子系統(tǒng)組成。自助銀行模擬系統(tǒng)在整個銀行系統(tǒng)中占有十分重要的地位。自助銀行賬戶管理是

14、銀行管理的重要方面,因為它和銀行的日常運營息息相關(guān)。出入賬管理是一項計算瑣碎復(fù)雜,具有重復(fù)性,又牽涉到每個人的利益,必須及時準(zhǔn)確地完成,一般不容發(fā)生差錯。計算機進行基礎(chǔ)管理工作,不僅能夠保證數(shù)據(jù)核算正確無誤,快速輸出,而且還可以利用工資數(shù)據(jù)庫對相關(guān)各種信息進行統(tǒng)計,服務(wù)于財務(wù)部門其他方面的核算和帳務(wù)處理?,F(xiàn)行的自助銀行管理軟件大多是基于單機版的,或者即使是網(wǎng)絡(luò)版,其用戶也是限制在一個。但牽涉到大型銀行的管理時,這往往是不夠的,一方面大型銀行內(nèi)部的各個部門自己要進行工資管理,這樣用戶數(shù)就會很多,另一方面,其他的管理系統(tǒng)如財務(wù)系統(tǒng)等需要工資管理系統(tǒng)的一些數(shù)據(jù),若網(wǎng)絡(luò)化程度不夠,則無法做到真正的自動

15、化信息集成。信息管理網(wǎng)絡(luò)化會在很大程度上提高辦事效率,尤其工資管理方面的網(wǎng)絡(luò)化,都會給公司及員工帶來益處。1.4 自助銀行模擬系統(tǒng)的意義現(xiàn)在社會各行各業(yè)崇尚的是高效管理,銀行也不例外。為贏得更多從業(yè)人員的青睞,本系統(tǒng)大大提高現(xiàn)代銀行管理效率,同時大大減輕對銀行管理人員的工作量,有利的保障銀行的正常經(jīng)營,促進銀行的發(fā)展。第二章 系統(tǒng)分析本系統(tǒng)采用了結(jié)構(gòu)化生命周期法,結(jié)構(gòu)化生命周期法是最常用的管理信息系統(tǒng)開發(fā)方法,分為四個步驟,即系統(tǒng)調(diào)研分析、數(shù)據(jù)庫設(shè)計實現(xiàn)、界面設(shè)計實現(xiàn)和系統(tǒng)功能設(shè)計實現(xiàn)。其中系統(tǒng)調(diào)研分析階段是最基礎(chǔ)、也是最容易被開發(fā)人員忽視的環(huán)節(jié)。2.1 系統(tǒng)的功能系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)自助

16、銀行的自動化管理,從而達(dá)到提高降低管理成本、提高作業(yè)效率、提高管理現(xiàn)代化水平,減少成本、促進相關(guān)產(chǎn)業(yè)的發(fā)展。首先要考慮項目的軟件組成分為兩大類:前臺的用戶操作界面及整個程序的后臺數(shù)據(jù)庫部分。前臺的用戶操作界面要實現(xiàn)用戶對倉庫的各種操作,要能夠?qū)崿F(xiàn)基礎(chǔ)資料管理、銀行業(yè)務(wù)管理、財務(wù)報表管理、系統(tǒng)維護管理等功能。后臺數(shù)據(jù)庫方面要實現(xiàn)對項目中用到的所有信息的管理、儲存。2.2 用戶需求分析用戶需求分析就是在用戶需求調(diào)研的基礎(chǔ)上,確定系統(tǒng)的總體結(jié)構(gòu)方案,完成相應(yīng)的需求分析報告。在確定系統(tǒng)的總體結(jié)構(gòu)方案過程中,包括確定應(yīng)用程序的結(jié)構(gòu)、系統(tǒng)開發(fā)環(huán)境和系統(tǒng)的功能模塊。用戶需求調(diào)研結(jié)束之后,應(yīng)該立即進行用戶需求

17、分析。根據(jù)對系統(tǒng)要實現(xiàn)的功能的分析用戶操作界面設(shè)計了如下模塊:自助銀行賬戶管理模塊、出入賬管理模塊、系統(tǒng)維護管理模塊。2.2.1應(yīng)用程序結(jié)構(gòu)確定從用戶應(yīng)用角度來看,可把應(yīng)用程序系統(tǒng)的組成部分分成數(shù)據(jù)存儲層、業(yè)務(wù)處理層和界面表示層等3個層次,而應(yīng)用程序結(jié)構(gòu)可歸納為:集中式應(yīng)用程序結(jié)構(gòu)、單用戶應(yīng)用程序結(jié)構(gòu)、多層服務(wù)器應(yīng)用程序結(jié)構(gòu)、瀏覽器服務(wù)器應(yīng)用程序結(jié)構(gòu)、交易記錄機服務(wù)器應(yīng)用程序結(jié)構(gòu)等5種類型。本系統(tǒng)的交易記錄端程序部分就采用了當(dāng)前最流行的交易記錄機服務(wù)器應(yīng)用程序結(jié)構(gòu)(即c/s結(jié)構(gòu)),此時,交易記錄機提出請求,服務(wù)器對交易記錄機的請求作出回應(yīng)。通過對服務(wù)功能的分布實現(xiàn)了分工服務(wù)。數(shù)據(jù)存儲層放在服務(wù)

18、器上,業(yè)務(wù)處理層和界面表示層放在交易記錄機上,因此又被稱為“靈敏的交易記錄機”結(jié)構(gòu)。許多操作可以在本地的交易記錄機上執(zhí)行,只是當(dāng)需要數(shù)據(jù)時,才向服務(wù)器發(fā)出請求。并使應(yīng)用程序的處理更接近用戶,使整個系統(tǒng)具有較好的性能,可以并行地處理應(yīng)用程序的請求、減少了數(shù)據(jù)傳輸量、降低了服務(wù)器的負(fù)荷。由于條件所限,將此系統(tǒng)所有程序都置于一臺計算機上,以便調(diào)試運行。2.2.2 確定系統(tǒng)開發(fā)環(huán)境1. 數(shù)據(jù)庫的選擇:microsoft sql server與access,orcale,sybase都是當(dāng)前比較流行的數(shù)據(jù)庫管理系統(tǒng)(bdms)。隨著sql server的不斷完善與發(fā)展,以及與網(wǎng)絡(luò)操作系統(tǒng)的完美結(jié)合,為系

19、統(tǒng)擴展為多機操作提供可能,sql server 2000是一個可縮放、高性能的數(shù)據(jù)庫管理系統(tǒng),有完善的數(shù)據(jù)庫維護計劃。而且在這個項目中,由于數(shù)據(jù)量的考慮,本論文決定使用sql server 2000作為后臺的數(shù)據(jù)庫。2. 開發(fā)工具的選擇:由于microsoft visual studio .net 2005的c#語言是微軟公司目前主推的編程語言,因此本項目決定選用c#語言來進行代碼的編寫,這樣既可以鍛煉我的學(xué)習(xí)能力又可以是我了解目前先進的編程語言。由于大多數(shù)公司內(nèi)部使用的計算機平臺都是基于windows環(huán)境的。為了降低系統(tǒng)成本,應(yīng)最大程度地利用現(xiàn)有的資源、兼容現(xiàn)有的環(huán)境,可確定使用下面的開發(fā)環(huán)

20、境:(1) 網(wǎng)絡(luò)操作系統(tǒng):windows xp;(2) 數(shù)據(jù)庫服務(wù)器:sql server 2000;(3) 服務(wù)器平臺:windows xp; (4) 交易記錄機平臺:windows xp;(5) 前臺開發(fā)工具:microsoft visual studio .net 2005的c#語言;(6) 數(shù)據(jù)訪問對象:ado.net(7) 網(wǎng)絡(luò)開發(fā)語言:c#第三章 開發(fā)工具簡介本系統(tǒng)中的前臺程序使用的是microsoft visual studio .net 2005的c# 語言;網(wǎng)絡(luò)部分使用的是c#技術(shù);后臺數(shù)據(jù)庫系統(tǒng)使用的是sql server 2000。3.1 microsoft visual

21、 studio .net 2005 的c# 語言自比爾蓋茨宣布微軟公司將成為一家以.net平臺為重點發(fā)展的公司后,微軟己經(jīng)將.net發(fā)展成了新一代的平臺標(biāo)準(zhǔn)。當(dāng)前,microsoft .net平臺己經(jīng)成為業(yè)界公認(rèn)的開發(fā)平臺。本系統(tǒng)的網(wǎng)絡(luò)查詢部分基于microsoft .net平臺中的c#采用c#語言開發(fā),交易記錄端的應(yīng)用程序也是采用了c#語言進行開發(fā),以保持整個項目的代碼的開發(fā)語言的一致性1。.net開發(fā)平臺的主要組成部分:首先是整個開發(fā)框架的基礎(chǔ),即clr(common language runtime)以及它所提供的一組基礎(chǔ)類庫;在開發(fā)技術(shù)方面,.net提供了全新的數(shù)據(jù)庫訪問技術(shù)ado.n

22、et,以及網(wǎng)絡(luò)應(yīng)用開發(fā)技術(shù)asp net和windows編程技術(shù)win forms;在開發(fā)語言方面,.net提供了visual basic, visual c+,c#和javascript等多種語言支持,并具有如下新特性:(1)通用語言運行庫除了通用語言運行庫的字面含義外,在開發(fā)階段和運行過程中它還扮演著另一個角色。在組件運行時,運行庫負(fù)責(zé)管理內(nèi)存分配、啟動和中止線程和進程、強化安全系數(shù),同時還調(diào)整任何該組件涉及到的其他組件的附件配置。在開發(fā)階段,運行庫的角色稍微有點變化:因為很多方面可以自動實現(xiàn)(例如內(nèi)存管理等)。運行庫可以使開發(fā)過程變得非常簡單,特別是同今天的com編程相比更是如此。特別典

23、型的是,像reflection(反射)這樣的特性可以極大地縮小開發(fā)人員將商業(yè)邏輯轉(zhuǎn)化成一個可重復(fù)使用的組件而不得不編寫的代碼數(shù)量。運行庫對于編程語言來說并不是新鮮的東西。實際上每一種編程語言都已包含一個運行庫。visual basic開發(fā)系統(tǒng)有最明顯的運行庫(正規(guī)名字為vbrun), visual c+也有一個msvcrt,此外,像visual foxpro,jscript,smalltalk,perl,python和java等等都如此。.net框架中的通用語言運行庫的核心就是提供了一個跨所有編程語言的統(tǒng)一環(huán)境。(2)統(tǒng)一編程類.net框架類為開發(fā)人員提供了一套可以使用的統(tǒng)一的面向?qū)ο蟆惒健?/p>

24、層次結(jié)構(gòu)的可擴展類庫?,F(xiàn)在,c+的使用者使用microsoft foundation classes,java程序員使用windows foundation classes,visual basic的用戶使用visual basic apis a微軟用.net框架統(tǒng)一了這些不同的框架。結(jié)果是,開發(fā)人員不用去學(xué)多個框架來完成自己的工作。而且,通過創(chuàng)建一套跨編程語言的通用api, .net框架可以實現(xiàn)跨語言繼承、糾錯處理以及程序調(diào)試。實際上,從jscript到c+的所有編程語言,對于.net框架都是相互等同的,開發(fā)人員可以自由地選擇他們想使用的任何語言。(3)asp. netasp. net是使用

25、.net框架提供的類庫構(gòu)建而成的,它提供了一個web應(yīng)用程序模型,該模型由一組控件和一個基本結(jié)構(gòu)組成。有了它,web應(yīng)用程序的構(gòu)建變得非常容易。開發(fā)人員可以直接使用asp. net控件集,該控件集封裝了公共的、用于超文本標(biāo)識語言(html)用戶界面的各種小組件(諸如文本框、下拉選單等等)。實際上,這些控件運行在web服務(wù)器上,它們將用戶界面轉(zhuǎn)換成html格式后再發(fā)送給瀏覽器。在服務(wù)器上,控件負(fù)責(zé)將面向?qū)ο蟮木幊棠P统尸F(xiàn)給web開發(fā)人員,這種編程模型能提供面向?qū)ο蟮木幊碳夹g(shù)擁有的豐富功能。asp. net還提供一些基本結(jié)構(gòu)服務(wù)(諸如會話狀態(tài)管理和進程循環(huán)),這些服務(wù)進一步減少了開發(fā)人員要編寫的代

26、碼量,并使應(yīng)用程序的可靠性得到了大幅度提高。asp. net還允許開發(fā)人員將軟件作為一項服務(wù)進行傳送。通過使用asp. net web服務(wù)功能,asp. net開發(fā)人員只需進行簡單的業(yè)務(wù)邏輯編程,而由asp. net基本結(jié)構(gòu)負(fù)責(zé)通過soap傳送服務(wù)。. net開發(fā)平臺結(jié)構(gòu)如圖3.1所示,. net框架的類庫創(chuàng)建于clr的上層,其范圍覆蓋了大量不同應(yīng)用程序和組件開發(fā)方案。通過提供共同的基礎(chǔ)和可以讓所有組件及應(yīng)用程序共享的api (application programming interface,應(yīng)用編程接口),類庫真正實現(xiàn)了基于組件的編程?;A(chǔ)類庫(base class library, bl

27、c)包括許多常用的命名空間,如system, system.collections等。ado. net為數(shù)據(jù)訪問功能層,作為system. data命名空間和其子命名空間的一部分嵌入到.net框架中。ado. net提供了對斷開或離線緩沖的關(guān)系數(shù)據(jù)進行操作的能力。特別是提供了對microsoft sql server的高性能連接。在ado. net之上為應(yīng)用開發(fā)技術(shù),. net框架支持圖形化的win32交易記錄端和服務(wù)器端的應(yīng)用程序開發(fā),還支持system. web命名空間和其子命名空間中實現(xiàn)的asp. net和web forms的開發(fā)。圖3.1 net開發(fā)平臺結(jié)構(gòu)如圖microsoft.ne

28、t計劃將徹底改變我們對因特網(wǎng)的認(rèn)識,從而在這樣一個網(wǎng)絡(luò)時代徹底改變我們的生活。軟件是一種服務(wù)技術(shù),是我們的仆人。時間與地點將不再是我們面前的障礙,建立在clr與類庫基礎(chǔ)上的.net框架是.net平臺的核心組件之一。這為軟件的可移植性與可擴展能力奠定了堅實的基礎(chǔ),并為c#語言的應(yīng)用創(chuàng)造了良好的環(huán)境2。c#是.net平臺的通用開發(fā)工具,它能夠建造所有的.net應(yīng)用。其固有的特性保證了它是一種高效安全靈活的現(xiàn)代程序設(shè)計語言。從最普通的應(yīng)用到大規(guī)模的商業(yè)開發(fā)c#與.net 平臺的結(jié)合將為你提供完整的解決方案3。3.1.1 c#.net簡介visual c# .net是visual studio系列中的

29、最新成員。這種新語言基于c/c+,但它深化了更容易地使用面向組件編程的發(fā)展方向。c/c+程序員應(yīng)該非常熟悉它的語法。c#在帶來對應(yīng)用程序的快速開發(fā)能力的同時并沒有犧牲c與c+程序員所關(guān)心的各種特性。它忠實地繼承了c和c+的優(yōu)點如果你對c或c+有所了解,你會發(fā)現(xiàn)它是那樣的熟悉即使你是一位新手c#也不會給你帶來任何其它的麻煩,快速應(yīng)用程序開發(fā)rad(rapid application development)的思想與簡潔的語法將會使你迅速成為一名熟練的開發(fā)人員。正如前文所述c#是專門為.net應(yīng)用而開發(fā)出的語言這從根本上保證了c#與.net框架的完美結(jié)合。在.net運行庫的支持下.net 框架的各

30、種優(yōu)點在c#中表現(xiàn)得淋漓盡致。看看c#的一些突出的特點即#sharp的真正含義:(1) 簡潔的語法(2) 精心地面向?qū)ο笤O(shè)計(3) 與web的緊密結(jié)合(4) 完整的安全性與錯誤處理(5) 版本處理技術(shù)(6) 靈活性與兼容性3.1.2 ado.net簡介為了實現(xiàn)對數(shù)據(jù)的訪問,可以利用.net框架的activex數(shù)據(jù)對象(ado.net)來實現(xiàn)。ado .net由microsoft activex data objects (ado)改進而來,它提供平臺互用和可收縮的數(shù)據(jù)訪問功能。由于xml(extensible markup language,可擴展標(biāo)示語言)是用于進行數(shù)據(jù)傳送的格式,任何可以讀

31、取xml格式的應(yīng)用程序都可以對數(shù)據(jù)進行處理。實際上,接收組件根本不需要ado.net組件。它可以是基于microsoft visual studio的解決方案或在任何平臺上運行的任何應(yīng)用程序4。ado.net是一組提供數(shù)據(jù)訪問服務(wù)的類,它提供了對數(shù)據(jù)庫數(shù)據(jù)、xml中的數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的訪問;而且所有的訪問都是按照一個相容的,標(biāo)準(zhǔn)化的設(shè)計模型來執(zhí)行。ado是microsoft現(xiàn)有的、廣泛應(yīng)用的數(shù)據(jù)訪問接口。但是,它卻有一些自身難以改變的不適應(yīng)于web環(huán)境的缺陷:(1) web環(huán)境要求一定程度的互操作性,因為操作所涉及的各個服務(wù)可能運行在不同的軟件和硬件平臺上。然而,ado對象天生地定位在win

32、dows平臺上。ado基于com的本性使得一記錄集很難在一個分布式、異種平臺構(gòu)成的環(huán)境中使用。(2) ado對象模型中的每一個地方都體現(xiàn)了以數(shù)據(jù)庫為中心的思想。ado把數(shù)據(jù)看成是一組來自數(shù)據(jù)源的記錄,而不是把數(shù)據(jù)看成一些獨立的信息。在ado中,如果脫離了數(shù)據(jù)提供者用來保存和描述數(shù)據(jù)的結(jié)構(gòu),數(shù)據(jù)將不能獨立存在。(3) ado.net從web的角度對ado進行檢討和改進。兩個功能使得這方面的增強成為可能:脫機記錄集,以及與生俱來的對xml的支持。這主要是通過其中的dataset(數(shù)據(jù)集)對象來實現(xiàn)以上兩個功能。ado.net結(jié)構(gòu)的一個核心元素是.net數(shù)據(jù)提供程序,其目的是為了實現(xiàn)數(shù)據(jù)操作和對數(shù)據(jù)

33、的快速、只進、只讀訪問,為此包含了幾個對象:connection對象提供與各種不同類型數(shù)據(jù)源的連接;command對象能夠訪問用于返回數(shù)據(jù)、修改數(shù)據(jù)、運行存儲過程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令,其包含的可選parameters集合中可以定義數(shù)據(jù)庫命令或存儲過程的參數(shù);datareader從數(shù)據(jù)源中提供高性能的數(shù)據(jù)流,以便對數(shù)據(jù)進行快速、只進、只讀訪問;最后,dataadapter提供連接dataset:對象和數(shù)據(jù)源的橋梁。dataadapter使用selectcommand對象在數(shù)據(jù)源中執(zhí)行sql命令,以便將數(shù)據(jù)加載到dataset中,并可以使用insertcommand,updateco

34、mmand或deletecommand對象將dataset中數(shù)據(jù)的更改返回到數(shù)據(jù)源中。可以為任何數(shù)據(jù)源編寫.net數(shù)據(jù)提供程序,在.net框架中附帶了兩個.net數(shù)據(jù)提供程序:sql server .net數(shù)據(jù)提供程序和ole db .net數(shù)據(jù)提供程序。ado.net有效地從數(shù)據(jù)操作中將數(shù)據(jù)訪問分解為多個可以單獨使用或一前一后使用的不連續(xù)組件。ado. net包含用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果的.net數(shù)據(jù)提供程序,它是一組包括connection, command, datareader和dataadapter對象在內(nèi)的組件:同時既可以直接處理檢索到的結(jié)果,也可以將其放入ado.ne

35、t中的另一核心組件:dataset中。dataset是ado.net的斷開式結(jié)構(gòu)的核心組件。相對于ado,dataset是在ado.net中加入的全新對象,使用該對象的目的是為了實現(xiàn)獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問。因此,它可以用于多種不同的數(shù)據(jù)源,dataset包含一個或多個的集合,這些datatable對象中可以包含主鍵、外鍵、約束等信息,datatable對象之間還可以包含關(guān)系信息等。所以,可以將dataset組件看做是一個脫機的、保存在內(nèi)存中的、由多個數(shù)據(jù)源提供其數(shù)據(jù)的微型關(guān)系數(shù)據(jù)庫5。 ado.net中各個組件對象之間的關(guān)系如圖3.2所示:圖3.2 ado.net中各個組件對象之間的關(guān)系圖

36、3.2 c# 簡介基于web的應(yīng)用系統(tǒng),在internet/intranet技術(shù)推廣以來,得到了迅速發(fā)展。無論是銀行、政府的內(nèi)部計算機應(yīng)用系統(tǒng),還是在互聯(lián)網(wǎng)上的應(yīng)用服務(wù)系統(tǒng),基于web的計算機應(yīng)用系統(tǒng)都發(fā)揮著越來越多的作用。逐漸成為計算機應(yīng)用系統(tǒng)的主流。c#是微軟公司的.net框架技術(shù)的一部分,旨在建立web應(yīng)用程序和xml web服務(wù)。c#使用編譯的、事件驅(qū)動編程模型從而提高運行速度和分離應(yīng)用程序邏輯和用戶界面。使用c#可以很容易的開發(fā)基于三層架構(gòu)的b/s應(yīng)用程序6。c#又叫asp+,但并不是asp的簡單升級,而是microsoft推出的新一代active server pages腳本語言。

37、asp net是microsoft發(fā)展的新型體系結(jié)構(gòu).net框架中的核心要素。c#完全基于模塊和組件,具有更好的可擴展性和可定制性,c#建立在clr ( common language runtime,通用語言運行庫)基礎(chǔ)之上,它主要用于在服務(wù)器上開發(fā)功能強大的web應(yīng)用。c#具有如下的優(yōu)點:(1) 速度奇快,所有的c#代碼(包括服務(wù)器腳本)都經(jīng)過了編譯后運行,所以執(zhí)行效率極高。(2) 可用xcopy輕松完成部署及應(yīng)用升級。c#支持應(yīng)用程序的實時更新。管理員不必關(guān)掉網(wǎng)絡(luò)服務(wù)器或者甚至不用停止應(yīng)用程序的運行就可以更新應(yīng)用程序。(3) 代碼與內(nèi)容分離。c#程序通過code-behind、用戶控件、

38、自定義控件及組件這四種方法將程序結(jié)構(gòu)與執(zhí)行代碼分離,使程序的邏輯結(jié)構(gòu)一目了然,便于團隊開發(fā)。(4) 廣泛的移動設(shè)備支持。c#的移動控件使開發(fā)人員可以面向廣泛的移動設(shè)備,包括支持web的移動電話、尋呼機和個人數(shù)字助理(pda)。(5) 輕松構(gòu)建和使用web服務(wù)。由于c#和.net遠(yuǎn)程處理建立在.net framework之上,因此它們可以使創(chuàng)建xml web services變得更為容易7。3.3 sql server 2000sql server 2000是建立在 sql server 7.0 在可伸縮性、可用性、可管理性和數(shù)據(jù)倉庫成功的基礎(chǔ)上,并且引入了針對電子商務(wù)的重要新功能8。第四章 系

39、統(tǒng)的功能設(shè)計4.1 功能概述本系統(tǒng)要實現(xiàn)用戶對自助銀行的所有操作:賬戶管理、出入賬管理、系統(tǒng)維護管理等功能。(一) 自助銀行賬戶管理模塊:本模塊又包括賬戶資料添加模塊、賬戶資料管理模塊等子模塊。(二)出入賬管理模塊:本模塊又包括出入賬資料添加、出入賬資料管理模塊等子模塊。 (三) 系統(tǒng)維護管理:本模塊又包括公司用戶設(shè)置模塊、重新登錄模塊、數(shù)據(jù)管理模塊等子模塊。根據(jù)上功能模塊圖,可設(shè)計出相對應(yīng)的系統(tǒng)數(shù)據(jù)流程圖。如下:自助模擬銀行管理系統(tǒng)登陸系統(tǒng)系統(tǒng)信息管理數(shù)據(jù)備份atm賬戶管理出入賬管理用戶信息管理數(shù)據(jù)還原自助模擬銀行管理系統(tǒng)數(shù)據(jù)輸出退出系統(tǒng)4.2 后臺數(shù)據(jù)庫設(shè)計4.2.1 存儲過程介紹1. 考

40、慮使用存儲過程的理由相對于使用一般的sqlcommand 對象的 t-sql語句,使用存儲過程可以使sqlcommand 對象的 t-sql語句并入數(shù)據(jù)訪問代碼更好的位置。由于應(yīng)用程序隨著時間的推移增添了一些功能,因此其內(nèi)部可能包含一些復(fù)雜的 t-sql 過程代碼。存儲過程為封裝此代碼提供了一個替換位置。大多數(shù)人可能對存儲過程已有所了解,但對于那些不了解存儲過程的人員而言,存儲過程是指一組作為單個代碼單元一起存儲于數(shù)據(jù)庫中的 t-sql 語句。您可以使用輸入?yún)?shù)傳入運行時信息,并取回作為結(jié)果集或輸出參數(shù)的數(shù)據(jù)。存儲過程在首次運行時將被編譯。這將產(chǎn)生一個執(zhí)行計劃 - 實際上是 microsoft

41、 sql server 為在存儲過程中獲取由 t-sql 指定的結(jié)果而必須采取的步驟的記錄。然后,執(zhí)行計劃在內(nèi)存中得到緩存,以備以后使用。這樣會改善存儲過程的性能,因為 sql server 無需為確定如何處理代碼而重新分析它,而只需引用緩存的計劃即可。這個緩存的計劃一直可用,直到sql server 重新啟動,或直到它由于使用率較低而溢出內(nèi)存9。2. 性能緩存的執(zhí)行計劃曾使存儲過程較之查詢更有性能優(yōu)勢。但對于 sql server 的幾個最新版本,執(zhí)行計劃已針對所有 t-sql 批處理進行了緩存,而不管它們是否在存儲過程中。因此,基于此功能的性能已不再是存儲過程的賣點。任何使用靜態(tài)語法,且提

42、交頻率足以阻止執(zhí)行計劃溢出內(nèi)存的 t-sql 批處理將會獲得同樣的性能好處。“靜態(tài)”部分是關(guān)鍵;任何更改,即使像添加注釋這樣無關(guān)緊要的更改,也將導(dǎo)致無法與緩存的計劃相匹配,從而將無法重復(fù)使用計劃。但是,當(dāng)存儲過程可以用于降低網(wǎng)絡(luò)流量時,它們?nèi)匀荒軌蛱峁┬阅芎锰?。您只需在網(wǎng)絡(luò)中發(fā)送 execute stored_proc_name 語句,而非整個 t-sql 例程,這可以在復(fù)雜操作中廣泛使用。設(shè)計良好的存儲過程可以將交易記錄端與服務(wù)器之間的許多往返過程簡化為單個調(diào)用。此外,使用存儲過程使您能夠增強對執(zhí)行計劃的重復(fù)使用,由此可以通過使用遠(yuǎn)程過程調(diào)用 (rpc) 處理服務(wù)器上的存儲過程而提高性能。使

43、用 storedprocedure 的sqlcommand.commandtype 時,存儲過程通過 rpc 執(zhí)行。rpc 封裝參數(shù)和調(diào)用服務(wù)器端過程的方式使引擎能夠輕松地找到匹配的執(zhí)行計劃,并只需插入更新的參數(shù)值??紤]使用存儲過程提高性能時,最后要考慮是否要充分利用 t-sql 的優(yōu)點。請考慮要如何處理數(shù)據(jù)。 (1) 是否要使用基于集合的操作,或執(zhí)行 t-sql 中完全支持的其他操作?那么存儲過程就是一個選擇,而內(nèi)聯(lián)查詢也可以使用。(2) 是否嘗試執(zhí)行基于行的操作,或復(fù)雜的字符串處理?那么可能要重新考慮在t-sql 中進行這種處理,這不包括使用存儲過程,至少要到 yukon 發(fā)布并且公共語言

44、運行庫 (clr) 集成可用后,才能使用存儲過程。3. 可維護性和抽象要考慮的另一個潛在優(yōu)勢是可維護性。理想情況下,數(shù)據(jù)庫架構(gòu)從不更改,業(yè)務(wù)規(guī)則不被修改,但在現(xiàn)實環(huán)境中,情況則完全不同。既然情況如此,那么如果可以修改存儲過程以包括新 x、y 和 z 表(為支持新的銷售活動而添加了這些表)中的數(shù)據(jù),而不是在應(yīng)用程序代碼中的某個位置更改此信息,則維護對您來說可能比較容易。在存儲過程中更改此信息使得更新對應(yīng)用程序而言具有透明性。您仍然返回相同的銷售信息,即使存儲過程的內(nèi)部實現(xiàn)已經(jīng)更改。更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力。 另外,通過抽象化實現(xiàn)并將此代碼保存在存儲過程中

45、,任何需要訪問數(shù)據(jù)的應(yīng)用程序均可以獲取一致的數(shù)據(jù)。您無需在多個位置維護相同的代碼,用戶便可獲取一致的信息。在存儲過程中存儲 t-sql 的另一個可維護性優(yōu)點是更好的版本控制。您可以對創(chuàng)建和修改存儲過程的腳本進行版本控制,就像可以對任何其他源代碼模塊進行版本控制一樣。通過使用 microsoft visual sourcesafe 或某個其他源代碼控制工具,您可以輕松地恢復(fù)到或引用舊版本的存儲過程。 在使用存儲過程提高可維護性時應(yīng)值得注意的一點是,它們無法阻止您對架構(gòu)和規(guī)則進行所有可能的更改。如果更改范圍大到需要對輸入存儲過程的參數(shù)進行更改,或者要更改由其返回的數(shù)據(jù),則您仍需要更新程序集中的代碼

46、以添加參數(shù)、更新getvalue()調(diào)用,等等。要注意的另一個問題是,由于存儲過程將應(yīng)用程序綁定到sql server,因此使用存儲過程封裝業(yè)務(wù)邏輯將限制應(yīng)用程序的可移植性。如果應(yīng)用程序的可移植性在您的環(huán)境中非常重要,則將業(yè)務(wù)邏輯封裝在不特定于rdbms的中間層中可能是一個更佳的選擇。 4. 安全性考慮使用存儲過程的最終原因是它們可用于增強安全性。 就管理用戶對信息的訪問而言,通過向用戶授予對存儲過程(而不是基礎(chǔ)表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問。存儲過程可以看成是sql server視圖,除非存儲過程接受用戶的輸入以動態(tài)更改顯示的數(shù)據(jù)。存儲過程還可以解決代碼安全問題。它們可以防止某

47、些類型的sql插入攻擊。主要是一些使用運算符(如and或or)將命令附加到有效輸入?yún)?shù)值的攻擊。在應(yīng)用程序受到攻擊時,存儲過程還可以隱藏業(yè)務(wù)規(guī)則的實現(xiàn)。這對于將此類信息視為知識產(chǎn)權(quán)的公司非常重要。另外,使用存儲過程使您可以使用ado.net中提供的sqlparameter類指定存儲過程參數(shù)的數(shù)據(jù)類型。這為驗證用戶提供的值類型(作為深層次防御性策略的一部分)提供了一個簡單方法。在縮小可接受用戶輸入的范圍方面,參數(shù)在內(nèi)聯(lián)查詢中與在存儲過程中一樣有用。使用存儲過程僅僅能夠增強數(shù)據(jù)庫安全性,而不能完全使數(shù)據(jù)庫免受攻擊。如果數(shù)據(jù)庫的安全性或編碼做法不完善仍然會受到攻擊。對sql server角色創(chuàng)建和分

48、配如果不加注意將導(dǎo)致人們訪問到不應(yīng)看到的數(shù)據(jù)。同時,如果認(rèn)為使用存儲過程便可防止所有sql插入代碼攻擊(例如,將數(shù)據(jù)操作語言 (dml) 附加到輸入?yún)?shù)),后果將是一樣的。另外,無論t-sql位于代碼還是位于存儲過程中,使用參數(shù)進行數(shù)據(jù)類型驗證都不是萬無一失的。所有用戶提供的數(shù)據(jù)(尤其是文本數(shù)據(jù))在傳遞到數(shù)據(jù)庫之前都應(yīng)受到附加的驗證。5. 使用存儲過程的優(yōu)缺點使用存儲過程封裝應(yīng)用邏輯的優(yōu)點如下:(1) dba+developer分工明確,之間代碼模塊化。減少數(shù)據(jù)庫操作員和程序員的錯誤。(2) 數(shù)據(jù)庫安全性;可以設(shè)置連接字符串中賬號只可訪問存儲過程,不可操作表。這樣數(shù)據(jù)完整性也有保證。(3) 存

49、儲過程是編譯過的,執(zhí)行快。(4) 事務(wù)的級別,存儲過程級別的事務(wù),ado.net級別的事務(wù)比較。一致性。(5) 減少網(wǎng)絡(luò)通信量。一個需要數(shù)行 transact-sql 代碼的操作由一條執(zhí)行過程代碼的單獨語句就可實現(xiàn),而不需要在網(wǎng)絡(luò)中發(fā)送數(shù)行代碼。使用存儲過程封裝應(yīng)用邏輯的缺點如下:(1) 編程語言sql功能較差(不包括 sql 2005)(2) 與編程環(huán)境集成不夠(不包括 sql 2005)(3) 移植性差(不同數(shù)據(jù)庫)(4) 數(shù)據(jù)庫服務(wù)器壓力大4.2.2 數(shù)據(jù)庫的表的設(shè)計根據(jù)項目要求進行數(shù)據(jù)庫中表格的建立。根據(jù)對用戶的需求分析,在項目中,需要記錄銀行的基本信息、交易記錄的基本信息、銀行的操作

50、信息。數(shù)據(jù)庫的設(shè)計范式是數(shù)據(jù)庫設(shè)計所需要滿足的規(guī)范,滿足這些規(guī)范的數(shù)據(jù)庫是簡潔的、結(jié)構(gòu)明晰的,同時,不會發(fā)生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數(shù)據(jù)庫的編程人員制造麻煩,而且面目可憎,可能存儲了大量不需要的冗余信息。范式的介紹:第一范式(1nf):數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本類型構(gòu)成,包括整型、實數(shù)、字符型、邏輯型、日期型等。第二范式(2nf):數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況),也即所有非關(guān)鍵字段都完全依賴于

51、任意一組候選關(guān)鍵字。第三范式(3nf):在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合第三范式。所謂傳遞函數(shù)依賴,指的是如果存在“a b c”的決定關(guān)系,則c傳遞函數(shù)依賴于a。因此,滿足第三范式的數(shù)據(jù)庫表應(yīng)該不存在如下依賴關(guān)系:關(guān)鍵字段 非關(guān)鍵字段x 非關(guān)鍵字段y鮑依斯-科得范式(bcnf):在第三范式的基礎(chǔ)上,數(shù)據(jù)庫表中如果不存在任何字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合第三范式??梢韵谌妒絼h除異常、插入異常和更新異常13。系統(tǒng)中還需要有用戶的登錄信息表用于記錄用戶的登錄信息。登錄信息表中應(yīng)該有登錄的用戶名和密碼,其中登錄名為主鍵。4.2.3

52、 設(shè)計局部er模式 1實體和屬性的定義:1)管理員用戶類別(用戶名,密碼,權(quán)限,注冊時間等)管理員用戶用戶名權(quán)限密碼注冊時間圖4-2管理員用戶實體與屬性的定義賬戶信息2)賬戶信息類別(姓名,身份證,性別,聯(lián)系電話,地址,注冊時間等)姓名地址性別注冊時間時間圖4-3賬戶信息實體與屬性的定義3)交易記錄信息類別(姓名,性別,身份證,電話,地址) 交易信息轉(zhuǎn)入賬戶類型轉(zhuǎn)出賬戶身份證圖4-4 交易記錄信息實體與屬性的定義2 實體關(guān)系定義:er模型的“聯(lián)系”用于刻畫實體之間的關(guān)聯(lián)。一種完整的方式是對局部結(jié)構(gòu)中任意兩個實體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個實體類型之間是否存在聯(lián)系。若有聯(lián)系,

53、進一步確定是1:1、1:n、m:n的關(guān)系。還要考察一個實體類型內(nèi)部是否存在聯(lián)系,兩個實體類型之間是否存在聯(lián)系,多個實體類型之間是否存在聯(lián)系,等等針對本系統(tǒng)分析如下:實體間的關(guān)系: 一個管理員可以管理多個自助銀行賬戶,而一個自助銀行賬戶只能被一個管理員管理。n1atm賬戶管理員圖4-6 自助銀行賬戶與管理員信息管理1:n(一對多的關(guān)系) 一個管理員可以管理多個出入賬信息,而一個出入賬信息只可以被一個管理員管理n1出入賬信息管理員圖4-7管理員與出入賬信息1:n(一對多的關(guān)系)設(shè)計全局er模式 所有局部er模式都設(shè)計好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要

54、支持所有局部er模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。1) 確定公共實體類型 為了給多個局部er模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認(rèn)定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。2) 局部er模式的合并 合并的原則是:首先進行兩兩合并;先合并那些現(xiàn)實世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實體類型開始,最后再加入獨立的局部結(jié)構(gòu)。3) 消除沖突 沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。 設(shè)計全局er模式的目的不在于把若干局部er模式形式上合并為

55、一個er模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。4) 全局er模式的優(yōu)化 在得到全局er模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應(yīng)進一步依據(jù)處理需求對er模式進行優(yōu)化。一個好的全局er模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。4.2.4數(shù)據(jù)字典數(shù)據(jù)字典是在新系統(tǒng)數(shù)據(jù)流程圖基礎(chǔ)上,進一步定義和描述所有數(shù)據(jù)項的工具,是關(guān)于數(shù)據(jù)的數(shù)據(jù)。它包括對一切動態(tài)數(shù)據(jù)和表態(tài)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和相互關(guān)系等的說明,是數(shù)據(jù)分析和數(shù)據(jù)管理的重要工具。數(shù)據(jù)字典實際上是新系統(tǒng)的所有數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論