銀行管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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)介

1、<p><b>  《數(shù)據(jù)庫(kù)原理》</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 : 銀行存儲(chǔ)管理系統(tǒng) </p><p>  專業(yè)班級(jí) : 計(jì)算機(jī)與信息工程系11(1)班</p><p>  學(xué)生姓名 :

2、 </p><p>  學(xué) 號(hào) : </p><p>  指導(dǎo)教師 : </p><p>  設(shè)計(jì)周數(shù) : 2周 </p><p>  設(shè)計(jì)成績(jī) :

3、 </p><p><b>  計(jì)算機(jī)與信息工程系</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è)計(jì)2</b></p><p>  4 數(shù)據(jù)庫(kù)設(shè)計(jì)4</p><p>  5 關(guān)鍵技術(shù)實(shí)現(xiàn)7</p><p>  6 數(shù)據(jù)庫(kù)安全性控制17</p><p><b>  7總結(jié)與展望17&l

5、t;/b></p><p>  參 考 文 獻(xiàn)18</p><p><b>  1 概述</b></p><p>  現(xiàn)今的社會(huì),資金流動(dòng)十分頻繁。不單單是企業(yè)、產(chǎn)商,個(gè)人也不例外。銀行作為一個(gè)金融機(jī)構(gòu),在現(xiàn)代人們的生活中扮演著極其重要的角色。為生活節(jié)奏飛快的現(xiàn)代人提供快速、便捷、高效的理財(cái)服務(wù)。伴隨著電腦技術(shù)的發(fā)展,各大銀行的

6、儲(chǔ)蓄管理系統(tǒng)也隨之出現(xiàn)在這一舞臺(tái)之上。這次的數(shù)據(jù)庫(kù)課程設(shè)計(jì)我以這一應(yīng)用環(huán)境為背景,應(yīng)用數(shù)據(jù)庫(kù)原理課程所學(xué)的數(shù)據(jù)庫(kù)設(shè)計(jì)與關(guān)系數(shù)據(jù)理論,結(jié)合實(shí)際的操作和設(shè)計(jì)進(jìn)行設(shè)計(jì)。目標(biāo)是制定一套合理、有效,規(guī)范和實(shí)用的銀行管理系統(tǒng),對(duì)銀行信息進(jìn)行集中統(tǒng)一的管理。提高銀行工作效率,做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢。這次課程設(shè)計(jì)我所應(yīng)用的開(kāi)發(fā)環(huán)境是windows7,開(kāi)發(fā)工具是SQL2008,所制作數(shù)據(jù)庫(kù)在window2000以上操作系統(tǒng)都可以正常運(yùn)行。

7、</p><p><b>  2 需求與功能分析</b></p><p>  銀行儲(chǔ)存管理系統(tǒng)要求每一個(gè)銀行管理者都有一個(gè)系統(tǒng)帳號(hào),并且每一個(gè)帳號(hào)都有密碼,系統(tǒng)對(duì)用戶的添加、管理、存款添加都有管理者執(zhí)行,而不是由存儲(chǔ)用戶自己執(zhí)行。該系統(tǒng)主要有兩部分業(yè)務(wù)內(nèi)容:存款與取款。取款則可以由儲(chǔ)戶自己在取款窗口取款,也可以由管理員管理取款操作。系統(tǒng)擴(kuò)充的功能有管理員的添加、修改,

8、用戶修改密碼。</p><p><b>  3 概要設(shè)計(jì)</b></p><p>  下面為銀行存儲(chǔ)管理系統(tǒng)的的概要設(shè)計(jì):</p><p>  (1)、系統(tǒng)總體框圖:</p><p>  銀行是一個(gè)與我們的生活息息相關(guān)的部門(mén)。在我們的生活中銀行主要辦理以下業(yè)務(wù):1,儲(chǔ)戶開(kāi)戶登記;2,定期存款;3,定期取款;4,活期存款

9、;5,活期取款;6,利息結(jié)算7,輸出明細(xì)賬單,8、銷戶9、管理員的添加與修改。這些功能都是由管理員來(lái)操作的,管理員可以操作管理員信息表、用戶個(gè)人信息表和用戶存儲(chǔ)信息表這三個(gè)表。而對(duì)于用戶,可以單獨(dú)在端口操作賬戶查詢、取款和修改個(gè)人密碼。不管是任何操作,都要先登錄核對(duì)帳號(hào)密碼。</p><p>  (2)、數(shù)據(jù)流程圖:</p><p><b>  4 數(shù)據(jù)庫(kù)設(shè)計(jì)</b>

