ATM數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第1頁
ATM數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第2頁
ATM數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第3頁
ATM數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第4頁
ATM數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄第1章需求分析 11.1背景描述 11.2數(shù)據(jù)需求 11.3事物需求 1第2章概念設(shè)計(jì) 32.1E-R圖 32.1.1用戶信息實(shí)體E-R圖 32.1.2銀行卡信息實(shí)體E-R圖 32.1.3交易信息實(shí)體E-R圖 42.1.4總體信息實(shí)體E-R圖 42.2數(shù)據(jù)字典 52.3關(guān)系圖 6第3章邏輯設(shè)計(jì) 73.1E-R圖轉(zhuǎn)化為關(guān)系模式 7第4章物理設(shè)計(jì) 84.1數(shù)據(jù)庫數(shù)據(jù)文件的建立 84.2基本表的創(chuàng)建 84.2.1銀行卡信息表的建立 84.2.2交易信息表的建立 94.2.3用戶信息表的建立 94.3索引和視圖的建立 94.3.1建立索引 94.3.2建立視圖 9第5章完整性設(shè)計(jì) 105.1.在UserInfo表上添加約束 105.2在CardInfo表上添加約束 10在TransInfo表上添加約束 10第6章處理業(yè)務(wù)實(shí)現(xiàn) 11數(shù)據(jù)庫測(cè)試數(shù)據(jù)輸入 116.1.1UserInfo測(cè)試數(shù)據(jù)輸入 116.1.2CardInfo表測(cè)試數(shù)據(jù)輸入 116.2業(yè)務(wù)實(shí)現(xiàn) 126.2.1存取款業(yè)務(wù)實(shí)現(xiàn) 126.2.2銀行資金流通和盈利結(jié)算的統(tǒng)計(jì) 126.2.3查詢本周開戶的卡號(hào) 136.2.4查詢本月交易金額最高的卡號(hào) 136.3觸發(fā)器的實(shí)現(xiàn) 146.4轉(zhuǎn)賬存儲(chǔ)過程的實(shí)現(xiàn) 14第7章設(shè)計(jì)總結(jié) 17參考文獻(xiàn) 17第1章需求分析1.1背景描述ATM柜員機(jī)系統(tǒng)。ATM柜員機(jī)是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。ATM是英文AutomaticTellerMachine的縮寫。ATM是最普遍的自助銀行設(shè)備,可以提供最基本的銀行服務(wù)之一,即出鈔交易,有些全功能的產(chǎn)品還可以提供信封存款業(yè)務(wù)。在ATM自動(dòng)取款機(jī)上也可以進(jìn)行賬戶查詢、修改密碼和轉(zhuǎn)賬的業(yè)務(wù)。作為自助式金融服務(wù)終端,除了提供金融業(yè)務(wù)功能之外,ATM自動(dòng)取款機(jī)還具有維護(hù)、測(cè)試、事件報(bào)告、監(jiān)控和管理等多種功能。ATM自動(dòng)取款機(jī)系統(tǒng),是一個(gè)有終端機(jī),ATM系統(tǒng),數(shù)據(jù)庫組成的應(yīng)用系統(tǒng)。系統(tǒng)功能有用戶在ATM上提取現(xiàn)金、查詢賬戶余額、修改密碼及轉(zhuǎn)賬功能。ATM自動(dòng)取款機(jī)系統(tǒng)向用戶提供一個(gè)方便、簡(jiǎn)單、及時(shí)、隨時(shí)隨地可以隨心所欲存取款的互聯(lián)的現(xiàn)代計(jì)算機(jī)化的網(wǎng)絡(luò)系統(tǒng)??梢源蟠鬁p少工作人員,節(jié)約人力資源的開銷,同時(shí)由于手續(xù)程序減少也可以減輕業(yè)務(wù)員的工作負(fù)擔(dān),有效地提高了整體的工作效率和精確度。減少了用戶辦理業(yè)務(wù)的等待時(shí)間;用戶可以隨時(shí)隨地可以隨心所欲存取款,并且操作簡(jiǎn)單易懂;用戶還可以選擇在柜臺(tái)辦理業(yè)務(wù)或自己在自動(dòng)提款機(jī)和自動(dòng)取款機(jī)辦理業(yè)務(wù)。1.2數(shù)據(jù)需求ATM柜員機(jī)系統(tǒng)需要完成功能主要有:賬戶基本信息的輸入,包括顧客編號(hào),開戶名,身份證號(hào),聯(lián)系電話,居住地址。賬戶基本信息的查詢,修改,包括身份證號(hào),聯(lián)系電話,居住地址。銀行卡基本信息的輸入,包括銀行卡號(hào),銀行卡密碼,貨幣類型。銀行卡基本信息的查詢,修改,包括銀行卡密碼,貨幣類型。交易信息的輸入,包括交易卡卡號(hào),交易金額,交易日期,交易類型。對(duì)交易事務(wù)的處理,包括對(duì)銀行卡余額的判斷,并終止或繼續(xù)交易。賬戶存款取款業(yè)務(wù),包括取款,存款。統(tǒng)計(jì)銀行的資金流通和盈利結(jié)算。查詢一周內(nèi)開戶的卡號(hào),并能顯示卡的相關(guān)信息,包括卡號(hào),余額,余額。查詢本月交易金額最高的卡號(hào)。1.3事物需求(1)在銀行卡信息管理部分,要求:a.可以查詢銀行卡擁有者的相應(yīng)信息。b.可以對(duì)銀行卡擁有者信息進(jìn)行添加及刪除的操作。(2)在用戶信息管理部分,要求:a.可以查詢開戶信息。賬戶信息進(jìn)行維護(hù),包括添加及刪除的操作。(3)在賬戶交易信息管理部分,要求:。賬戶交易基本信息。賬戶信息進(jìn)行維護(hù)操作。(4)在用戶視圖信息管理部分,要求:a.可以瀏覽用戶視圖信息。b.可以維護(hù)用戶視圖相關(guān)信息。第2章概念設(shè)計(jì)2.1E-R圖用戶信息實(shí)體E-R圖用戶信息實(shí)體用戶信息實(shí)體顧客編號(hào)開戶名身份證號(hào)聯(lián)系電話居住地址圖2.1用戶信息實(shí)體E-R圖銀行卡信息實(shí)體E-R圖銀行卡信息實(shí)體銀行卡信息實(shí)體卡號(hào)貨幣種類存款類型開戶日期開戶金額金額密碼是否掛失顧客編號(hào)圖2.2銀行卡信息實(shí)體E-R圖交易信息實(shí)體E-R圖交易信息實(shí)體交易信息實(shí)體交易日期卡號(hào)交易類型交易金額備注圖2.3交易信息實(shí)體E-R圖總體信息實(shí)體E-R圖銀行卡銀行卡交易信息用戶使用交易m11n圖2.4總體信息實(shí)體E-R圖2.2數(shù)據(jù)字典表2.1用戶信息UserInfo表字段名稱數(shù)據(jù)類型長(zhǎng)度約束含義CustomerIDint主鍵顧客編號(hào)CustomerNamevarchar19必填開戶名PIDChar()18必填,唯一約束身份證號(hào)TelephoneVarchar()13必填聯(lián)系電話AddressVarchar()50可選輸入居住地址表2.2銀行卡信息CardInfo表字段名稱數(shù)據(jù)類型長(zhǎng)度約束含義CardIDChar()19主鍵卡號(hào)CurTypeChar()6必填貨幣種類SavingTypeChar()8必填存款類型OpenDateDatetime必填開戶日期OpenMoneymoney必填開戶金額Balancemoney必填余額PassChar()6必填密碼IsReportLossbit必填是否掛失CustomerIDint外鍵顧客編號(hào)表2.3交易信息transInfo表字段名稱數(shù)據(jù)類型長(zhǎng)度約束含義TransIDint必填主鍵交易編號(hào)TransDatedatetime必填交易日期CardIDchar20外鍵卡號(hào)TransTypechar10必填交易類型TransMoneymoney必填交易金額Remarktext50可選輸入備注2.3關(guān)系圖圖2.5關(guān)系圖第3章邏輯設(shè)計(jì)3.1E-R圖轉(zhuǎn)化為關(guān)系模式銀行卡信息(卡號(hào),貨幣類型,存款類型,開戶日期,開戶金額,余額,密碼,是否掛失,顧客號(hào))卡號(hào)為主碼,顧客號(hào)為外碼用戶信息(顧客號(hào),開戶名,身份證號(hào),聯(lián)系電話,地址)顧客號(hào)為主碼交易信息(交易編號(hào),交易日期,卡號(hào),交易類型,交易金額,備注)交易編號(hào)為主碼,卡號(hào)為外碼第4章物理設(shè)計(jì)4.1數(shù)據(jù)庫數(shù)據(jù)文件的建立createdatabaseBankDB--建立數(shù)據(jù)庫onprimary(name='Bank_primary',--主數(shù)據(jù)文件filename='D:\BankDB\Bank1.mdf',size=1MB,maxsize=50MB,filegrowth=30%),(name='Bank_data',--二級(jí)數(shù)據(jù)文件filename='D:\BankDB\Bank2.ndf',size=1MB,maxsize=20MB,filegrowth=20%)logon(name='Bank_log',--日志文件filename='D:\BankDB\Bank3.ldf',size=1MB,maxsize=10MB,filegrowth=10%)Go4.2基本表的創(chuàng)建4銀行卡信息表的建立createtableCardInfo--CardInfo表的創(chuàng)建與定義(CardIDchar(19)notnull,CurTypechar(6)notnull,SavingTypechar(8)notnull,OpenDatedatetimenotnull,OpenMoneymoneynotnull,Balancemoneynotnull,Passchar(6)notnull,IsReportLossbitnotnull,CustomerIDintnotnull)go4交易信息表的建立createtableTransInfo--TransInfo表的創(chuàng)建與定義(TransIDintidentitynotnull,TransDatedatetimenotnull,CardIDchar(19)notnull,TransTypechar(4)notnull,TransMoneymoneynotnull,Remarktext)go4用戶信息表的建立createTABLEUserInfo--UserInfo表的創(chuàng)建與定義(CustomerIDintidentity(1,1),CustomerNamevarchar(8)notnull,PIDchar(18)notnull,Telephonevarchar(13)notnull,Addressvarchar(50))Go4.3索引和視圖的建立4建立索引createnonclusteredindexindex_CardIDontransInfo(cardID)--創(chuàng)建索引4建立視圖createviewCard_InfoasselectdistinctCardInfo.CardID,UserInfo.CustomerName,CardInfo.OpenDate,CardInfo.Balance,UserInfo.PID,UserfromUserInfo,CardInfo第5章完整性設(shè)計(jì)5.1.在UserInfo表上添加約束altertableUserInfo--在UserInfo表上添加約束addconstraintPK_UserInfoprimarykey(CustomerID),constraintUQ_PIDunique(PID),constraintCK_PIDcheck(len(PID)=15orlen(PID)=18),constraintCK_Telephonecheck(Telephonelike'[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'orTelephonelike'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'orlen(Telephone)=11)Go5.2在CardInfo表上添加約束altertableCardInfo--在CardInfo表上添加約束addconstraintPK_CardIDprimarykey(CardID),constraintCK_CardIDcheck(CardIDlike'10103576[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),constraintDF_CurTypedefault('RMB')forCurType,constraintCK_SavingTypecheck(SavingTypein('活期','定活兩便','定期')),constraintDF_OpenDatedefault(getdate())forOpenDate,constraintCK_OpenMoneycheck(OpenMoney>=1),constraintCK_Balancecheck(balance>=1),constraintCK_Passcheck(Passlike'[0-9][0-9][0-9][0-9][0-9][0-9]'),constraintDF_Passdefault('888888')forPass,constraintDF_IsReportLossdefault(0)forIsReportLoss,constraintFK_CardInfo_CustomerID_UserInfoforeignkey(CustomerID)referencesUserInfo(CustomerID)go5.3在TransInfo表上添加約束altertableTransInfo--在TransInfo表上添加約束addconstraintDK_TransDatedefault(getdate())forTransDate,constraintFK_TransInfo_CardID_CardInfoforeignkey(CardID)referencesCardInfo(CardID),constraintCK_TransTypecheck(TransTypein('存入','支取')),constraintCK_TransMoneycheck(TransMoney>0)go第6章處理業(yè)務(wù)實(shí)現(xiàn)6.1數(shù)據(jù)庫測(cè)試數(shù)據(jù)輸入6UserInfo測(cè)試數(shù)據(jù)輸入insertintoUserInfo(CustomerName,PID,Telephone,Address)select'丁一','334456889012678457','2222-63598978','河南新鄉(xiāng)'union插入成功后圖6.1UserInfo表數(shù)據(jù)6CardInfo表測(cè)試數(shù)據(jù)輸入insertintoCardInfo(CardID,SavingType,OpenMoney,Balance,CustomerID)select'1010357612345678','活期',1000,1000,12unionselect'1010357612121134','定期',1,1,6unionselect'1010357612562289','定活兩便',2000,2000,1unionselect'1010357612783391','定期',1500,1500,2unionselect'1010357612234567','活期',2000,2000,3unionselect'1010357612988765','定活兩便',2500,2500,4unionselect'1010357674894893','定期',3000,3000,7go圖6.2CardInfo表數(shù)據(jù)6.2業(yè)務(wù)實(shí)現(xiàn)6存取款業(yè)務(wù)實(shí)現(xiàn)/*張三卡號(hào):1010357612345678取款900*/insertintoTransInfo(CardID,TransType,TransMoney)--在TransInfo表中插入交易數(shù)據(jù)values('1010357612345678','支取',900)updateCardInfo--更新卡信息setBalance=Balance-900whereCardID='1010357612345678'go/*李四卡號(hào):1010357612121134存款5000*/insertintoTransInfo(CardID,TransType,TransMoney)values('1010357612121134','存入',5000)updateCardInfosetBalance=Balance+5000whereCardID='1010357612121134'圖6.3存取款業(yè)務(wù)數(shù)據(jù)處理結(jié)果圖6銀行資金流通和盈利結(jié)算的統(tǒng)計(jì)declare@moneyInmoneydeclare@moneyOutmoneydeclare@profitmoneydeclare@allmoneyselect@moneyIn=sum(TransMoney)fromTransInfowhereTransType='存入'select@moneyOut=sum(TransMoney)fromTransInfowhereTransType='支取'print'銀行流通金額總計(jì)為:'+convert(varchar(10),@moneyIn-@moneyOut)+'RMB'print'盈利結(jié)算為:'+convert(varchar(10),@profit)+'RMB'go圖6.4銀行流通金額和盈利數(shù)據(jù)處理6查詢本周開戶的卡號(hào)SELECT*FROMCardInfoWHERE(DATEDIFF(Day,getDate(),openDate)<DATEPART(weekday,openDate))圖6.5查詢本周開戶卡號(hào)6查詢本月交易金額最高的卡號(hào)SELECT*FROMTransInfoSELECTDISTINCTCardIDFROMTransInfoWHERETransMoney=(SELECTMax(TransMoney)FROMTransInfo)圖6.6查詢本月交易金額最高卡號(hào)6.3觸發(fā)器的實(shí)現(xiàn)createtriggerTrans_triggeronTransInfoforinsert,updateasdeclare@upMoneymoneydeclare@trTypechar(4)declare@moneyRemainmoneydeclare@cardIDchar(19)fromTransInfot,insertedi,CardInfocif(@trType='支取')and(@moneyRemain<@upMoney)beginraiserror('您的賬戶余額不足!',16,1)print'您的卡號(hào)為'+@cardIDprint'您卡上的余額為'+convert(varchar(10),@moneyRemain)rollbacktransactionend觸發(fā)器測(cè)試insertintoTransInfo(CardID,TransType,TransMoney)values('1010357612234567','支取',2000)updateCardInfosetBalance=Balance-2000whereCardID='1010357612234567'圖6.7觸發(fā)器測(cè)試6.4轉(zhuǎn)賬存儲(chǔ)過程的實(shí)現(xiàn)createprocedureproc_transform@card1char(19),@pass1char(6),@moneymoney,@card2char(19),@pass2char(6)asdeclare@remain1money,@remain2moneyprint'交易正在進(jìn)行,請(qǐng)稍后'if((selectPassfromCardInfowhereCardID=@card1)<>@pass1or(selectPassfromCardInfowhereCardID=@card2)<>@pass2)beginraiserror('密碼錯(cuò)誤,無法交易',16,1)returnenddeclare@remainmoneyselect@remain=BalancefromCardInfowhereCardID=@card1if(@remain<@money+1)beginprint'余額不足,交易失敗'endelsebeginupdateCardInfosetBalance=Balance-@moneywhereCardID=@card1updateCardInfosetBalance=Balance+@moneywhereCardID=@card2print'交易成功'endselect@remain1=BalancefromCardInfowhereCardID=@card1select@remain2=BalancefromCardInfowhereCardId=@card2print'轉(zhuǎn)賬卡號(hào)為:'+@card1+'卡上余額為:'+convert(char,@remain1)print'被轉(zhuǎn)賬卡卡號(hào)為:'+@card2+'卡上余額為:'+convert(char,@remain2)go密碼錯(cuò)誤測(cè)試:executeproc_transform'1010357612121134','123456',6000,'1010357612234567','888888'圖6.8密碼錯(cuò)誤測(cè)試余額不足測(cè)試:executeproc_transform'1010357612121134','888888',6000,'1010357612234567','888888'圖6.9余額不足測(cè)試轉(zhuǎn)賬成功測(cè)試:executeproc_transform'1010357612121134','888888',1000,'1010357612234567','888888'圖6.10轉(zhuǎn)賬成功測(cè)試第7章設(shè)計(jì)總結(jié)在這一個(gè)星期中,在做ATM柜員機(jī)系統(tǒng)的過程中遇到了很多問題,有的是知識(shí)存儲(chǔ)不足,有的是考慮不夠周全,有些問題不但要深入地理解,而且要不斷地更正以前的錯(cuò)誤思維。之所以能夠順利實(shí)現(xiàn)基本功功能,遇到不能解決的問題,在積極咨詢培訓(xùn)老師和同學(xué)之后都能成功的解決。 做一個(gè)系統(tǒng)最重要的是整體思路,在做之前,必須要先理清自己的思路,否則在后來系統(tǒng)的開發(fā)過程中會(huì)感覺沒有明確的方向感。開發(fā)一套系統(tǒng),最重要的是細(xì)心,并不是一定要做到面面俱到,但也要充分考慮到客戶的需求和現(xiàn)實(shí)意義,不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有先現(xiàn)實(shí)意義,要保持清醒的頭腦。我剛開始的時(shí)候就是看著老師發(fā)的文檔一題題往下做,后來我發(fā)現(xiàn)問題之后就把整個(gè)系統(tǒng)的思想理清了又重新開始的。 在整個(gè)系統(tǒng)中把我們這個(gè)學(xué)期學(xué)到的所有知識(shí)幾乎都用到了,在運(yùn)用知識(shí)的過程中如果不熟悉就會(huì)無法融會(huì)貫通,所以對(duì)知識(shí)的熟練程度要求比較高,在做系統(tǒng)的過程中在參照自己以前的程序代碼,這樣就可以比較順利的完成了。 剛開始時(shí)創(chuàng)建表時(shí),有一些字段的數(shù)據(jù)類型設(shè)計(jì)的不合理。比如存款類型和賬戶余額在一開始時(shí)我設(shè)置的是char類型,但在后來的運(yùn)算中總是需要把char類型轉(zhuǎn)化,這樣很麻煩,我就重新定義了表,把類型轉(zhuǎn)化為money,這樣運(yùn)算時(shí)就簡(jiǎn)單一點(diǎn)了。在做

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論