![網(wǎng)上銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/ef65029a700eb5bd8769fbfec4f053f4/ef65029a700eb5bd8769fbfec4f053f41.gif)
![網(wǎng)上銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/ef65029a700eb5bd8769fbfec4f053f4/ef65029a700eb5bd8769fbfec4f053f42.gif)
![網(wǎng)上銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/ef65029a700eb5bd8769fbfec4f053f4/ef65029a700eb5bd8769fbfec4f053f43.gif)
![網(wǎng)上銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/ef65029a700eb5bd8769fbfec4f053f4/ef65029a700eb5bd8769fbfec4f053f44.gif)
![網(wǎng)上銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/ef65029a700eb5bd8769fbfec4f053f4/ef65029a700eb5bd8769fbfec4f053f45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本科生畢業(yè)設(shè)計(jì)(論文)如圖4.1所示。信息管理系統(tǒng)信息管理系統(tǒng)系統(tǒng)管理子模塊信息維護(hù)子模塊零售子模塊采購子模塊入庫子模塊統(tǒng)計(jì)查詢子模塊圖4.1系統(tǒng)總體模塊圖管理子模塊是面向系統(tǒng)管理的應(yīng)用模塊,它主要包括用戶管理,系統(tǒng)設(shè)置,權(quán)限管理,密碼修改,閱讀報(bào)表,其功能模塊如圖4.2所示。圖4.2系統(tǒng)管理子模塊圖信息維護(hù)子模塊包括以下的功能圖4.3所示。圖4.3信息維護(hù)子模塊圖零售子模塊主要包括以下的功能圖4.4所示。圖4.4零售子模塊圖系統(tǒng)入庫子模塊功能如圖4.5所示。圖4.5入庫子模塊圖系統(tǒng)統(tǒng)計(jì)查詢功能如圖4.6所示。圖4.6統(tǒng)計(jì)查詢子模塊圖模塊設(shè)計(jì)這一節(jié)將對(duì)功能模塊圖中的部分模塊的功能作概要的描述。系統(tǒng)管理模塊權(quán)限管理如圖4.7所示。圖4.7權(quán)限管理圖藥店信息管理系統(tǒng)主要實(shí)現(xiàn)的是系統(tǒng)的管理功能,分為用戶管理,權(quán)限管理,密碼管理,系統(tǒng)設(shè)置和藥品信息管理維護(hù)以及報(bào)表的產(chǎn)生.用戶管理能對(duì)本系統(tǒng)的所有用戶的信息進(jìn)行管理,添加用戶,修改用戶信息,注銷用戶等.權(quán)限管理中,管理員能夠設(shè)置訪問本系統(tǒng)的所有用戶的權(quán)限,設(shè)置用戶能夠進(jìn)行什么操作,不能夠進(jìn)行什么操作,例如:系統(tǒng)中管理員的權(quán)限為最高,所有操作均可以,而采購員的權(quán)限只可以進(jìn)行采購管理和對(duì)自己的信息,密碼進(jìn)行修改.密碼管理中,用戶只能對(duì)自己的密碼進(jìn)行設(shè)置與修改.系統(tǒng)設(shè)置只能系統(tǒng)管理員操作,進(jìn)行設(shè)置系統(tǒng)中庫存的上下限,藥品有效期提示的時(shí)間,違禁藥品的添加.管理模塊流程圖如圖4.8所示。圖4.8管理結(jié)構(gòu)流程圖用戶編輯這一模塊主要是面向系統(tǒng)管理員的應(yīng)用模塊,也是系統(tǒng)較為關(guān)鍵的模塊部分,它包括用戶管理:主要來實(shí)現(xiàn)對(duì)系統(tǒng)用戶的添加,刪除,修改等操作。用戶編輯如圖4.9所示。圖4.9用戶編輯圖確定按扭代碼:PrivateSubCommand1_Click()SelectCaseCombo2.TextCase"管理員"Text4.Text="0001"Case"醫(yī)生"Text4.Text="0006"Case"售藥員"Text4.Text="0003"Case"保管員"Text4.Text="0005"Case"采購員"Text4.Text="0004"Case"領(lǐng)導(dǎo)"Text4.Text="0002"EndSelectanswer=MsgBox("您確信要修改此記錄嗎?",vbYesNo,"提示")Ifanswer=vbYesThen'Adodc1.Recordset.AddNewAdodc1.Recordset.Fields("職工代碼")=Text1(0).TextAdodc1.Recordset.Fields("職工類別代碼")=Text4.TextAdodc1.Recordset.Fields("職工姓名")=Text1(2).TextAdodc1.Recordset.Fields("職工性別")=Combo1.TextAdodc1.Recordset.Fields("職工出生日期")=DTPicker1.ValueAdodc1.Recordset.Fields("職工家庭住址")=Text1(4).TextAdodc1.Recordset.Fields("職工聯(lián)系電話")=Text1(5).TextAdodc1.Recordset.Fields("密碼")=Text1(6).TextAdodc1.Recordset.UpdateAdodc1.RefreshMsgBox"修改記錄成功!",48,"提示"ElseText1(0).SetFocusSendKeys"{Home}+{End}"EndIfEndSub權(quán)限管理:主要來實(shí)現(xiàn)對(duì)系統(tǒng)用戶的權(quán)限的管理,修改,以保證系統(tǒng)正常安全的工作。密碼修改:主要實(shí)現(xiàn)用戶本身對(duì)自己密碼的修改操作。系統(tǒng)設(shè)置如圖4.10所示。圖4.10系統(tǒng)設(shè)置圖系統(tǒng)設(shè)置:主要實(shí)現(xiàn)對(duì)系統(tǒng)庫存藥品上下限,藥品有效期,國家禁賣藥品等功能的設(shè)置。使管理員能很方便,快捷的對(duì)系統(tǒng)進(jìn)行修改。閱讀報(bào)表:主要是面向藥店領(lǐng)導(dǎo)的模塊,方便藥店領(lǐng)導(dǎo)了解藥店的運(yùn)營(yíng)狀況。信息維護(hù):這一模塊主要是對(duì)系統(tǒng)基本信息的維護(hù)。它包括藥品信息維護(hù):主要維護(hù)的是藥品的基本信息,對(duì)系統(tǒng)藥品的添加,刪除,修改。藥品信息如圖4.11所示。圖4.11藥品信息圖藥品分類維護(hù):主要對(duì)藥品的分類進(jìn)行維護(hù),藥品分類按國家標(biāo)準(zhǔn)進(jìn)行,主要分為抗生素類,抗病毒類等12類藥品。生產(chǎn)廠家信息維護(hù):主要維護(hù)的是藥品的生產(chǎn)廠家的一些基本信息。數(shù)據(jù)字典維護(hù):此功能主要是對(duì)系統(tǒng)本身的數(shù)據(jù)字典進(jìn)行維護(hù),分為系統(tǒng)用戶,藥品單位,生產(chǎn)廠家,藥品分類,藥品批號(hào)五種。藥品分類如圖4.12所示。圖4.12藥品分類圖零售模塊此模塊也是系統(tǒng)較為關(guān)鍵的模塊,面向藥店的銷售人員,它主要分為藥品銷售和醫(yī)生審核處方兩個(gè)部分。藥品銷售還可以分為非處方藥銷售,處方藥銷售和顧客退藥三部分。非處方藥銷售:售藥人員將藥品條形碼(藥品編碼模擬)掃入計(jì)算機(jī)即可實(shí)現(xiàn)出售。處方藥銷售:首先需要藥店醫(yī)生審核該處方藥是否可以出售,如可以出售,輸入處方單號(hào)即可銷售。顧客退藥:如果該藥品可以退,需輸入購買該藥品的小票號(hào)碼和藥品編碼即可。采購模塊此模塊面向的是藥店采購人員,首先在采購之前,系統(tǒng)根據(jù)系統(tǒng)庫存上下限自動(dòng)生成采購單,然后采購員根據(jù)此采購單進(jìn)行采購。藥品采購如圖4.13所示。圖4.13藥品采購圖入庫模塊此模塊面向的是藥店的保管員,它分為藥品入庫和庫存盤點(diǎn)兩部分。藥品入庫:首先保管員根據(jù)采購員發(fā)過來的采購單自動(dòng)生成入庫單,經(jīng)過核查后進(jìn)行入庫操作,登記到數(shù)據(jù)庫。庫存盤點(diǎn):為了確保庫存藥品的安全,保管員要每月進(jìn)行一次盤點(diǎn)操作,主要對(duì)藥店庫存藥品進(jìn)行盤查核對(duì),如果有出入,要報(bào)請(qǐng)領(lǐng)導(dǎo)處理。統(tǒng)藥品入庫如圖4.14所示。圖4.14統(tǒng)藥品入庫圖統(tǒng)計(jì)查詢模塊此模塊主要由信息統(tǒng)計(jì)和信息查詢兩部分構(gòu)成。信息統(tǒng)計(jì):完成了藥品信息的統(tǒng)計(jì)和藥品銷售信息的統(tǒng)計(jì),以及各個(gè)時(shí)間段藥品銷售情況分析。信息查詢:完成了藥品信息,銷售信息,采購信息,入庫信息的查詢??梢愿鶕?jù)藥品的各種屬性進(jìn)行各種查詢。信息統(tǒng)計(jì)如圖4.15所示。圖4.14信息統(tǒng)計(jì)圖確定按扭代碼:PrivateSubCommand1_Click()SelectCaseCombo1.TextCase"單一藥品"IfText7.Text=""ThenMsgBox"請(qǐng)輸入藥品編碼!",48,"提示"Text7.SetFocusSendKeys"{Home}+{End}"ElseCalldanyitongjiEndIfText7.Text=""Case"類藥品"IfText7.Text=""ThenMsgBox"請(qǐng)輸入藥品類別!",48,"提示"Text7.SetFocusSendKeys"{Home}+{End}"ElseCallleitongjiEndIfText7.Text=""Case"全部藥品"CallquanbutongjiText7.Text=""EndSelectEndSub2,查詢模塊在此模塊中,用戶可以查詢藥店內(nèi)的所有藥品的信息,藥店近期的銷售,采購,入庫信息.進(jìn)入模塊后,用戶可以選擇查詢意向,選擇什么就在對(duì)應(yīng)的位置添入查詢信息,每一類查詢都設(shè)置了很多的方式.也就是說查詢關(guān)鍵字是什么,例如,藥品信息查詢可以按照藥品編碼,藥品名稱,藥品單位等13種方式查詢.還設(shè)有一個(gè)顯示信息的功能,也就是說能夠控制您的查詢結(jié)果需要顯示的信息,相關(guān)的信息顯示出來,不相關(guān)的信息就沒有必要顯示出來,在此功能中,只要用戶選擇了什么,查詢結(jié)果就能夠顯示出什么.在模塊的菜單中還可以進(jìn)行分類查詢(針對(duì)藥品信息)和顯示全部信息功能。信息查詢?nèi)鐖D4.15所示。圖4.16信息查詢圖銷售查詢確定按扭代碼:PrivateSubCommand1_Click()DimaAsIntegerDimbAsStringDimiAsIntegerDimjAsIntegerAdodc2.Visible=TrueDataGrid2.Visible=TrueDataGrid5.Visible=TrueAdodc1.Visible=FalseAdodc3.Visible=FalseAdodc4.Visible=FalseDataGrid1.Visible=FalseDataGrid3.Visible=FalseDataGrid4.Visible=FalseDataGrid6.Visible=FalseDataGrid7.Visible=FalseSelectCaseCombo3.TextCase"售藥員代碼"IfText2.Text=""ThenMsgBox"請(qǐng)輸入您要查詢的關(guān)鍵字!",48,"提示"ElseAdodc5.Recordset.Filter=("售藥員代碼like'"&Text2.Text&"*'")IfAdodc5.Recordset.BOF=TrueOrAdodc2.Recordset.EOF=TrueThenMsgBox"沒有您想要查找的售藥員!",48,"提示"Text2.SetFocusSendKeys"{Home}+{End}"EndIfa=Adodc5.Recordset.RecordCountFori=1ToaAdodc5.Recordset.AbsolutePosition=ib=Adodc5.Recordset.Fields("小票號(hào)碼")Adodc2.Recordset.Filter=("小票號(hào)碼='"&b&"'")NextEndIfCase"藥品編碼"IfText2.Text=""ThenMsgBox"請(qǐng)輸入您要查詢的關(guān)鍵字!",48,"提示"ElseAdodc2.Recordset.Filter=("藥品編碼like'"&Text2.Text&"*'")IfAdodc2.Recordset.BOF=TrueOrAdodc2.Recordset.EOF=TrueThenMsgBox"沒有您想要查找的藥品!",48,"提示"Text2.SetFocusSendKeys"{Home}+{End}"EndIfa=Adodc2.Recordset.RecordCountFori=1ToaAdodc2.Recordset.AbsolutePosition=ib=Adodc2.Recordset.Fields("小票號(hào)碼")Adodc5.Recordset.Filter=("小票號(hào)碼='"&b&"'")NextEndIfCase"藥品售出日期"Adodc5.Recordset.Filter=("藥品售出日期='"&DTPicker1(1).Value&"'")IfAdodc5.Recordset.BOF=TrueOrAdodc5.Recordset.EOF=TrueThenMsgBox"沒有您想要查找的信息!",48,"提示"DTPicker1(1).SetFocusDTPicker1(1).Value=DateSendKeys"{Home}+{End}"EndIfa=Adodc5.Recordset.RecordCountFori=1ToaAdodc5.Recordset.AbsolutePosition=ib=Adodc5.Recordset.Fields("小票號(hào)碼")Adodc2.Recordset.Filter=("小票號(hào)碼='"&b&"'")NextCase"小票號(hào)碼"IfText2.Text=""ThenMsgBox"請(qǐng)輸入您要查詢的關(guān)鍵字!",48,"提示"ElseAdodc2.Recordset.Filter=("小票號(hào)碼like'"&Text2.Text&"*'")IfAdodc2.Recordset.BOF=TrueOrAdodc2.Recordset.EOF=TrueThenMsgBox"沒有您想要查找的信息!",48,"提示"Text2.SetFocusSendKeys"{Home}+{End}"EndIfa=Adodc2.Recordset.RecordCountFori=1ToaAdodc2.Recordset.AbsolutePosition=ib=Adodc2.Recordset.Fields("小票號(hào)碼")Adodc5.Recordset.Filter=("小票號(hào)碼='"&b&"'")NextEndIfCase"藥品優(yōu)惠額度"IfText2.Text=""ThenMsgBox"請(qǐng)輸入您要查詢的關(guān)鍵字!",48,"提示"ElseAdodc2.Recordset.Filter=("藥品優(yōu)惠額度like'"&Text2.Text&"*'")IfAdodc2.Recordset.BOF=TrueOrAdodc2.Recordset.EOF=TrueThenMsgBox"沒有您想要查找的信息!",48,"提示"Text2.SetFocusSendKeys"{Home}+{End}"EndIfa=Adodc2.Recordset.RecordCountFori=1ToaAdodc2.Recordset.AbsolutePosition=ib=Adodc2.Recordset.Fields("小票號(hào)碼")Adodc5.Recordset.Filter=("小票號(hào)碼='"&b&"'")NextEndIfEndSelectEndSub查詢模塊流程圖如下所示。圖4.17查詢結(jié)構(gòu)流程圖測(cè)試與調(diào)試什么是軟件測(cè)試為了保證軟件的質(zhì)量和可靠性,應(yīng)力求在分析、設(shè)計(jì)等各個(gè)開發(fā)階段結(jié)束前,對(duì)軟件進(jìn)行技術(shù)評(píng)審。但由于人們能力的局限性,審查不能發(fā)現(xiàn)所有的錯(cuò)誤。這些錯(cuò)誤和缺陷如果遺留到軟件交付投入運(yùn)行時(shí),終將匯暴露出來。但到那時(shí),不僅改正這些錯(cuò)誤的代價(jià)更高,而且往往造成惡劣的后果。軟件測(cè)試就是在軟件那投入運(yùn)行之前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。如果需要給軟件測(cè)試下個(gè)定義,可以這樣講:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程?;蛘哒f,軟件測(cè)試是根據(jù)軟件開發(fā)階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批用例(即輸入數(shù)據(jù)及其與其的結(jié)果)并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過程。因?yàn)椴豢赡苓M(jìn)行窮盡測(cè)試,所以測(cè)試不可能發(fā)現(xiàn)程序中的所有錯(cuò)誤,也就是說,通過測(cè)試并不能說明程序是正確的。但是,我們的目的是要通過測(cè)試保證軟件的可靠性,因此,必須仔細(xì)設(shè)計(jì)測(cè)試方案,力爭(zhēng)用盡可能少的方式發(fā)現(xiàn)盡可能多的錯(cuò)誤。本軟件在測(cè)試過程中發(fā)現(xiàn)很多錯(cuò)誤,雖然已經(jīng)修改,但是仍然不敢說是完美的。希望用戶在使用中發(fā)現(xiàn)錯(cuò)后及時(shí)與本人聯(lián)系以便改正。測(cè)試方法選擇1.模塊測(cè)試因?yàn)槊總€(gè)模塊完成一個(gè)單獨(dú)的功能,與同級(jí)的其它模塊之間沒有相互依賴的關(guān)系,所以,有可能把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來測(cè)試,而且通常比較容易設(shè)計(jì)檢驗(yàn)?zāi)K正確性的測(cè)試方案。模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所以模塊測(cè)試通常又稱為單元測(cè)試。2.子系統(tǒng)測(cè)試子系統(tǒng)測(cè)試是把經(jīng)過單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題,因此這個(gè)步驟著重測(cè)試模塊的接口。3.系統(tǒng)測(cè)試系統(tǒng)測(cè)試是把經(jīng)過測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測(cè)試。在這個(gè)過程中不僅應(yīng)該發(fā)現(xiàn)社的錯(cuò)誤,還應(yīng)該驗(yàn)證系統(tǒng)確實(shí)能提供需求說明書中指定的功能,而且系統(tǒng)的動(dòng)態(tài)特性也符合預(yù)定要求。在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明書中的錯(cuò)誤。不論是子系統(tǒng)測(cè)試還是系統(tǒng)測(cè)試,都兼有檢測(cè)和組裝倆重含義,通常稱為集成測(cè)試。4.驗(yàn)收測(cè)試驗(yàn)收測(cè)試把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)基本類似,但是它是在用戶積極參與下進(jìn)行的,而且可能主要使用實(shí)際數(shù)據(jù)(系統(tǒng)將來要處理的信息)進(jìn)行測(cè)試,驗(yàn)收測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足用戶的需要,在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)說明書中的錯(cuò)誤。5.平行運(yùn)行時(shí)間的考驗(yàn)。所謂平行運(yùn)行就是同時(shí)運(yùn)行新開發(fā)出來的系統(tǒng)和將被它取代的舊系統(tǒng),以便比較新舊兩個(gè)系統(tǒng)的處理結(jié)果。這樣做的目的有如下幾點(diǎn):1)以在準(zhǔn)生產(chǎn)環(huán)境中運(yùn)行新系統(tǒng)而又不冒風(fēng)險(xiǎn);2)用戶能有一段熟悉新系統(tǒng)的時(shí)間;3)可以驗(yàn)證用戶指南和使用手冊(cè)之類的文檔;4)能夠以準(zhǔn)生產(chǎn)關(guān)系重大的軟件產(chǎn)品在驗(yàn)收之后往往并不立即投入生產(chǎn)性運(yùn)行,而是要再經(jīng)過一段平行運(yùn)行模式對(duì)新系統(tǒng)進(jìn)行全負(fù)荷測(cè)試,可以用測(cè)試結(jié)果驗(yàn)證性能指標(biāo)。軟件測(cè)試的目標(biāo)下面的測(cè)試規(guī)則也可以看作是測(cè)試的目標(biāo)和定義:測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;好的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤測(cè)試;從上述規(guī)則中可以看出,測(cè)試的目的是為了發(fā)現(xiàn)“程序中的錯(cuò)誤而執(zhí)行程序的過程?!闭_認(rèn)識(shí)測(cè)試的目標(biāo)是十分重要的,測(cè)試目標(biāo)決定了測(cè)試方案的設(shè)計(jì)。如果為了表明程序是正確的而進(jìn)行測(cè)試,就會(huì)設(shè)計(jì)一些不易暴露錯(cuò)誤的測(cè)試方案;相反,如果測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤,就會(huì)力求設(shè)計(jì)出最能暴露錯(cuò)誤的測(cè)試方案。測(cè)試的目標(biāo)是暴露程序中的錯(cuò)誤,但是測(cè)試只能查找出程序之中的錯(cuò)誤而不能證明程序之中沒有錯(cuò)誤。設(shè)計(jì)測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問題。所謂測(cè)試方案包括預(yù)定要測(cè)試的功能,應(yīng)該輸入的測(cè)試數(shù)據(jù)和預(yù)期的結(jié)果。其中最困難的問題是設(shè)計(jì)測(cè)試用的輸入數(shù)據(jù)(即,測(cè)試用例)。不同的測(cè)試數(shù)據(jù)發(fā)現(xiàn)程序錯(cuò)誤的能力差別很大,為了提高測(cè)試效率低測(cè)試成本,應(yīng)該選用高效的測(cè)試數(shù)據(jù),因?yàn)椴豢赡苓M(jìn)行窮盡的測(cè)試,選用少量“最有效的”測(cè)試數(shù)據(jù),做到盡可能完備的測(cè)試就更重要了設(shè)計(jì)測(cè)試方案的基本目標(biāo)是,確實(shí)一組最可能發(fā)現(xiàn)某個(gè)錯(cuò)誤或某類錯(cuò)誤的測(cè)試數(shù)據(jù)。已經(jīng)研究出許多設(shè)計(jì)測(cè)試數(shù)據(jù)的技術(shù),這些數(shù)據(jù)各有優(yōu)缺點(diǎn),沒有哪一種最好的,更沒有哪一種可以替代其余所有技術(shù);同一種技術(shù)在不同繁榮應(yīng)用場(chǎng)合效果可能相差很大,因此,通常需要聯(lián)合使用多種設(shè)計(jì)測(cè)試數(shù)據(jù)的技術(shù)。在開發(fā)軟件系統(tǒng)的漫長(zhǎng)過程中,面對(duì)著極其錯(cuò)綜復(fù)雜的問題,人的主觀認(rèn)識(shí)不可能完全的復(fù)合客觀事實(shí)。因此在軟件生命周期的每個(gè)階段都不可避免的會(huì)產(chǎn)生差錯(cuò)。測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程,它的目標(biāo)是暴露程序中的錯(cuò)誤。經(jīng)過幾個(gè)月的畢業(yè)設(shè)計(jì),題目要求的內(nèi)容、功能已經(jīng)基本實(shí)現(xiàn)。為了保證軟件質(zhì)量,及時(shí)修正并發(fā)現(xiàn)軟件中的錯(cuò)誤。在題目完成后,我一直都在對(duì)軟件進(jìn)行調(diào)試、修改,使其功能能夠完善、穩(wěn)定性提高。由于本系統(tǒng)中,每個(gè)模塊都實(shí)現(xiàn)的是一個(gè)清晰定義的子功能,為了保證每個(gè)模塊作為一個(gè)單元能獨(dú)立的正確運(yùn)行,我把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來測(cè)試?,F(xiàn)在我闡述一下對(duì)本軟件的詳細(xì)測(cè)試過程。功能的調(diào)試1.本系統(tǒng)本身就是個(gè)數(shù)據(jù)庫類的軟件,所以幾乎所有操作都是對(duì)數(shù)據(jù)庫的操作,自然就有很多對(duì)數(shù)據(jù)庫進(jìn)行查詢,刪除和修改操作。在對(duì)數(shù)據(jù)庫進(jìn)行以上的操作時(shí),首先得確定邊界情況,即先判斷數(shù)據(jù)庫是否為空。那么在數(shù)據(jù)庫為空的情況下:對(duì)之進(jìn)行查詢操作,會(huì)出現(xiàn)“實(shí)時(shí)錯(cuò)誤‘3021’:BOF或EOF中有一個(gè)是“真”,或者當(dāng)前記錄已被刪除,所需的操作要求一個(gè)當(dāng)前的記錄?!痹趯?duì)數(shù)據(jù)庫進(jìn)行查詢或刪除操作時(shí),在執(zhí)行代碼前先加上下面的判定代碼:IfAdodc1.Recordset.BOF=TrueOrAdodc1.Recordset.EOF=TrueThen提示出錯(cuò)信息或數(shù)據(jù)庫中沒有此記錄Else對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的操作,查詢,刪除或修改EndIf2.在對(duì)數(shù)據(jù)庫進(jìn)行添加操作時(shí),往往會(huì)因?yàn)椴荒芡鶖?shù)據(jù)庫里添加空值而出現(xiàn)“實(shí)時(shí)錯(cuò)誤‘3265’:項(xiàng)目在所需的名稱或序數(shù)中未被發(fā)現(xiàn)?!薄睙o法將NULL值插入到列‘‘表‘‘中,該列不允許空值,INSERT失敗”現(xiàn)舉例要將text1的值插入到數(shù)據(jù)庫”姓名”列中,那么在插入前先判斷,編寫代碼如下:IfText1.Text1=""Then提示信息,姓名不能為空,請(qǐng)重新填寫!Text1.SetFocusSendKeys"{Home}+{End}"ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("姓名")=Text1.TextAdodc1.Recordset.UpdateAdodc1.RefreshEndIf操作的調(diào)試為了使軟件應(yīng)用起來方便快捷,操作快速,本系統(tǒng)絕大部分操作都是直接的鍵盤操作,少數(shù)用到了鼠標(biāo)操作.在調(diào)試的過程中就遇到了很多的類似的問題,如:按下回車鍵后,焦點(diǎn)應(yīng)落到控件3上,而按照程序中控件的TabIndex屬性,焦點(diǎn)落到了控件2上等等.解決的辦法,編碼如下:在類似的操作之前,在該控件的鍵盤事件下編碼如下:PrivateSubCommand1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)Command2.SetFocusEndSub上述例子就是指在Command1獲得焦點(diǎn)后,按下回車鍵,焦點(diǎn)會(huì)自動(dòng)跳到Command2上,使Command2獲得當(dāng)前焦點(diǎn),進(jìn)行操作.系統(tǒng)調(diào)試調(diào)試前,清空數(shù)據(jù)庫中的所有數(shù)據(jù);然后,輸入少量的數(shù)據(jù)進(jìn)行調(diào)試。調(diào)試首先從數(shù)據(jù)維護(hù)模塊開始,在輸入初始數(shù)據(jù)時(shí),發(fā)現(xiàn)許多關(guān)于方便用戶操作的問題,比如,當(dāng)前日期的輸入,可以直接獲取系統(tǒng)的日期,不用用戶手工輸入;小票號(hào)碼和各種單據(jù)號(hào)碼都應(yīng)由系統(tǒng)自動(dòng)生成.有些信息,比如藥品信息已經(jīng)在數(shù)據(jù)庫中存在,只要用戶輸入其中的一項(xiàng),那么其他項(xiàng)就應(yīng)該自動(dòng)從數(shù)據(jù)庫中提出來,節(jié)省用戶的時(shí)間,方便用戶查看;在調(diào)試查詢模塊時(shí),發(fā)現(xiàn)對(duì)字符串的比較存在大小寫之分,兩個(gè)數(shù)據(jù)比較存在類型是否一致問題,所以要先將要比較的兩個(gè)數(shù)據(jù)轉(zhuǎn)化成相同的格式,然后再進(jìn)行比較;如果查詢的結(jié)果為空,那么應(yīng)該給出提示信息(如:”沒有您所要查找的信息!請(qǐng)重新輸入!”等),這樣才能正真做到人機(jī)界面友好。由于時(shí)間和本人能力的有限,調(diào)試過后也難免會(huì)有錯(cuò)誤,設(shè)計(jì)所達(dá)到的總體水平還有很多不盡人意之處,希望學(xué)校老師領(lǐng)導(dǎo)能提出寶貴意見,通力完善!結(jié)論轉(zhuǎn)眼之間,三個(gè)月的畢業(yè)設(shè)計(jì)已接近尾聲,我現(xiàn)在感覺自己長(zhǎng)大了很多,也學(xué)到了很多,當(dāng)然也自信了很多。之前,對(duì)于編程,我對(duì)自己不自信,雖然平時(shí)學(xué)習(xí)挺好,但對(duì)于編程方面卻沒有很大的興趣。在畢業(yè)設(shè)計(jì)之前,也從來沒有系統(tǒng)的去學(xué)過什么,可是經(jīng)過三個(gè)月的畢設(shè),我驚奇的發(fā)現(xiàn)原來自己在這一方面也可以做得很好,雖然在有些方面仍有欠缺,但我已經(jīng)不再害怕,我相信自己可以做得很好,這一點(diǎn)是在這次畢設(shè)中得到最多的東西,我想應(yīng)該也是在大學(xué)期間里學(xué)得最多的東西。在這次畢設(shè)期間,除了上面提到的,以下幾點(diǎn)也是深有體會(huì)的:1.從問題的分析到查閱資料,然后對(duì)系統(tǒng)的分析,設(shè)計(jì)以及對(duì)軟件開發(fā)環(huán)境的熟悉,以至到編碼、測(cè)試,調(diào)試,到最終的完成,我清楚了軟件設(shè)計(jì)的整個(gè)過程,對(duì)于這些不再陌生,培養(yǎng)了自己嚴(yán)謹(jǐn)?shù)倪壿嬎季S。2.因?yàn)楫呍O(shè)題目是藥店方面的,所以在這一過程中,不僅僅是學(xué)到了專業(yè)知識(shí),而且了解到了很多關(guān)于藥店方面和醫(yī)療技術(shù)方面的知識(shí)。3.在這一過程中,增強(qiáng)了自己的動(dòng)手能力,對(duì)于電腦的操作比以前又熟練了很多。4.在調(diào)試的過程中曾遇到很多問題,經(jīng)過這一階段,自己的分析問題,解決問題的能力也有了很大的提高。總之,經(jīng)過這三個(gè)月的學(xué)習(xí),我又自信了很多,相信這一階段的努力會(huì)為我以后的發(fā)展做一個(gè)良好的鋪墊,為將來走上工作崗位打下了良好的基礎(chǔ),我將繼續(xù)堅(jiān)持不懈的努力。參考文獻(xiàn)[1]劉衛(wèi)宏著.SQLServer2000實(shí)用教程.北京市.北京希望電子出版社,2003.[2]敬錚,于英杰編著.VisualBasic6.0數(shù)據(jù)庫開發(fā)與專業(yè)應(yīng)用.北京市.國防工業(yè)出版社,2002.[3]薩師煊,王珊著.數(shù)據(jù)庫系統(tǒng)概論(第三版).北京市.高等教育出版社,2002.[4]張海藩著.軟件工程導(dǎo)論(修訂版).北京市.清華大學(xué)出版社,1992.[5]劉瑞新,崔淼著.VisualBasic程序設(shè)計(jì).北京市.機(jī)械工業(yè)出版社,2003.[6]周靄如,官士鴻,林偉健著.VisualBasic程序設(shè)計(jì).北京市.電子工業(yè)出版社,2003.[7]段興主編.VisualBasic6.0數(shù)據(jù)庫實(shí)用程序設(shè)計(jì)100例.北京市.人民郵電出版社,2002.[8]李曉黎,張巍著.VisualBasic+SQLServer數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)與實(shí)例.北京市.人民郵電出版社,2003.[9]長(zhǎng)城工作室數(shù)據(jù)組著.SQLServer2000高級(jí)應(yīng)用.北京市.人民郵電出版社,2002.[10](美)MikeGunderloy著,張光霞等譯.VisualBasic開發(fā)指南(ADO).北京市.電子工業(yè)出版社,2001.[11]王棟.VisualBasic課程設(shè)計(jì).北京市.清華大學(xué)出版社,2001[12]衛(wèi)振林、趙增敏.VisualBasic程序設(shè)計(jì).北京市.機(jī)械工業(yè)出版社2001[13]BrianSiler,JeffSpots.MicrosoftVisualBasic6.0開發(fā)者使用手冊(cè).北京市.機(jī)械工業(yè)出版社,2001[14]MichaelHalvorson.MicrosoftVisualBasic6.0專業(yè)版循序漸進(jìn)教程.北京市.北京希望電子出版社,2001[15]趙松濤.中文版SQLServer2000應(yīng)用及實(shí)例集錦.北京市.人民郵電出版社,2002致謝本系統(tǒng)在設(shè)計(jì)中本著最大限度地減少操作人員的冗余思考、選擇和動(dòng)作,使操作人員盡可能的擺脫傳統(tǒng)工作的物理細(xì)節(jié),直觀而且容易掌握整個(gè)系統(tǒng)的工作過程的宗旨,經(jīng)多次修改完善并和老師同學(xué)多次討論商量,最終按期完成了。設(shè)計(jì)期間,承蒙我系多位教師和同學(xué)的幫助和指點(diǎn),特別感謝指導(dǎo)教師趙凱老師多次在百忙之中抽出時(shí)間親臨指點(diǎn),為設(shè)計(jì)提供了極大的幫助,才達(dá)到今天的設(shè)計(jì)成果。其次,感謝系里的領(lǐng)導(dǎo)和各位老師,在畢設(shè)過程中給我們提供了一個(gè)良好的環(huán)境,讓我們安心進(jìn)行畢業(yè)設(shè)計(jì)。在這里尤其感謝實(shí)驗(yàn)室的各位老師,每天不辭辛勞的為我們服務(wù),衷心的感謝。當(dāng)然也感謝在此期間給過我?guī)椭耐瑢W(xué)和朋友。他們?yōu)槲姨峁┝嗽S多學(xué)習(xí)資料,讓我在學(xué)習(xí)數(shù)據(jù)庫編程的時(shí)候,不明白的地方可以查詢。對(duì)于我的畢設(shè),他們也給我提出了很多可行性的建議。同時(shí)也感謝CSDN(程序員大本營(yíng))上的一些朋友,在我程序調(diào)試的過程中,給我解決了很多疑難問題,也讓我學(xué)到了很多畢設(shè)以外的關(guān)于VB、SQL以及數(shù)據(jù)庫設(shè)計(jì)和網(wǎng)絡(luò)等方面的知識(shí)。在此,我由衷的感謝他們!謝謝!附錄英文文獻(xiàn)LeverageMicrosoftSQLServer2000SkillstoLearnDB2UDBVersion81.IntroductionIntheworldofinformationtechnologytoday,weareconstantlybombardedwithnewinformation--newsoftwareproducts,newversions,newfeatures.Leveragingyourcurrentknowledgeisonewaytokeepupwiththisconstantchange.I'llshowyouhowyoucanuseyourcurrentknowledgeofMicrosoft?SQLServer2000toquicklygainskillsinDB2UDBforLinux,UNIX,andWindowsVersion8.Inthisarticle,Iusetheterm"SQLServer"torefertoMicrosoftSQLServer2000and"DB2UDB"torefertoDB2UDBforLinux,UNIX,andWindowsVersion8.ThefocusofthearticlewillbemainlyontheWindowsplatform.ThefirstimportantdifferencetonotebetweenSQLServerandDB2UDBisthatSQLServerisonlysupportedontheWindowsplatforms(Intelarchitecture).DB2UDB,ontheotherhand,issupportedonLinux,UNIXandWindowsplatformsandinavarietyofhardwarearchitectures.Thecodeforalloftheseplatformsisessentiallythesamewithveryminorplatform-specificmodules.Inaddition,theDB2UDBproductextendstotheiSeries?(AS/400?andz/OS?(mainframe)world.TheiSeriesandz/OSDB2UDBmembersdonothavethesamecodebaseasDB2UDBforLinux,UNIXandWindowsbecausethoseproductsleveragetheirrespectivehardwarearchitectures.However,functionalityacrosstheDB2familyisverysimilar.AfteryouarecomfortablewithDB2UDBforLinux,UNIXandWindows,youcanventureoutandlearnmoreaboutDB2ontheseotherplatforms.Seetheresourcessectionformorearticlesonhowyoucancontinuebuildingyourskills.2.OverviewofthesystemstructuresFigure1belowshowsthebasicSQLServerstructure.CompareitwithFigure2,whichshowsthestructureofDB2UDB.I'llbereferringtothesefiguresthroughoutthearticle.Figure1.MicrosoftSQLServer2000structureFigure2.DB2UDBsystemstructureonLinux,UNIX,andWindowsVersion83.InstancesandserversTheconceptofaninstanceissimilarinSQLServerasinDB2UDB,althoughtheterm"instance"isnotusedofteninSQLServerterminology.Normally,userssimplyrefertoitasa"server".Forbothproducts,aninstanceprovidesanindependentenvironmentinwhichdatabaseobjectsarecreated,andapplicationsarerunonthoseobjects.Instancesfollowashared-nothingarchitecture,andthusobjectsfromoneinstancedonotnormallyinteractwithobjectsfromanotherinstance.Figures1and2showthePRODandDEVinstancesasconceptuallytwoseparateboxes.Thoughtheconceptofaninstanceisthesameonbothproducts,itsimplementationisquitedifferent.InSQLServeryoucanhavethe"default"instance(onlyone)andnamedinstances.AdefaultinstanceistheinstancecreatedonfirstinstallationofSQLServerandcanbeidentifiedbythecomputername.Anamedinstance,ontheotherhand,isaninstancecreatedafterthedefaultinstancehasbeencreatedandhastobeidentifiedintheformatcomputer_name\\instance_name.TocreateseveralSQLServernamedinstancesonthesamemachine,youmustusetheinstallationCDforeachnewinstance,andyouusetheinstallGUIforeachnewinstallation.Notethatinthisprocess,youwillbecopyingtheSQLServercodeforeachinstanceyoucreate,thoughindifferentpaths.Onlysomefilesaresharedbetweeninstances.TodropaninstanceyoumustuninstalltheinstanceusingtheinstallGUI.InDB2UDB,afterinstallingtheproductintheWindowsplatform,theinstance"DB2"iscreatedbydefault.InLinuxandUNIX,thedefaultinstancenameiscalled"db2inst1".Tocreateanotherinstanceinthesamemachine,yousimplyexecutethecommanddb2icrt<instancename>.ForDB2UDBinstancesonthesamemachine,thereisonlyonecopyoftheDB2UDBcode.Figure3showsthedefaultDB2UDBinstance"DB2"andtwootherinstancescreatedwiththedb2icrtcommandfromtheDB2UDBControlCenterGUI.Figure3.DB2UDBControlCenterGUIshowingDB2UDBinstancesToreferenceagivenDB2UDBinstancefromacommandlineinterface,usetheenvironmentvariableDB2INSTANCE.Thisvariableletsyouspecifythecurrentactiveinstancetowhichallcommandswouldapply.Forexample,ifDB2INSTANCEissettoPROD,andthenyouissuethecommandcreatedatabaseMYDB1,youwillcreateadatabaseassociatedwithinstancePROD.IfyouwantedtocreatethisdatabaseoninstanceDB2instead,thenyouwouldfirsthavetochangethevalueoftheDB2INSTANCEvariabletoDB2.AnothereasywaytoidentifytheinstanceyouwanttoworkwithisbyusingtheDB2UDBControlCenterGUIasshowninfigure3.Toseeanentryforthenewinstanceinthistool,youmayhavetoaddtheinstancetotheGUIbyrightclickingonInstancesandchoosingAdd.AfteryoucreateaDB2UDBinstanceonWindows,acorrespondingserviceiscreatedwiththesamenameastheinstancename.YoucandropaDB2instancebyexecutingthecommanddb2idrop<instancename>.ThiscommandwillnotremovetheDB2UDBcode.InthecaseofWindows,itdoesremovethecorrespondingWindowsservicesfortheinstance.Insummary,instancesforSQLServerandDB2UDBareconceptuallythesame;itisintheimplementationwherethedifferencearises.SQLServerrequiresadifferentcopyoftheSQLServercodepernewinstance,whileDB2UDBdoesn't.InSQLServer,theEnterpriseManagerGUIcanbeusedtomanageinstances,whileinDB2UDBtheControlCenterGUIcanbeusedforasimilarpurpose.4.DatabasesInSQLServer,aninstancecancontainseveraldatabases,asshowninFigure1.Eachdatabaseisanindependentunit;however,metadataaboutalluserdatabasesiskeptinthemasterdatabase,therefore,queriescanaccesstablesintwodifferentdatabases.Whenaninstanceiscreatedseveraldatabasesarecreatedbydefault,liketempdb,master,model,Northwind,etc.SQLServerusestwolevelstostoremetadata:theinstancelevel(usingsystemtablesinthemasterdatabase),andthedatabaselevel(usingsystemtablesintheuserdatabaseitself).Themasterandtempdbaredatabasesthataresharedbyotherdatabasesintheinstance.Otherobjectslikeviewsarealsocreatedbydefaultwhencreatingauserdatabase.InDB2UDB,aninstancecanalsocontainseveraldatabases,asshowninFigure2.Eachdatabaseisatrulyclosedandindependentunit.Eachdatabasehasitsowncatalogtablespace(storingmetadata),temporarytablespace,andusertablespace.ThereisnodatabasethatsharesmetadatainformationacrossdatabasesthewaythattheSQLServer'smasterdatabasedoes.Likewise,thereisnodatabasethatissharedamongotherdatabasestoholdtemporarydatathewaySQLServer'stempdbdoes.DB2UDBdoescontainabinaryfileknownasthesystemdatabasedirectorythatcontainsentriesofallthedatabasesyoucanconnectfromyourDB2machine.Thisdirectoryiskeptattheinstancelevel.Figure2illustratestheindependenceofeachdatabaseinDB2UDB.Inaddition,fromthisfigureyouwillseethateachdatabasehasitsowntransactionlogs,whichissimilarinSQLServer.Databaseswithinaninstancenormallydon'tinteractwitheachother;however,ifyourapplicationhassucharequirement,thiscanbesupportedbyenablingfederationsupport.5.Containers,tablespacesandfilegroupsInDB2UDB,containersarewherethedataisphysicallystored,andcanbeclassifiedintofiles,directoriesandrawdevices.InSQLServer,theconceptof'container'doesnotexist;however,filesareusedtostoredata.InDB2UDB,atablespaceisthelogicalobjectusedasalayerbetweenlogicaltablesandphysicalcontainers.Whenyoucreateatablespace,youcanassociateitwithaspecificbufferpool(databasecache)aswellastospecificcontainers.Thisgivesyouflexibilityinmanagingperformance.Forexample,ifyouhavea"hot"table,youcandefineitinitsowntablespaceassociatedtoitsownbufferpool.Thishelpsensurethedataofthistableisalwayscachedinmemory.Whenadatabaseiscreatedwithdefaultoptions,threetablespacesarecreatedasdescribedintable1Table1.DB2UDBtablespacescreatedbydefaultwhenadatabaseiscreated.TablespaceNameDescriptionSYSCATSPACECatalogtablespacecontainingmetadata.TEMPSPACE1Systemtemporarytablespaceusedtoperformoperationssuchasjoinsandsorts.Thenameofthistablespacecanbechanged.USERSPACE1Thistablespaceisoptionalandcanbeusedtostoreusertableswhenatablespaceisnotexplicitlyindicatedattablecreationtime.Becausedatabasesareindependentunits,tablespacesarenotsharedacrossdatabases.Becausetheyareonlyknownwithinadatabase,twodifferentdatabasescanhavetablespacesofthesamename.YoucanseethisinFigure2wheredatabaseMYDB1hasatablespacenamedMYTBLSanddatabaseMYDB2hasatablespaceofthesamename.SQLServerusesfilegroupsinasimilarfashionasDB2UDBtablespaces.Similarlytotablespaces,twodifferentdatabasescanhavefilegroupsofthesamename.ThisisshowninFigure1wheredatabaseMYDB1hasafilegroupnamedMyFileGroupanddatabaseMYDB2hasafilegroupofthesamename.DB2UDBtablespacescanbeclassifiedasSMS(system-managedspaces)orDMS(database-managedspaces).SMStablespacesaremanagedbytheoperatingsystemandcanonlybedirectories.Theygrowautomaticallyasneeded,thusitprovidesgoodperformancewithminimumadministration.ThisisequivalenttothebehaviorofSQLServerdatafiles(ifyouallowforautomaticgrowth).DMStablespacesaremanagedbyDB2UDB,andcanbefilesorrawdevices.Thistypeoftablespaceallowsforbestperformance,butsomeadministrationisrequired.Forexample,youneedtospecifyaheadoftimetheamountofspaceyouwanttoallocateforthetablespace,becausegrowthisnotautomatic.Table2belowshowshowSQLServerdatabasesmaptoDB2UDBdatabasesortablespaces.Table2.HowSQLServerdatabasesmaptoDB2UDBdatabasesandtablespacesSQLServerDatabaseDB2UDBdatabaseortablespaceMasterSYSCATSPACE(catalogtablespace);inDB2UDB,thisinformationiskeptonlyatthedatabaselevel.modelThereisnoequivalentdatabase/tablespace;however,DB2providesatoolcalled'db2look'whichcouldbeusedtocopythestructureofadatabaseintoascriptfile,andcouldbelaterexecutedtocreateanewdatabase.msdbToolscatalogdatabase,whichcanbecreatedatinstallation,orafterinstallationwiththecommandcreatetoolscatalogNorthwindSAMPLEdatabasepubsSAMPLEdatabasetempdbTEMPSPACE1tablespacedistributionDB2UDBprovidesbuilt-inreplicationsupportforalltheDB2UDBfamily.Replicationinvolvinganon-DB2relationalmanagementsystemrequirestheInformationIntegratorsoftware.6.SecuritySQLServerusestheconceptsofauthentication,rolesandprivilegestoimplementsecurity.Twomodesofauthenticationaresupported:Windowsauthentication.
TheWindowsOperatingsystemauthenticatestheloginidandpassword,andpassesonlytheloginidtoSQLServer,whichmatchesittothesysxloginssystemtable.Mixedmodeauthentication.
SQLServerauthenticatestheloginidandpasswordagainsttheinformationithasinthesysxloginssystemtable.Onceauthenticated,theusercannotperformanyoperationagainstSQLServer,unlessheorshehasbeenassignedaroleoragivenprivilege.Rolesareusedtogroupusersintoasingleunittowhichpermissionscanbeapplied.Thus,ratherthangrantingindividualpermissionstoseveralusers,youcancreatearoleconsistingofallofthesepermission,andthenyouwouldassigntheusersthisrole.InDB2UDB,usersdonotexistwithinthedatabase,butarerathermanagedbytheoperatingsystem.Thus,DB2UDBauthenticationissomewhatsimilartoSQLServer'sWindowsauthentication;however,nodatabaselogininformationiskeptinanydatabasetable.AnyoperatingsystemusercanpotentiallyuseDB2UDB;however,unlesstheyhavebeengrantedagivenDB2UDBauthorityorprivilege,thereisnotmuchtheycando.GrantingandrevokingauthoritiesandprivilegescaneasilybehandledthroughtheControlCenterGUI.YoufirstmayhavetoaddauserorgrouptotheControlAlsoinDB2UDBtheterm"roles"isnotused;instead,DB2UDBusestheterm"authorities",whicharesimilartoSQLServer'sfixedserveranddatabaseroles.DB2UDBdoesnotsupportMSSQLServer'suser-defineddatabaseroles;howeveranoperatingsystemgroupcanbeassignedauthoritiesandprivilegestoimplementthis.TheauthoritiessupportedwithDB2UDBare:SYSADM,SYSCTRL,SYSMAINT,DBADMandLOAD.TheSYSADM,SYSCTRLandSYSMAINTauthoritiescannotbegrantedusingtheGRANTSQLstatement.Thesespecialauthoritiescanonlybesetfromthedatabasemanagerconfigurationfile.ADB2UDBuserwithSYSADMauthoritywouldbeequivalenttoaSQLServeruserwithsysadminrole.DB2UDBalsousestheterm"privilege"whichisequivalenttoSQLServer'spermissions.Therearedatabaseprivileges(connect,createtab,andsoon)anddatabaseobjectprivileges(schema,table,view,andsoon).Table3.MappingSQLServersecurityconceptstoDB2UDBSQLServerDB2UDBTwomodesofauthentication:WindowsauthenticationandMixedmodeauthenticationOnemodeofauthenticationhandledbytheoperatingsystem;it'sclosesttoSQLServer'sWindowsauthentication.RolesAuthorities(Allpredefined;therearenouser-definedauthorities.)PermissionsPrivileges7.SummaryThisarticleintroducesyoutoDB2UDBV8forLinux,WindowsandUNIXbyleveragingyourcurrentknowledgeofMicrosoftSQLServer2000.GiventhatSQLServerissupportedonlyintheWindowsplatform,thefocusofthearticlehasbeenkepttothisplatform;however,allofwhatyouhavelearnedhereaboutDB2UDB(lessafewdetails)isalsoapplicabletotheLinuxandUNIXplatform.Again,becausetheWindowsplatformisbeingused,wehaveexplainedmostoftheconceptsusingtheGUItoolsforbothproducts.However,allofwhathasbeenexplainedhasanequivalentcommand.中文利用MicrosoftSQLServer2000技能來學(xué)習(xí)DB2UDBV81.引言在當(dāng)今的信息技術(shù)領(lǐng)域中,新信息在不斷地向我們沖擊-新的軟件產(chǎn)品、新的版本和新的功能。使您能跟上這些不斷發(fā)生的變化的方法之一就是利用您手中現(xiàn)有的知識(shí)。我將向您展示如何使用您目前的Microsoft?SQLServer2000的知識(shí)來迅速獲得有關(guān)DB2UDBV8forLinux、UNIXandWindows的技能。在本文中,術(shù)語“SQLServer”指的是MicrosoftSQLServer2000,“DB2UDB”指的是DB2UDBV8forLinux、UNIXandWindows。本文的重點(diǎn)主要集中在Windows平臺(tái)。第一個(gè)要注意的SQLServer和DB2UDB之間的重要區(qū)別是SQLServer僅在Windows平臺(tái)(Intel體系結(jié)構(gòu))上受支持。而另一方面,DB2UDB可以在Linux、UNIX和Windows平臺(tái)以及許多硬件體系結(jié)構(gòu)中得到支持。針對(duì)所有這些平臺(tái)的代碼基本上是相同的,只帶有極少數(shù)特定于平臺(tái)的模塊。此外,DB2UDB產(chǎn)品還可以擴(kuò)展到iSeries?(AS/400?和z/OS?(大型機(jī)))的領(lǐng)域。iSeries和z/OS的DB2UDB成員的代碼庫與DB2UDBforLinux、UNIXandWindows的不同,因?yàn)檫@些產(chǎn)品利用了各自的硬件體系結(jié)構(gòu)。但是,這些DB2系列的功能是非常相似的。在您熟悉了DB2UDBforLinux、UNIXandWindows以后,您可以大膽嘗試學(xué)習(xí)有關(guān)其它平臺(tái)上的DB2的更多知識(shí)。請(qǐng)參閱參考資料小節(jié)以獲取有關(guān)如何能繼續(xù)鞏固您的技能的更多文章。2.系統(tǒng)結(jié)構(gòu)概述下圖1展示了基本的SQLServer結(jié)構(gòu)。圖2展示了DB2UDB的結(jié)構(gòu),請(qǐng)把兩者做一下比較。我將在整篇文章中引用這兩幅圖。圖1.MicrosoftSQLServer2000結(jié)構(gòu)圖2.Linux、UNIX和Windows上的DB2UDBV8系統(tǒng)結(jié)構(gòu)
3.實(shí)例和服務(wù)器盡管在SQLServer術(shù)語中不經(jīng)常使用“實(shí)例”這個(gè)術(shù)語,但是實(shí)例的概念在SQLServer和DB2UDB中是相似的。用戶通常只把它稱為“服務(wù)器”。對(duì)于這兩個(gè)產(chǎn)品而言,實(shí)例提供一個(gè)獨(dú)立的環(huán)境,數(shù)據(jù)庫對(duì)象在其中創(chuàng)建,并且應(yīng)用程序在這些對(duì)象上運(yùn)行。由于實(shí)例遵循一種“不共享”的體系結(jié)構(gòu),因此一個(gè)實(shí)例的對(duì)象通常不與其它實(shí)例的對(duì)象進(jìn)行交互。圖1和圖2將PROD實(shí)例和DEV實(shí)例表示為兩個(gè)概念上彼此獨(dú)立的框。雖然實(shí)例的概念在這兩個(gè)產(chǎn)品中是相同的,但它的實(shí)現(xiàn)卻是截然不同的。在SQLServer中,您可以有一個(gè)“缺省”實(shí)例(僅有一個(gè))和一些命名實(shí)例。缺省實(shí)例在第一次安裝SQLServer時(shí)創(chuàng)建,并由計(jì)算機(jī)名來標(biāo)識(shí)。而命名實(shí)例在創(chuàng)建缺省實(shí)例之后創(chuàng)建,并必須通過computer_name\\instance_name的格式來進(jìn)行標(biāo)識(shí)。要在同一臺(tái)機(jī)器上創(chuàng)建幾個(gè)SQLServer命名實(shí)例,您必須對(duì)每個(gè)新的實(shí)例使用安裝CD,并且對(duì)每個(gè)新的安裝都要使用安裝GUI。請(qǐng)注意,在這個(gè)過程中,為每個(gè)您創(chuàng)建的實(shí)例復(fù)制SQLServer代碼,但使用的路徑不同。只有某些文件是實(shí)例之間共享的。要?jiǎng)h除一個(gè)實(shí)例,您必須使用安裝GUI來卸載該實(shí)例。在DB2UDB中,當(dāng)將產(chǎn)品安裝在Windows平臺(tái)后,將缺省地創(chuàng)建“DB2”實(shí)例。在Linux和UNIX中,缺省實(shí)例名為“db2instl”。要在同一臺(tái)機(jī)器上創(chuàng)建另一個(gè)實(shí)例,您只須執(zhí)行db2icrt<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國電子硅膠制品項(xiàng)目投資可行性研究分析報(bào)告
- 美妝社團(tuán)申請(qǐng)書
- 電工加薪申請(qǐng)書
- 2024年鐵路運(yùn)輸市場(chǎng)調(diào)查報(bào)告
- 現(xiàn)代職場(chǎng)人如何進(jìn)行自我職業(yè)定位
- 電子病歷技術(shù)在臨床決策支持中的應(yīng)用
- 中國機(jī)床附件制造行業(yè)市場(chǎng)深度分析及投資潛力預(yù)測(cè)報(bào)告
- 基于深度學(xué)習(xí)的自動(dòng)代碼摘要算法研究
- 基于RCM理論的Z市地鐵運(yùn)營(yíng)公司設(shè)備維修管理研究
- 指向高階思維培養(yǎng)的高中信息技術(shù)SCCS教學(xué)模式設(shè)計(jì)與實(shí)踐
- 《工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
- 即興口語(姜燕)-課件-即興口語第七章PPT-中國傳媒大學(xué)
- 蛋白質(zhì)分離技術(shù)全PPT課件
- 磷酸鐵鋰電池工商業(yè)儲(chǔ)能項(xiàng)目施工組織設(shè)計(jì)方案
- 艾默生HipulseUPS操作手冊(cè)
- 愛心樹(繪本)
- NPI管理流程(精)
- 色卡 對(duì)照表 PANTONE-CMYK
- 深圳水管理體制改革的思考和建議
- 蘇教版六年級(jí)上冊(cè)計(jì)算題練習(xí)大全(經(jīng)典)
- 內(nèi)容講義說明案例nxt pop trainning
評(píng)論
0/150
提交評(píng)論