10、;</p><p>  我設(shè)計(jì)的銀行管理系統(tǒng)只有兩個(gè)實(shí)體:管理員與存儲(chǔ)用戶。而管理員只擁有管理員帳號(hào)、密碼、姓名這三個(gè)信息,以方便查詢管理員操作記錄。儲(chǔ)戶則擁有個(gè)人信息和存儲(chǔ)信息,分為兩個(gè)表。個(gè)人信息的屬性有銀行卡號(hào)、姓名、身份證號(hào)、密碼、電話、性別,存儲(chǔ)信息有銀行卡號(hào)、密碼、存儲(chǔ)數(shù)額、存儲(chǔ)類型、利息利率、存儲(chǔ)日期、已存儲(chǔ)時(shí)間(年份)、已獲得利息、總余額這些信息,其中這里的銀行卡號(hào)和密碼是個(gè)人信息表的外鍵。由管理

11、員操作用戶的開(kāi)戶、存儲(chǔ)操作等操作,而用戶可以自己進(jìn)行查詢、取款、修改密碼。</p><p>  以下為E-R模型圖:</p><p><b>  各部分E-R圖:</b></p><p>  關(guān)系表(已規(guī)范化):</p><p>  Adminstrator(管理員信息表)</p><p>  U

12、sersmessage(用戶個(gè)人信息表)</p><p>  Savemessage(存儲(chǔ)信息表)</p><p>  由E-R圖轉(zhuǎn)化的關(guān)系表</p><p>  其中,利息、余額、存儲(chǔ)時(shí)間我采用了公式計(jì)算,并檢驗(yàn)正確。</p><p>  由以上關(guān)系表在SQL2008中建立了數(shù)據(jù)庫(kù)。</p><p><b>

13、;  5 關(guān)鍵技術(shù)實(shí)現(xiàn)</b></p><p>  設(shè)計(jì)了顯示用戶個(gè)人信息及存儲(chǔ)信息的個(gè)人信息視圖以及只查詢用戶存儲(chǔ)信息的視圖和顯示管理員信息的管理員視圖。</p><p>  設(shè)計(jì)了四個(gè)觸發(fā)器,包括兩個(gè)管理員密碼、用戶密碼設(shè)置修改不符合長(zhǎng)度的觸發(fā)器。一個(gè)定期存款未到期不允許取款的觸發(fā)器,一個(gè)余額不足不允許取款的觸發(fā)器。</p><p>  設(shè)計(jì)了添加

