數(shù)據(jù)庫原理及應用課程設計--圖書管理系統(tǒng)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  本科生課程設計</b></p><p>  課程設計時間: 2014年 12月 10日</p><p>  至2014年 12月 30日</p><p> 課程名稱數(shù)據(jù)庫原理及應用課程設計</p><p> 課程編號</p><p> 學號&

2、lt;/p><p> 學生姓名</p><p> 所在專業(yè)計算機科學與技術</p><p> 所在班級</p><p> 指導教師</p><p> 成績</p><p> 教師簽字年 月 日</p><p><b>  目 錄</b>

3、</p><p><b>  設計總說明I</b></p><p><b>  第1章需求分析3</b></p><p>  第2章概念結構設計3</p><p>  第3章邏輯結構設計5</p><p>  第4章物理結構設計9</p><p&

4、gt;  第5章系統(tǒng)實現(xiàn)13</p><p>  5.1 前臺界面13</p><p>  5.2 后臺管理16</p><p>  優(yōu)缺點自我評價18</p><p><b>  參考文獻18</b></p><p><b>  設計總說明</b></p&g

5、t;<p><b>  系統(tǒng)開發(fā)目的</b></p><p>  數(shù)據(jù)庫課程設計是為數(shù)據(jù)庫原理及應用課程而獨立開設的實踐性課程,對于鞏固數(shù)據(jù)庫知識加強學生的實際動手能力和提高學生綜合素質十分必要。通過本實驗達到以下目的: </p><p>  1、培養(yǎng)學生具有數(shù)據(jù)庫應用軟件系統(tǒng)的設計和開發(fā)能力。 </p><p>  2、 熟

6、練掌握一種數(shù)據(jù)庫系統(tǒng)(如SQL SERVER)的使用。 </p><p>  3、 通過設計實際的數(shù)據(jù)庫系統(tǒng)應用課題,進一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術,提高自己動手能力提高分析問題和解決問題的能力。</p><p><b>  開發(fā)內容</b></p><p>  要分析圖書管理系統(tǒng)的需求分析,概念結構分析,邏輯結構分析,物理結構分析,數(shù)

7、據(jù)庫的實現(xiàn)以及數(shù)據(jù)庫的保護與維修,通過不斷地調試來實現(xiàn)數(shù)據(jù)軟件之間的完善。</p><p><b>  開發(fā)要求</b></p><p>  進行新書入庫、現(xiàn)有圖書信息修改以及刪除;</p><p> ?、?能夠實現(xiàn)對讀者基本信息的查詢和編輯管理;</p><p>  ③ 能夠進行預約功能;</p><

8、;p> ?、?能夠進行借閱信息的查詢功能;</p><p><b>  開發(fā)環(huán)境及工具</b></p><p>  系統(tǒng)前臺開發(fā)軟件:My Eclipse</p><p>  系統(tǒng)后臺管理軟件:SQL server management studio 2008</p><p>  系統(tǒng)開發(fā)語言:Jsp</p&

9、gt;<p><b>  系統(tǒng)功能簡介</b></p><p>  能夠存儲一定數(shù)量的圖書信息,并方便有效的進行相應的書籍數(shù)據(jù)操作和管理,這主要包括:</p><p>  1) 圖書信息的錄入、刪除及修改。</p><p>  2) 圖書信息的多關鍵字檢索查詢。</p><p>  3) 圖書的出借、

10、返還、預約。</p><p>  數(shù)據(jù)庫原理及應用課程設計報告</p><p><b>  第1章需求分析</b></p><p>  進行系統(tǒng)設計,首先要對系統(tǒng)的現(xiàn)狀進行分析。根據(jù)系統(tǒng)的目標、需求和功能,制定和選擇一個較好的系統(tǒng)方案,從而達到一個合理的優(yōu)化系統(tǒng)。每個學校都有圖書館,最初由于圖書數(shù)量和種類較少,人工手動管理比較方便和靈活。隨著社

