版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 《數(shù)據(jù)庫原理》</b></p><p><b> 課程設(shè)計報告</b></p><p> 題 目 : 銀行存儲管理系統(tǒng) </p><p> 專業(yè)班級 : 計算機與信息工程系11(1)班</p><p> 學(xué)生姓名 :
2、 </p><p> 學(xué) 號 : </p><p> 指導(dǎo)教師 : </p><p> 設(shè)計周數(shù) : 2周 </p><p> 設(shè)計成績 :
3、 </p><p><b> 計算機與信息工程系</b></p><p> 2013年12月16日</p><p><b> 目 錄</b></p><p><b> 1 概述2</b></p>
4、<p> 2 需求與功能分析2</p><p><b> 3 概要設(shè)計2</b></p><p> 4 數(shù)據(jù)庫設(shè)計4</p><p> 5 關(guān)鍵技術(shù)實現(xiàn)7</p><p> 6 數(shù)據(jù)庫安全性控制17</p><p><b> 7總結(jié)與展望17&l
5、t;/b></p><p> 參 考 文 獻18</p><p><b> 1 概述</b></p><p> 現(xiàn)今的社會,資金流動十分頻繁。不單單是企業(yè)、產(chǎn)商,個人也不例外。銀行作為一個金融機構(gòu),在現(xiàn)代人們的生活中扮演著極其重要的角色。為生活節(jié)奏飛快的現(xiàn)代人提供快速、便捷、高效的理財服務(wù)。伴隨著電腦技術(shù)的發(fā)展,各大銀行的
6、儲蓄管理系統(tǒng)也隨之出現(xiàn)在這一舞臺之上。這次的數(shù)據(jù)庫課程設(shè)計我以這一應(yīng)用環(huán)境為背景,應(yīng)用數(shù)據(jù)庫原理課程所學(xué)的數(shù)據(jù)庫設(shè)計與關(guān)系數(shù)據(jù)理論,結(jié)合實際的操作和設(shè)計進行設(shè)計。目標(biāo)是制定一套合理、有效,規(guī)范和實用的銀行管理系統(tǒng),對銀行信息進行集中統(tǒng)一的管理。提高銀行工作效率,做到信息的規(guī)范管理,科學(xué)統(tǒng)計和快速查詢。這次課程設(shè)計我所應(yīng)用的開發(fā)環(huán)境是windows7,開發(fā)工具是SQL2008,所制作數(shù)據(jù)庫在window2000以上操作系統(tǒng)都可以正常運行。
7、</p><p><b> 2 需求與功能分析</b></p><p> 銀行儲存管理系統(tǒng)要求每一個銀行管理者都有一個系統(tǒng)帳號,并且每一個帳號都有密碼,系統(tǒng)對用戶的添加、管理、存款添加都有管理者執(zhí)行,而不是由存儲用戶自己執(zhí)行。該系統(tǒng)主要有兩部分業(yè)務(wù)內(nèi)容:存款與取款。取款則可以由儲戶自己在取款窗口取款,也可以由管理員管理取款操作。系統(tǒng)擴充的功能有管理員的添加、修改,
8、用戶修改密碼。</p><p><b> 3 概要設(shè)計</b></p><p> 下面為銀行存儲管理系統(tǒng)的的概要設(shè)計:</p><p> (1)、系統(tǒng)總體框圖:</p><p> 銀行是一個與我們的生活息息相關(guān)的部門。在我們的生活中銀行主要辦理以下業(yè)務(wù):1,儲戶開戶登記;2,定期存款;3,定期取款;4,活期存款
9、;5,活期取款;6,利息結(jié)算7,輸出明細賬單,8、銷戶9、管理員的添加與修改。這些功能都是由管理員來操作的,管理員可以操作管理員信息表、用戶個人信息表和用戶存儲信息表這三個表。而對于用戶,可以單獨在端口操作賬戶查詢、取款和修改個人密碼。不管是任何操作,都要先登錄核對帳號密碼。</p><p> (2)、數(shù)據(jù)流程圖:</p><p><b> 4 數(shù)據(jù)庫設(shè)計</b>
10、;</p><p> 我設(shè)計的銀行管理系統(tǒng)只有兩個實體:管理員與存儲用戶。而管理員只擁有管理員帳號、密碼、姓名這三個信息,以方便查詢管理員操作記錄。儲戶則擁有個人信息和存儲信息,分為兩個表。個人信息的屬性有銀行卡號、姓名、身份證號、密碼、電話、性別,存儲信息有銀行卡號、密碼、存儲數(shù)額、存儲類型、利息利率、存儲日期、已存儲時間(年份)、已獲得利息、總余額這些信息,其中這里的銀行卡號和密碼是個人信息表的外鍵。由管理
11、員操作用戶的開戶、存儲操作等操作,而用戶可以自己進行查詢、取款、修改密碼。</p><p> 以下為E-R模型圖:</p><p><b> 各部分E-R圖:</b></p><p> 關(guān)系表(已規(guī)范化):</p><p> Adminstrator(管理員信息表)</p><p> U
12、sersmessage(用戶個人信息表)</p><p> Savemessage(存儲信息表)</p><p> 由E-R圖轉(zhuǎn)化的關(guān)系表</p><p> 其中,利息、余額、存儲時間我采用了公式計算,并檢驗正確。</p><p> 由以上關(guān)系表在SQL2008中建立了數(shù)據(jù)庫。</p><p><b>
13、; 5 關(guān)鍵技術(shù)實現(xiàn)</b></p><p> 設(shè)計了顯示用戶個人信息及存儲信息的個人信息視圖以及只查詢用戶存儲信息的視圖和顯示管理員信息的管理員視圖。</p><p> 設(shè)計了四個觸發(fā)器,包括兩個管理員密碼、用戶密碼設(shè)置修改不符合長度的觸發(fā)器。一個定期存款未到期不允許取款的觸發(fā)器,一個余額不足不允許取款的觸發(fā)器。</p><p> 設(shè)計了添加
14、、修改、刪除管理員;用戶開戶、修改用戶個人信息、用戶銷戶(刪除個人信息與存儲信息)、增加存款存儲、用戶修改密碼用戶取款這幾個存儲過程。</p><p> 并對關(guān)鍵事務(wù):用戶取款、用戶開戶、用戶修改密碼、用戶添加存款這幾個關(guān)鍵業(yè)務(wù)做了事務(wù)處理,我的方法是將事務(wù)的隔離級別設(shè)置為為提交讀(read uncommitted),防止丟失修改、讀臟數(shù)據(jù)等錯誤。具體就是在這些事務(wù)前加入set transaction isol
15、ation level read uncommitted</p><p><b> 具體代碼如下:</b></p><p> 視圖:由企業(yè)管理器直接創(chuàng)建。</p><p><b> 觸發(fā)器:</b></p><p> 管理員密碼長度觸發(fā)器:</p><p> Cre
16、ate trigger [dbo].[T1] on [dbo].[admins] for insert,update</p><p><b> as</b></p><p> declare @AdPassword varchar(50)</p><p> select @AdPassword=AdPassword from insert
17、ed</p><p> if (len(@AdPassword)<6 or len(@AdPassword)>12)</p><p><b> begin</b></p><p> print '密碼長度應(yīng)在6到12'</p><p> ROLLBACK TRANSACTION<
18、/p><p><b> End</b></p><p> 用戶密碼長度觸發(fā)器:</p><p> Create trigger [dbo].[T2] on [dbo].[Usermessage] for insert,update</p><p><b> as</b></p>&
19、lt;p> declare @UserPassword varchar(50)</p><p> select @UserPassword=UserPassword from inserted</p><p> if (len(@UserPassword)<6 or len(@UserPassword)>12)</p><p><b&g
20、t; begin</b></p><p> print '密碼長度應(yīng)在到6到12 '</p><p> ROLLBACK TRANSACTION</p><p><b> End</b></p><p><b> 定期存款取款限定:</b></p>
21、<p> Create trigger [dbo].[T4] on [dbo].[UserSavemessage] for update</p><p><b> as</b></p><p> declare @Savetime money</p><p> declare @Savestyle varchar(50)&l
22、t;/p><p> select @Savetime=Savetime from inserted</p><p> select @Savestyle=Savestyle from inserted</p><p> if (@Savestyle='定期三年' and @Savetime <3)</p><p>&l
23、t;b> begin</b></p><p> print '儲蓄時間不足年,無法取款'</p><p> rollback transaction</p><p><b> end</b></p><p><b> else </b></p>
24、<p><b> if</b></p><p> (@Savestyle='定期五年' and @Savetime <5)</p><p><b> begin</b></p><p> print '儲蓄時間不足年,無法取款'</p><p&
25、gt; rollback transaction</p><p><b> end</b></p><p><b> 余額不足觸發(fā)器:</b></p><p> Create trigger [dbo].[T3] on [dbo].[UserSavemessage] for update</p>&l
26、t;p><b> as</b></p><p> declare @allmoney money</p><p> select @allmoney=allmoney from inserted</p><p> if (@allmoney <1)</p><p><b> begin&l
27、t;/b></p><p> print '余額不足!'</p><p> rollback transaction</p><p><b> end</b></p><p><b> 存儲過程:</b></p><p> 添加管理員存儲過程:
28、</p><p> create procedure [dbo].[AdminAdd]</p><p> (@AdNumber [varchar](50),@AdName [varchar](50), @AdPassword [varchar](50) </p><p><b> )</b></p><p>
29、as insert into [admins]</p><p> (AdNumber,AdName,AdPassword</p><p><b> )</b></p><p><b> values</b></p><p> (@AdNumber,@AdName,@AdPassword<
30、;/p><p><b> )</b></p><p> 刪除管理員存儲過程:</p><p> create procedure [dbo].[Admindelete]</p><p> (@AdNumber [varchar](50) </p><p><b> )</b
31、></p><p> as delete [admins]</p><p> where([AdNumber]=@AdNumber)</p><p> 修改管理員信息存儲過程:</p><p> create procedure [dbo].[AdminModify]</p><p> (@AdNumb
32、er [varchar](50),@AdName [varchar](50), @AdPassword [varchar](50) </p><p><b> )</b></p><p> as update [admins]</p><p> set AdName=@AdName,AdPassword=@AdPassword</
33、p><p> where (AdNumber=@AdNumber)</p><p> 用戶開戶(錄入用戶個人信息):</p><p> Create procedure [dbo].[UserAdd]</p><p> (@Bankcardnumber [varchar](50),@Name [varbinary](50), @User
34、Password [varchar](50),</p><p> @IDcardnumber [varchar](50),@Telephone [varchar](50),@Sex [varchar](1),</p><p> @Savemoney [money],@Savestyle [varchar](50),@Accrualrate [float],@Savedate [dat
35、etime]</p><p><b> )</b></p><p><b> as </b></p><p> insert into [Usermessage] </p><p> (Bankcardnumber,Name,UserPassword,IDcardnumber,Telepho
36、ne,Sex</p><p><b> )</b></p><p><b> values</b></p><p> (@Bankcardnumber,@Name,@UserPassword,@IDcardnumber,@Telephone,@Sex</p><p><b> )&
37、lt;/b></p><p> insert into [UserSavemessage] </p><p> (Savemoney,Savestyle,Accrualrate,Savedate</p><p><b> )</b></p><p><b> values</b><
38、;/p><p> (@Savemoney,@Savestyle,@Accrualrate,@Savedate</p><p><b> )</b></p><p> set transaction isolation level read uncommitted</p><p> 用戶銷戶(刪除個人信息與存儲信息):
39、</p><p> create procedure [dbo].[UserDetele]</p><p> (@Bankcardnumber [varchar](50)</p><p><b> )</b></p><p><b> as </b></p><p>
40、; delete [Usermessage] </p><p> where (Bankcardnumber=@Bankcardnumber)</p><p> delete [UserSavemessage]</p><p> where (Bankcardnumber=@Bankcardnumber)</p><p> 修改用戶
41、個人信息存儲過程:</p><p> create procedure [dbo].[UserModify]</p><p> (@Bankcardnumber [varchar](50),@Name [varchar](50), @UserPassword [varchar](50),</p><p> @IDcardnumber [varbinary](
42、50),@Telephone [varchar](50),@Sex [varchar](1)</p><p><b> )</b></p><p> as update [Usermessage] </p><p> set Name=@Name,UserPassword=@UserPassword,IDcardnumber=@IDcar
43、dnumber,</p><p> Telephone=@Telephone,Sex=@Sex</p><p> where (Bankcardnumber=@Bankcardnumber)</p><p><b> 用戶取款:</b></p><p> Create procedure [dbo].[getmo
44、ney]</p><p> (@Bankcardnumber [varchar](50),@getmoney [money])</p><p> as update [UserSavemessage] </p><p> set Savemoney=Savemoney-@getmoney</p><p> where (@Bankc
45、ardnumber=Bankcardnumber)</p><p> set transaction isolation level read uncommitted</p><p><b> 增加存款存儲過程:</b></p><p> create procedure [dbo].[addsavemoney]</p>&
46、lt;p> (@Bankcardnumber [varchar](50),@Savemoney [money])</p><p> as update [UserSavemessage] </p><p> set Savemoney=Savemoney-@Savemoney</p><p> where (@Bankcardnumber=Bankc
47、ardnumber)</p><p> set transaction isolation level read uncommitted</p><p><b> 用戶修改密碼:</b></p><p> create procedure [dbo].[Usermodifypassword]</p><p> (
48、@Bankcardnumber [varchar](50), @UserPassword [varchar](50)</p><p><b> )</b></p><p> as update [Usermessage] </p><p> set UserPassword=@UserPassword</p><p&
49、gt; where (Bankcardnumber=@Bankcardnumber)</p><p> set transaction isolation level read uncommitted</p><p> 觸發(fā)器SQL腳本測試結(jié)果如下:</p><p> 余額不足的觸發(fā)器SQL腳本測試結(jié)果:</p><p> 密碼長
50、度限定觸發(fā)器SQL腳本測試結(jié)果:</p><p> 給出增添、修改、刪除、取款等不同操作的存儲過程的SQL腳本測試結(jié)果,存儲過程其余結(jié)果類似:</p><p> 添加管理員存儲過程SQL腳本語言測試結(jié)果:</p><p> 取款操作的存儲過程測試結(jié)果:</p><p><b> 取款前:</b></p>
51、;<p><b> 取款后:</b></p><p> 修改用戶信息存儲過程腳本測試結(jié)果:</p><p><b> 修改前:</b></p><p><b> 修改后:</b></p><p> 刪除用戶的存儲過程:</p><p&
52、gt;<b> 執(zhí)行前:</b></p><p><b> 執(zhí)行后:</b></p><p> 6 數(shù)據(jù)庫安全性控制</p><p> 設(shè)置了admin的用戶,擁有所有架構(gòu)和權(quán)限。以管理數(shù)據(jù)庫</p><p> 設(shè)置了boss和yinhangwork兩個角色,boss有對admins表的所
53、有權(quán)限(修改、增加、查詢),對usersavemessage表的查詢操作權(quán)限,以方便查詢統(tǒng)計業(yè)務(wù)。Yinhangwork可以對usersavemessage和usermessage表的所有操作,管理業(yè)務(wù)。</p><p><b> 7總結(jié)與展望</b></p><p> 這次的數(shù)據(jù)庫課程設(shè)計,我選擇做銀行儲蓄系統(tǒng),一開始覺得自己數(shù)據(jù)庫原理學(xué)得不錯,做起來很簡單,但
54、是真正開始入手做了才發(fā)現(xiàn)做起來確實困難重重,尤其是自己第一次獨立設(shè)計一個數(shù)據(jù)庫。從需求分析階段開始,我就花了不少時間在網(wǎng)上搜索查找資料,想盡量地把這個系統(tǒng)做得完善。在充分了解了課程設(shè)計要求以及這個銀行存儲管理系統(tǒng)的需求之后,我花了一天多的時間畫數(shù)據(jù)流圖、結(jié)構(gòu)框圖已經(jīng)E-R圖,再從中得到了我所需要設(shè)計的關(guān)系表,經(jīng)過思考和測試后,把關(guān)系表進行了一些優(yōu)化。接下來便是數(shù)據(jù)庫的設(shè)計了,我通過關(guān)系表在SQL2008中創(chuàng)建了我的銀行管理系統(tǒng)的數(shù)據(jù)庫。
55、通過分析,做了視圖、觸發(fā)器、各個功能的存儲過程,不斷完善我的數(shù)據(jù)庫。途中也遇到了一些問題,一開始不太理解觸發(fā)器的定義,以為利息計算可以利用觸發(fā)器,可是是錯的,它只能用在插入、修改和刪除操作過程中,通過查找最后我變換了方案,利息計算用屬性的公式計算就可以了,可能很簡單地得出。經(jīng)過不斷地測試和不斷地改進,我把這次的課程設(shè)計的系統(tǒng)逐步完善了。當(dāng)然,這個系統(tǒng)還存在不少不足的地方,例如沒有把權(quán)限分得更深化,畢竟銀行是一個大系統(tǒng)。例外有些操作可能實
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計報告(銀行管理系統(tǒng))
- 課程設(shè)計--銀行管理系統(tǒng)
- 模板個人銀行管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計報告---銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告-銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--銀行管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--銀行管理系統(tǒng)
- c++課程設(shè)計面向?qū)ο笳n程設(shè)計--銀行管理系統(tǒng)
- 軟件工程課程設(shè)計--個人網(wǎng)上銀行管理系統(tǒng)
- 銀行賬戶管理系統(tǒng)-課程設(shè)計報告
- 課程設(shè)計報告---銀行模擬系統(tǒng)
- c++課程設(shè)計報告---銀行賬戶管理系統(tǒng)
- 銀行卡管理系統(tǒng)課程設(shè)計
- 銀行管理系統(tǒng)
- 倉庫管理系統(tǒng)--課程設(shè)計報告報告
- java課程設(shè)計報告--銀行atm機系統(tǒng)
- 宿舍管理系統(tǒng)課程設(shè)計報告
評論
0/150
提交評論