14、、修改、刪除管理員;用戶開(kāi)戶、修改用戶個(gè)人信息、用戶銷戶(刪除個(gè)人信息與存儲(chǔ)信息)、增加存款存儲(chǔ)、用戶修改密碼用戶取款這幾個(gè)存儲(chǔ)過(guò)程。</p><p>  并對(duì)關(guān)鍵事務(wù):用戶取款、用戶開(kāi)戶、用戶修改密碼、用戶添加存款這幾個(gè)關(guān)鍵業(yè)務(wù)做了事務(wù)處理,我的方法是將事務(wù)的隔離級(jí)別設(shè)置為為提交讀(read uncommitted),防止丟失修改、讀臟數(shù)據(jù)等錯(cuò)誤。具體就是在這些事務(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>  管理員密碼長(zhǎng)度觸發(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 '密碼長(zhǎng)度應(yīng)在6到12'</p><p>  ROLLBACK TRANSACTION<

18、/p><p><b>  End</b></p><p>  用戶密碼長(zhǎng)度觸發(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 '密碼長(zhǎng)度應(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 '儲(chǔ)蓄時(shí)間不足年,無(wú)法取款'</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 '儲(chǔ)蓄時(shí)間不足年,無(wú)法取款'</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>  存儲(chǔ)過(guò)程:</b></p><p>  添加管理員存儲(chǔ)過(guò)程:

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>  刪除管理員存儲(chǔ)過(guò)程:</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>  修改管理員信息存儲(chǔ)過(guò)程:</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>  用戶開(kāi)戶(錄入用戶個(gè)人信息):</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>  用戶銷戶(刪除個(gè)人信息與存儲(chǔ)信息):

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、個(gè)人信息存儲(chǔ)過(guò)程:</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>  增加存款存儲(chǔ)過(guò)程:</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腳本測(cè)試結(jié)果如下:</p><p>  余額不足的觸發(fā)器SQL腳本測(cè)試結(jié)果:</p><p>  密碼長(zhǎng)

50、度限定觸發(fā)器SQL腳本測(cè)試結(jié)果:</p><p>  給出增添、修改、刪除、取款等不同操作的存儲(chǔ)過(guò)程的SQL腳本測(cè)試結(jié)果,存儲(chǔ)過(guò)程其余結(jié)果類似:</p><p>  添加管理員存儲(chǔ)過(guò)程SQL腳本語(yǔ)言測(cè)試結(jié)果:</p><p>  取款操作的存儲(chǔ)過(guò)程測(cè)試結(jié)果:</p><p><b>  取款前:</b></p>

51、;<p><b>  取款后:</b></p><p>  修改用戶信息存儲(chǔ)過(guò)程腳本測(cè)試結(jié)果:</p><p><b>  修改前:</b></p><p><b>  修改后:</b></p><p>  刪除用戶的存儲(chǔ)過(guò)程:</p><p&

52、gt;<b>  執(zhí)行前:</b></p><p><b>  執(zhí)行后:</b></p><p>  6 數(shù)據(jù)庫(kù)安全性控制</p><p>  設(shè)置了admin的用戶,擁有所有架構(gòu)和權(quán)限。以管理數(shù)據(jù)庫(kù)</p><p>  設(shè)置了boss和yinhangwork兩個(gè)角色,boss有對(duì)admins表的所

53、有權(quán)限(修改、增加、查詢),對(duì)usersavemessage表的查詢操作權(quán)限,以方便查詢統(tǒng)計(jì)業(yè)務(wù)。Yinhangwork可以對(duì)usersavemessage和usermessage表的所有操作,管理業(yè)務(wù)。</p><p><b>  7總結(jié)與展望</b></p><p>  這次的數(shù)據(jù)庫(kù)課程設(shè)計(jì),我選擇做銀行儲(chǔ)蓄系統(tǒng),一開(kāi)始覺(jué)得自己數(shù)據(jù)庫(kù)原理學(xué)得不錯(cuò),做起來(lái)很簡(jiǎn)單,但

54、是真正開(kāi)始入手做了才發(fā)現(xiàn)做起來(lái)確實(shí)困難重重,尤其是自己第一次獨(dú)立設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)。從需求分析階段開(kāi)始,我就花了不少時(shí)間在網(wǎng)上搜索查找資料,想盡量地把這個(gè)系統(tǒng)做得完善。在充分了解了課程設(shè)計(jì)要求以及這個(gè)銀行存儲(chǔ)管理系統(tǒng)的需求之后,我花了一天多的時(shí)間畫(huà)數(shù)據(jù)流圖、結(jié)構(gòu)框圖已經(jīng)E-R圖,再?gòu)闹械玫搅宋宜枰O(shè)計(jì)的關(guān)系表,經(jīng)過(guò)思考和測(cè)試后,把關(guān)系表進(jìn)行了一些優(yōu)化。接下來(lái)便是數(shù)據(jù)庫(kù)的設(shè)計(jì)了,我通過(guò)關(guān)系表在SQL2008中創(chuàng)建了我的銀行管理系統(tǒng)的數(shù)據(jù)庫(kù)。

55、通過(guò)分析,做了視圖、觸發(fā)器、各個(gè)功能的存儲(chǔ)過(guò)程,不斷完善我的數(shù)據(jù)庫(kù)。途中也遇到了一些問(wèn)題,一開(kāi)始不太理解觸發(fā)器的定義,以為利息計(jì)算可以利用觸發(fā)器,可是是錯(cuò)的,它只能用在插入、修改和刪除操作過(guò)程中,通過(guò)查找最后我變換了方案,利息計(jì)算用屬性的公式計(jì)算就可以了,可能很簡(jiǎn)單地得出。經(jīng)過(guò)不斷地測(cè)試和不斷地改進(jìn),我把這次的課程設(shè)計(jì)的系統(tǒng)逐步完善了。當(dāng)然,這個(gè)系統(tǒng)還存在不少不足的地方,例如沒(méi)有把權(quán)限分得更深化,畢竟銀行是一個(gè)大系統(tǒng)。例外有些操作可能實(shí)

溫馨提示

  • 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ù)僅提供信息存儲(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)論