11、會的發(fā)展,圖書的數(shù)量和種類越來越多,人工手動管理會降低工作的效率,希望建立一個圖書管理系統(tǒng),是為了解決人工手動管理圖書信息在實踐的問題,從而達到系統(tǒng)化、規(guī)范化、標準化的水平。該系統(tǒng)的建立不但給管理者帶來了方便,也節(jié)省了工作時間從而提高了工作效率。</p><p>  需求分析是在于要弄清用戶對開發(fā)的數(shù)據(jù)庫應用系統(tǒng)的確切要求。數(shù)據(jù)庫設計的第一步是明確數(shù)據(jù)庫的目的和如何使用,也就是說需要從數(shù)據(jù)庫中得到哪些信息。明確目

12、的之后,就可以確定您需要保存哪些主題的信息(表),以及每個主題需要保存哪些信息(表中字段)。</p><p>  在構造系統(tǒng)時,首先從需求出發(fā)構造數(shù)據(jù)庫表,然后再由數(shù)據(jù)庫表結合需求劃分系統(tǒng)功能模塊。這樣,就把一個大的系統(tǒng)分解成了幾個小系統(tǒng)。這里把系統(tǒng)的層次劃分為了四個部分:圖書維護,人員信息管理,圖書借閱管理,信息查詢。能夠實現(xiàn)以下功能:</p><p>  進行新書入庫、現(xiàn)有圖書信息修改

13、以及刪除;</p><p>  ② 能夠實現(xiàn)對讀者基本信息的查詢和編輯管理;</p><p> ?、?能夠進行預約功能;</p><p> ?、?能夠進行借閱信息的查詢功能;</p><p><b>  第2章概念結構設計</b></p><p>  根據(jù)以上需求分析,一個基本的圖書館管理系統(tǒng)數(shù)據(jù)

14、庫大致包括10個表,分別存放相應子功能模塊的數(shù)據(jù)信息,期中“讀者信息”和“圖書信息”表是關鍵的表,用于存放圖書館讀者的信息和文獻的信息,圖書館管理系統(tǒng)實際上就是對讀者和文獻的管理。其他涉及讀者信息和文獻信息的表,都只是記錄相應的編號,并根據(jù)作為外鍵的“編號”字段相對應。</p><p>  數(shù)據(jù)庫要表述的信息有:</p><p> ?。?)讀者類型(2)讀者信息(3)圖書基本信息(4)圖書

15、信息(6)圖書借閱(7)圖書歸還(8)圖書丟失(9)圖書預約</p><p>  各個主要實體的屬性的E-R圖</p><p>  各實體及屬性圖如圖所示</p><p>  2.2各實體及其聯(lián)系的E-R圖</p><p><b>  第3章邏輯結構設計</b></p><p>  將概念結構轉化

16、為一般的關系、網(wǎng)狀、層次模型; 將轉換來的關系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉換; 對數(shù)據(jù)模型進行優(yōu)化。</p><p>  把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產品所支持的數(shù)據(jù)模型相符合的邏輯結構。所以E-R圖轉換如下:</p><p>  讀者類型(身份、可借冊數(shù)、可續(xù)借冊數(shù)、可借時間)</p><p>  圖書基本信息(I

17、SBN、書名、版次、類型、作者、出版社、價格、現(xiàn)存量、庫存總量)</p><p>  讀者信息(編號、姓名、身份、讀者性別、聯(lián)系方式、登記日期、有效期至、違規(guī)次數(shù)、現(xiàn)借圖書數(shù)、是否掛失)</p><p>  圖書信息(編號、ISBN、入庫時間)</p><p>  圖書歸還(歸還編號、圖書編號、讀者編號、歸還時間)</p><p>  3.2

18、具體邏輯模型設計</p><p>  3.2.1讀者類型表</p><p>  3.2.2圖書基本信息表</p><p>  3.2.3讀者信息表</p><p>  3.2.4圖書信息表</p><p>  3.2.5圖書借閱表</p><p><b>  第4章物理結構設計<

19、/b></p><p>  create table 讀者類型表</p><p><b>  (</b></p><p>  身份 char(20) primary key,</p><p>  可借冊數(shù) int not null,</p><p>  可續(xù)借次數(shù) int not null

20、,</p><p>  可借天數(shù) int not null</p><p><b>  );</b></p><p>  create table 圖書基本信息表</p><p><b>  (</b></p><p>  ISBN char(20) primary key,

21、</p><p>  書名 char(20) not null,</p><p>  版次 char(20) not null,</p><p>  類型 char(20) not null,</p><p>  作者 char(20) not null,</p><p>  出版社 char(20) not nul

22、l,</p><p>  價格 float not null,</p><p>  現(xiàn)存量 int not null,</p><p>  庫存總量 int not null</p><p><b>  );</b></p><p>  create table 讀者表</p>&

23、lt;p><b>  (</b></p><p>  編號 char(20) not null primary key,</p><p>  密碼 varchar(20) not null,</p><p>  姓名 char(20) not null,</p><p>  身份 char(20) not nul

24、l foreign key (身份) references 讀者類型表(身份),</p><p>  性別 char(2) not null check (性別 in('男','女')),</p><p>  聯(lián)系方式 char(12) not null,</p><p>  注冊時間 datetime not null,</p

25、><p>  有效期 datetime not null,</p><p>  借書數(shù)量 int not null,</p><p>  是否掛失 bit not null,</p><p><b>  );</b></p><p>  create table 圖書信息表</p>&l

26、t;p><b>  (</b></p><p>  編號 char(20) not null primary key,</p><p>  ISBN char(20) not null foreign key(ISBN) references 圖書基本信息表(ISBN),</p><p>  入庫時間 datetime not null&

27、lt;/p><p><b>  );</b></p><p>  create table 借書信息表</p><p><b>  (</b></p><p>  借書編號 int IDENTITY not null primary key,</p><p>  圖書編號 cha

28、r(20) not null foreign key(圖書編號) references 圖書信息表(編號),</p><p>  讀者編號 char(20) not null foreign key(讀者編號) references 讀者表(編號),</p><p>  借書日期 datetime not null,</p><p>  應還書日期 datetime

29、 not null,</p><p>  還書日期 datetime,</p><p>  續(xù)借次數(shù) int not null</p><p><b>  );</b></p><p><b>  第5章系統(tǒng)實現(xiàn)</b></p><p><b>  前臺實現(xiàn)<

30、/b></p><p><b>  主頁</b></p><p><b>  個人信息界面</b></p><p><b>  檢索</b></p><p><b>  借閱情況</b></p><p><b>  

31、后臺實現(xiàn)</b></p><p><b>  借書</b></p><p><b>  還書</b></p><p><b>  圖書管理</b></p><p><b>  讀者類型管理</b></p><p><

32、;b>  讀者管理</b></p><p><b>  優(yōu)缺點及自我評價</b></p><p>  優(yōu)點:這個學生圖書管理系統(tǒng)能夠準確表示圖書的借閱,歸還,預約。管理員也能夠很好地掌握此圖書管理系統(tǒng)的用法。</p><p>  缺點:現(xiàn)此系統(tǒng)最大的缺點就是借閱者的界面還不夠吸引,不夠漂亮,還有沒有對讀者的借閱實現(xiàn)了簡單的統(tǒng)計

33、,沒有進行排名等功能。</p><p>  自我評價:通過這次的數(shù)據(jù)庫課程設計,我更了解數(shù)據(jù)庫的重要性了,學習到不同的東西是這次課程設計的最大收獲,雖然遇到了很多的困難,但是通過與別人的討論,交流,也能夠解決問題,所以在接下來的實踐,我會更加努力地學習,不斷使自己進步,這樣才能夠充實自己。</p><p><b>  參考文獻</b></p><p

34、> ?。?)《數(shù)據(jù)庫原理及設計》 陶宏才編 清華大學出版社</p><p> ?。?)《SQL Server 2000 編程員指南》李香敏編 北京希望電子出版社</p><p>  (3)《軟件需求分析》 Swapna Kishore編 機械工業(yè)出版社</p><p> ?。?)《數(shù)據(jù)庫系統(tǒng)概論》 王珊 薩師煊</p><p> ?。?/p>

35、5)JDK 的 src 和 Docs </p><p>  (6)《 Thinking in Java 》 </p><p> ?。?)《 Java 實例技術手冊》 David Flanagan</p><p>  (8)《 Effective Java 》</p><p> ?。?)《 瘋狂Java講義 》</p>&l

36、t;p>  創(chuàng)建表和存儲過程的sql語句</p><p>  create table 讀者類型表</p><p><b>  (</b></p><p>  身份 char(20) primary key,</p><p>  可借冊數(shù) int not null,</p><p>  可

37、續(xù)借次數(shù) int not null,</p><p>  可借天數(shù) int not null</p><p><b>  );</b></p><p>  create table 圖書基本信息表</p><p><b>  (</b></p><p>  ISBN char

38、(20) primary key,</p><p>  書名 char(20) not null,</p><p>  版次 char(20) not null,</p><p>  類型 char(20) not null,</p><p>  作者 char(20) not null,</p><p>  出版社

39、 char(20) not null,</p><p>  價格 float not null,</p><p>  現(xiàn)存量 int not null,</p><p>  庫存總量 int not null</p><p><b>  );</b></p><p>  create table

40、 讀者表</p><p><b>  (</b></p><p>  編號 char(20) not null primary key,</p><p>  密碼 varchar(20) not null,</p><p>  姓名 char(20) not null,</p><p>  身份

41、 char(20) not null foreign key (身份) references 讀者類型表(身份),</p><p>  性別 char(2) not null check (性別 in('男','女')),</p><p>  聯(lián)系方式 char(12) not null,</p><p>  注冊時間 datetim

42、e not null,</p><p>  有效期 datetime not null,</p><p>  借書數(shù)量 int not null,</p><p>  是否掛失 bit not null,</p><p><b>  );</b></p><p>  create table 圖書

43、信息表</p><p><b>  (</b></p><p>  編號 char(20) not null primary key,</p><p>  ISBN char(20) not null foreign key(ISBN) references 圖書基本信息表(ISBN),</p><p>  入庫時間 d

44、atetime not null</p><p><b>  );</b></p><p>  create table 借書信息表</p><p><b>  (</b></p><p>  借書編號 int IDENTITY not null primary key,</p>&l

45、t;p>  圖書編號 char(20) not null foreign key(圖書編號) references 圖書信息表(編號),</p><p>  讀者編號 char(20) not null foreign key(讀者編號) references 讀者表(編號),</p><p>  借書日期 datetime not null,</p><p>

46、;  應還書日期 datetime not null,</p><p>  還書日期 datetime,</p><p>  續(xù)借次數(shù) int not null</p><p><b>  );</b></p><p>  create table 圖書丟失表</p><p><b> 

47、 (</b></p><p>  丟失編號 int IDENTITY(1,1) not null primary key,</p><p>  圖書編號 char(20) not null ,</p><p>  讀者編號 char(20) not null,</p><p>  償還金額 float not null,</

48、p><p>  操作時間 datetime not null</p><p><b>  );</b></p><p>  create table 圖書注銷表</p><p><b>  (</b></p><p>  注銷編號 int IDENTITY(1,1) not nu

49、ll primary key,</p><p>  圖書編號 char(20) not null ,</p><p>  ISBN char(20) not null foreign key(ISBN) references 圖書基本信息表(ISBN),</p><p>  注銷時間 datetime not null</p><p><

50、;b>  );</b></p><p>  create table 圖書預約表</p><p><b>  (</b></p><p>  預約編號 int IDENTITY(1,1) primary key,</p><p>  圖書編號 char(20) foreign key (圖書編號) re

51、ferences 圖書信息表(編號),</p><p>  讀者編號 char(20) foreign key(讀者編號) references 讀者表(編號),</p><p>  預約時間 datetime not null</p><p><b>  )</b></p><p>  create proc borr

52、ow @讀者編號 char(20),@圖書編號 char(20),@return int output</p><p><b>  as</b></p><p><b>  begin</b></p><p>  declare @ISBN char(20);</p><p>  declare @

53、可借天數(shù) int;</p><p>  select @可借天數(shù)=可借天數(shù) from 讀者類型表,讀者表 where 讀者類型表.身份 =讀者表.身份 and 編號=@讀者編號;</p><p>  select @ISBN=ISBN from 圖書信息表 where 編號=@圖書編號;</p><p>  set @return = -1;</p>

54、<p>  if not exists(select * from 圖書預約表 where 圖書編號=@圖書編號 and 讀者編號!=@讀者編號 and 最遲借閱期 >= GETDATE())</p><p>  and not exists (select * from 借書信息表 where 圖書編號 = @圖書編號 and 還書日期 is null)</p><p&g

55、t;  and ((select 借書數(shù)量 from 讀者表 where 編號=@讀者編號)<=(select 可借冊數(shù) from 讀者類型表,讀者表 where 讀者類型表.身份 =讀者表.身份 and 編號=@讀者編號)) </p><p>  and((select 現(xiàn)存量 from 圖書基本信息表 where ISBN =@ISBN)>=1)</p><p><b

56、>  begin</b></p><p>  set xact_abort on</p><p>  begin tran</p><p>  insert 借書信息表 values(@圖書編號,@讀者編號,GETDATE(),dateadd(day,@可借天數(shù),GETDATE()),null,0);</p><p>  u

57、pdate 讀者表 set 借書數(shù)量=借書數(shù)量+1 where 編號=@讀者編號;</p><p>  update 圖書基本信息表 set 現(xiàn)存量=現(xiàn)存量-1 where ISBN=@ISBN;</p><p>  delete from 圖書預約表 where 讀者編號=@讀者編號 and 圖書編號=@圖書編號;</p><p>  set @return =

58、0;</p><p>  commit tran</p><p><b>  end</b></p><p><b>  end</b></p><p>  create proc returnbook @讀者編號 char(20),@圖書編號 char(20),@return int output

59、</p><p><b>  as</b></p><p><b>  begin </b></p><p>  declare @ISBN char(20);</p><p>  select @ISBN=ISBN from 圖書信息表 where 編號=@圖書編號;</p><

60、;p>  set @return = -1;</p><p>  if exists (select * from 借書信息表 where 圖書編號=@圖書編號 and 讀者編號=@讀者編號 and 還書日期 is null)</p><p><b>  begin</b></p><p>  set xact_abort on</

61、p><p>  begin tran</p><p>  update 借書信息表 set 還書日期=GETDATE() where 圖書編號=@圖書編號 and 讀者編號=@讀者編號 and 還書日期 is null;</p><p>  update 讀者表 set 借書數(shù)量= 借書數(shù)量-1 where 編號=@讀者編號;</p><p> 

62、 update 圖書基本信息表 set 現(xiàn)存量 = 現(xiàn)存量+1 where ISBN =@ISBN;</p><p>  set @return = 0;</p><p>  commit tran</p><p><b>  end</b></p><p><b>  end</b></p&

63、gt;<p>  create proc reserve @讀者編號 char(20),@圖書編號 char(20)</p><p><b>  as </b></p><p><b>  begin</b></p><p>  declare @basetime datetime;</p>&

64、lt;p>  if exists(select * from 借書信息表 where 圖書編號 = @圖書編號 and 還書日期 is null)</p><p>  select @basetime=應還書日期 from 借書信息表 where 圖書編號 = @圖書編號 and 還書日期 is null;</p><p><b>  else</b><

65、;/p><p>  set @basetime = getdate();</p><p>  if not exists(select * from 圖書預約表 where 圖書編號=@圖書編號 and 最遲借閱期 >= GETDATE())</p><p>  insert 圖書預約表 values(@圖書編號,@讀者編號,GETDATE(),DATEADD(d

66、ay,7,@basetime));</p><p><b>  end</b></p><p>  create proc delbook @編號 char(20),@return int output</p><p><b>  as</b></p><p><b>  begin<

67、;/b></p><p>  set @return = -1;</p><p>  if exists(select * from 圖書信息表 where 編號=@編號)</p><p><b>  begin</b></p><p>  begin tran</p><p>  upda

68、te 讀者表 set 借書數(shù)量=借書數(shù)量-1 where 編號 =(select 讀者編號 from 借書信息表 where 圖書編號=@編號 and 還書日期 is null);</p><p>  update 圖書基本信息表 set 庫存總量=庫存總量-1 where ISBN = (select ISBN from 圖書信息表 where 編號=@編號);</p><p>  if

69、 not exists(select * from 借書信息表 where 圖書編號=@編號 and 還書日期 is null)</p><p>  update 圖書基本信息表 set 現(xiàn)存量=現(xiàn)存量-1 where ISBN = (select ISBN from 圖書信息表 where 編號=@編號);</p><p>  insert into 圖書注銷表 select * fro

70、m 圖書信息表 where 編號=@編號;</p><p>  delete from 圖書信息表 where 編號=@編號</p><p>  set @return = 0;</p><p>  commit tran</p><p><b>  end</b></p><p><b&g

溫馨提示

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

評論

0/150

提交評論