數(shù)據(jù)庫課程設計報告---圖書管借還管理信息系統(tǒng)數(shù)據(jù)庫_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  課程設計題目:圖書管借還管理信息系統(tǒng)數(shù)據(jù)庫</p><p>  2009年 8 月 26 日</p><p><b>  目錄</b></p><p>  封面………………………………………………………………………1</p

2、><p>  目錄………………………………………………………………………2</p><p>  一、實驗題目……………………………………………………………3</p><p>  二、實驗時間與地點……………………………………………………3</p><p>  三、實驗目的……………………………………………………………3</p>&l

3、t;p>  四、實驗要求與內(nèi)容……………………………………………………3</p><p>  (一)實驗要求………………………………………………………3</p><p>  (二)實驗內(nèi)容………………………………………………………3</p><p>  五、實現(xiàn)思路……………………………………………………………4</p><p>  (

4、一)系統(tǒng)需求分析…………………………………………………4</p><p>  (二)數(shù)據(jù)流程圖……………………………………………………5</p><p>  六、實現(xiàn)過程……………………………………………………………6</p><p>  (一)數(shù)據(jù)庫需求分析………………………………………………6</p><p>  (二)概念結(jié)構設計………

5、…………………………………………7</p><p>  1、局部E-R圖………………………………………………7</p><p>  2、全局E-R圖………………………………………………8</p><p>  (三)邏輯結(jié)構設計…………………………………………………9</p><p>  (四)物理結(jié)構設計…………………………………………………

6、9</p><p>  (五)數(shù)據(jù)庫實施……………………………………………………9</p><p>  七、實驗總結(jié)……………………………………………………………19</p><p>  八、心得體會……………………………………………………………19</p><p>  附錄………………………………………………………………………21</

7、p><p><b>  一、實驗題目</b></p><p>  圖書管借還管理信息系統(tǒng)數(shù)據(jù)庫</p><p><b>  二、實驗時間、地點</b></p><p>  時間:2009年8月24日——2009年8月27日</p><p>  地點:軟件樓501、503 <

8、/p><p><b>  三、實驗目的</b></p><p>  通過本次課程設計,讓學生綜合運用所學的關系數(shù)據(jù)庫原理知識解決實際問題,進一步掌握數(shù)據(jù)庫原理的相關理論和數(shù)據(jù)庫的設計實現(xiàn)過程,進一步提高學生的分析問題和解決問題的能力以及學生的接收能力。</p><p><b>  四、實驗要求與內(nèi)容</b></p>

9、<p><b>  (一)實驗要求:</b></p><p>  1、自己獨立完成,最終提交課程設計報告和實驗成果。</p><p>  2、課程設計報告格式:封面、題目、時間地點、要求、內(nèi)容、詳細步驟和過程、總結(jié)。</p><p>  3、指定時間必須在實驗機房上機。</p><p>  4、最終成績包括

10、平時成績(50%)和最終考核成績(50%)。</p><p>  5、實驗設計內(nèi)容必須以老師指定的題目為準,老師指定的題目為最終檢查的依據(jù)。</p><p><b>  (二)實驗內(nèi)容:</b></p><p>  1、對各個系統(tǒng)進行系統(tǒng)功能需求分析。</p><p>  2、數(shù)據(jù)庫設計分析階段,進行詳細的數(shù)據(jù)庫需求分析

11、,進行概念數(shù)據(jù)庫的設計,畫出數(shù)據(jù)庫的E-R圖(局部和整體E-R圖)。</p><p>  3、設計出詳細的邏輯數(shù)據(jù)庫結(jié)構,將各個實體和聯(lián)系轉(zhuǎn)化為相應的二維表即關系模式,指定各個關系的主關鍵字和外部關鍵字,并對各個關系的約束加以限定。</p><p>  4、通過企業(yè)管理器或是查詢分析器實現(xiàn)各個二維關系(建議最好用SQL代碼實現(xiàn)),要求建立相關的索引。</p><p>

12、;  5、根據(jù)系統(tǒng)功能需求設計相應的查詢視圖。</p><p>  6、要求根據(jù)系統(tǒng)功能需求建立存儲過程。</p><p>  7、根據(jù)功能需求建立相應的觸發(fā)器以保證數(shù)據(jù)的一致性。</p><p>  8、通過建立用戶和權限分配實現(xiàn)數(shù)據(jù)庫一定的安全性,考慮數(shù)據(jù)庫的備份與恢復(此內(nèi)容選作)。</p><p><b>  五、實現(xiàn)思路&

13、lt;/b></p><p>  (一)系統(tǒng)需求分析:</p><p>  圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書報表給借閱者查看確認;圖書館管理人員的功能最為復雜,包括對工作人員、圖書

14、借閱者、圖書進行管理和維護,及系統(tǒng)狀態(tài)的查看、維護并生成催還圖書報表。</p><p>  圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進行本人借書情況的查詢和維護部分個人信息。一般情況下,圖書借閱者只應該查詢和維護本人的借書情況和個人信息,若查詢和維護其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖

15、書借閱者的要求,還保護了圖書借閱者的個人隱私。</p><p>  圖書館工作人員有修改圖書借閱者借書和還書記錄的權限,所以需對工作人員登陸本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應的報表給用戶查看和確認。</p><p>  圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情

16、況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時,應實現(xiàn)對該圖書借閱者借閱記錄的級聯(lián)刪除。并且還應具有生成催還圖書報表,并打印輸出的功能。</p><p

17、><b>  (二)數(shù)據(jù)流程圖:</b></p><p>  數(shù)據(jù)流程圖是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。</p><p>  系統(tǒng)的數(shù)據(jù)流程圖如圖1所示,所有數(shù)據(jù)由圖書管理員輸入。</p><p>  圖1 系統(tǒng)數(shù)據(jù)流程圖</p><

18、p><b>  六、實現(xiàn)過程</b></p><p>  (一)數(shù)據(jù)庫需求分析</p><p>  根據(jù)這個系統(tǒng)所要實現(xiàn)的目的和任務,建立了八張表:管理員、藏書室、圖書類別、圖書信息表、用戶信息表、借書信息表、還書信息表、罰款信息表。</p><p>  管理員表包括:管理員編號、管理員名、管理員級別。</p><p&

19、gt;  藏書室表包括:藏書室編號、藏書室名稱、管理員編號。</p><p>  圖書類別表包括:類型編號、類型名稱、藏書室編號。</p><p>  圖書信息表包括:圖書編號、圖書名稱、作者、單價、類型編號。借出狀態(tài)、出版社、出版日期。</p><p>  用戶信息表包括:用戶號、用戶名、有效證件類型、罰款總金額、借書數(shù)量。</p><p>

20、;  借書信息表包括:用戶號、圖書編號、是否續(xù)借、借書日期。</p><p>  還書信息表包括:用戶號、圖書編號、還書日期。</p><p>  罰款信息表包括:用戶號、圖書編號、罰款日期、罰款金額。</p><p>  (二)概念結(jié)構設計(畫出數(shù)據(jù)庫的E-R圖局部和整體E-R圖)</p><p><b>  1、局部E-R圖&l

21、t;/b></p><p><b>  11</b></p><p><b>  1</b></p><p><b>  n</b></p><p>  圖2 管理信息局部E-R圖</p><p>  m

22、 n</p><p><b>  m</b></p><p><b>  n</b></p><p>  圖3 用戶借還書局部E-R圖</p><p><b>  2、全局E-R圖</b></p><p><b>  1

23、1</b></p><p><b>  1</b></p><p>  1 m</p><p>  m n m</p><p>  圖4 全局E-R圖</p><p>  (三)邏輯數(shù)據(jù)

24、庫結(jié)構設計</p><p><b>  關系模式:</b></p><p>  管理員(管理員編號,管理員名,管理員級別)</p><p>  藏書室(藏書室編號,藏書室名稱,管理員編號)</p><p>  圖書類別(類別編號,類別名稱,藏書室編號)</p><p>  圖書信息表(圖書編號,圖

25、書名稱,作者,單價,類別編號,借出狀態(tài),出版社,出版日期)</p><p>  用戶信息表(用戶號,用戶名,有效證件類型,罰款總金額,借書數(shù)量)</p><p>  借書信息表(用戶名,圖書編號,是否續(xù)借,借書日期)</p><p>  還書信息表(用戶號,圖書編號,還書日期)</p><p>  罰款信息表(用戶號,圖書編號,罰款日期,罰款

26、金額)</p><p><b>  (四)物理結(jié)構設計</b></p><p>  建立圖書信息表圖書名稱索引</p><p>  create index/*索引*/ number_inx</p><p>  on 圖書信息表(圖書名稱 asc)</p><p><b>  (五)數(shù)據(jù)

27、庫實施</b></p><p>  根據(jù)系統(tǒng)功能需求設計了相關視圖:返回圖書管現(xiàn)存圖書信息視圖(book_information)、返回用戶借書的具體信息視圖(user_book_information)、顯示用戶罰款總金額視圖(user_money_information)、顯示還書信息視圖(book_back)。代碼如下:</p><p>  --視圖1 返回圖書管現(xiàn)存圖

28、書信息</p><p>  create view book_information</p><p>  (圖書名稱,作者,出版社,所屬類型,所屬藏書室,單價)</p><p><b>  as </b></p><p>  select 圖書名稱,作者,出版社,類型名稱,藏書室名稱,單價</p><

29、;p>  from 圖書信息表 join 圖書類別 join 藏書室</p><p>  on (藏書室.藏書室編號=圖書類別.藏書室編號)</p><p>  on (圖書信息表.類型編號=圖書類別.類型編號)</p><p>  --視圖2 返回用戶借書的具體信息</p><p>  create view user_book_i

30、nformation</p><p>  (用戶號,用戶名,圖書名稱,借書日期)</p><p><b>  as</b></p><p>  select 借書信息表.用戶號,用戶名,圖書名稱,借書日期</p><p>  from 用戶信息表 join 借書信息表 join 圖書信息表</p><

31、p>  on 圖書信息表.圖書編號=借書信息表.圖書編號</p><p>  on 借書信息表.用戶號=用戶信息表.用戶號</p><p>  --視圖3 顯示用戶罰款總金額</p><p>  create view user_money_information</p><p>  (用戶號,用戶名,罰款金額)</p>

32、<p><b>  as</b></p><p>  select 用戶號,用戶名,罰款總金額</p><p>  from 用戶信息表</p><p>  where 罰款總金額>0</p><p>  --視圖4 顯示還書信息</p><p>  create view b

33、ook_back</p><p>  (圖書編號,圖書名稱,所屬分類)</p><p><b>  as</b></p><p>  select 還書統(tǒng)計表.圖書編號,還書統(tǒng)計表.圖書編號,類型名稱</p><p>  from 還書統(tǒng)計表 join 圖書信息表 join 圖書類別</p><p&g

34、t;  on 圖書信息表.類型編號=圖書類別.類型編號</p><p>  on 還書統(tǒng)計表.圖書編號=圖書信息表.圖書編號</p><p>  根據(jù)系統(tǒng)功能需求,要求對表進行查詢、插入、修改、刪除等功能,建立了存儲過程:用戶表的修改(ba_user_update)、圖書信息表的修改(ba_book_update)、還書信息表插入操作(ba_back_insert)、用戶表更新(bo_us

35、er_update)、圖書信息表更新(bo_book_update)、借書信息插入(borrow)、圖書續(xù)借(continue_borrow)、罰款信息表插入(money_insert)、還書(back)、圖書查詢(search_book)存儲過程。代碼如下:</p><p>  --還書過程,用戶表的修改 </p><p>  create procedure ba_user_updat

36、e</p><p>  (@usernumber char(8),@money smallint)</p><p><b>  as </b></p><p>  update/*刷新*/ 用戶信息表 set 借書數(shù)量=借書數(shù)量-1,罰款總金額=罰款總金額+@money</p><p>  where 用戶號=@user

37、number</p><p>  --還書過程,圖書信息表的修改</p><p>  create procedure ba_book_update</p><p>  (@booknumber char(8))</p><p><b>  as </b></p><p>  update 圖書信

38、息表 set 借出狀態(tài)='在館'</p><p>  where 圖書編號=@booknumber</p><p>  --還書信息表插入操作</p><p>  create procedure ba_back_insert --修改還書統(tǒng)計表</p><p>  (@usernumber char(8),@booknum

39、ber char(8))</p><p><b>  as</b></p><p>  declare @date char(10)</p><p>  select @date=getdate()</p><p>  insert into 還書統(tǒng)計表</p><p>  values(@us

40、ernumber,@booknumber,@date)</p><p>  --用戶表更新存儲過程</p><p>  create procedure bo_user_update</p><p>  (@usernumber char(8))</p><p><b>  as</b></p><p

41、>  update 用戶信息表 set 借書數(shù)量=借書數(shù)量+1</p><p>  where 用戶號=@usernumber</p><p>  --圖書信息表更新存儲器</p><p>  create procedure bo_book_update</p><p>  (@booknumber char(8))</p&g

42、t;<p><b>  as </b></p><p>  update 圖書信息表 set 借出狀態(tài)='借出'</p><p>  where 圖書編號=@booknumber</p><p>  --借書信息插入存儲過程</p><p>  create procedure borrow

43、</p><p>  (@usernumber char(8),@booknumber char(8))</p><p><b>  as</b></p><p>  declare @sum int --自定義一個局部變量 </p><p>  if @usernumber is null</p>&l

44、t;p><b>  begin </b></p><p>  print '請輸入用戶號!'</p><p><b>  return </b></p><p><b>  end</b></p><p>  if not exists(select *

45、from 用戶信息表 where 用戶號=@usernumber)</p><p><b>  begin</b></p><p>  print '不存在該用戶'+@usernumber+',請確定您輸入的用戶號'</p><p><b>  return </b></p>

46、<p><b>  end</b></p><p>  select @sum=借書數(shù)量 from 用戶信息表 where 用戶號=@usernumber</p><p><b>  if @sum=4</b></p><p><b>  begin </b></p><

47、p>  print '該用戶借書已滿,不能繼續(xù)借書'</p><p><b>  return</b></p><p><b>  end</b></p><p>  if not exists (select *from 圖書信息表 where 圖書編號=@booknumber)</p>

48、<p><b>  begin</b></p><p>  print '該圖書編號不存在,請核實!'</p><p><b>  return</b></p><p><b>  end</b></p><p>  insert into 借書信

49、息表(用戶號,圖書編號,是否續(xù)借)</p><p>  values (@usernumber,@booknumber,'否') </p><p>  print '借書成功'</p><p><b>  --圖書續(xù)借</b></p><p>  create procedure cont

50、inue_borrow</p><p>  (@booknumber char(8))</p><p><b>  as</b></p><p>  declare @continue char(10)</p><p>  declare @borrowdate datetime</p><p>

51、  if @booknumber is null</p><p><b>  begin</b></p><p>  print '請輸入圖書編號'</p><p><b>  return </b></p><p><b>  end</b></p>

52、;<p>  if not exists (select * from 借書信息表 where 圖書編號=@booknumber)</p><p><b>  begin</b></p><p>  print '該圖書編號不存在,請確認您所輸入的圖書編號'</p><p><b>  return &l

53、t;/b></p><p><b>  end</b></p><p>  select @continue=是否續(xù)借,@borrowdate=借書日期 from 借書信息表 where 圖書編號=@booknumber</p><p>  if @continue='否'</p><p><

54、b>  begin</b></p><p>  if (@borrowdate+15)<getdate() --返回當前日期和時間</p><p><b>  begin</b></p><p>  print '圖書借閱超時,不能續(xù)借. 罰款:'</p><p><b>

55、;  return </b></p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  update 借書信息表 set 借書日期=getdate(),是否續(xù)借=&#

56、39;是'</p><p>  where 圖書編號=@booknumber</p><p>  print '續(xù)借成功'</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  e

57、lse</b></p><p>  print '該書已經(jīng)續(xù)借過,不能在續(xù)借'</p><p>  --罰款信息表插入過程</p><p>  create procedure money_insert</p><p>  (@usernumber char(8),@booknumber char(8),@mone

58、y smallint)</p><p><b>  as</b></p><p>  insert into 罰款信息表(用戶號,圖書編號,罰款金額)</p><p>  values(@usernumber,@booknumber,@money)</p><p><b>  --還書過程存儲器</b&g

59、t;</p><p>  create procedure back</p><p>  (@booknumber char(8))</p><p><b>  as</b></p><p>  declare @borrowdate char(10)</p><p>  if @booknumb

60、er is null</p><p><b>  begin</b></p><p>  print '請輸入圖書編號'</p><p><b>  return </b></p><p><b>  end</b></p><p>  

61、if not exists (select * from 借書信息表 where 圖書編號=@booknumber)</p><p><b>  begin</b></p><p>  print '該圖書編號不存在,請確認你所輸入的圖書編號'</p><p><b>  return </b></p

62、><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin </b></p><p>  select @borrowdate=借書日期 from 借書信息表 where 圖書編號=@booknumber</p&

63、gt;<p>  if (@borrowdate+15)<getdate()</p><p><b>  begin</b></p><p>  print '圖書借閱超時,罰款:' </p><p><b>  end</b></p><p>  delete

64、from 借書信息表</p><p>  where 圖書編號=@booknumber</p><p>  print '還書成功'</p><p><b>  end</b></p><p><b>  --圖書查詢</b></p><p>  create

65、 proc search_book</p><p>  (@name varchar(40)=null,@author varchar(30)=null,@publisher varchar(40)=null)</p><p><b>  as</b></p><p>  if @name is null</p><p>

66、;  select @name='%'</p><p>  if @author is null</p><p>  select @author='%'</p><p>  if @publisher is null</p><p>  select @publisher='%'</p&

67、gt;<p><b>  select *</b></p><p>  from 圖書信息表</p><p>  where (圖書名稱 like '%'+@name+'%') and (作者 like '%'+@author+'%') and (出版社 like '%'+@

68、publisher+'%') </p><p>  create procedure show_back_information</p><p><b>  as</b></p><p>  select * from book_back</p><p>  exec show_back_informat

69、ion</p><p>  根據(jù)系統(tǒng)功能需求建立了兩個觸發(fā)器以保證數(shù)據(jù)的一致性:離職表插入觸發(fā)器和升職表插入觸發(fā)器。代碼如下:</p><p>  --借書信息表插入觸發(fā)器</p><p>  create trigger borrow_tigger</p><p>  on 借書信息表 for insert</p><p

70、><b>  as</b></p><p>  declare @booknumber char(8),@usernumber char(8)</p><p>  select @booknumber=圖書編號,@usernumber=用戶號 from inserted</p><p>  execute bo_user_update @

71、usernumber</p><p>  execute bo_book_update @booknumber</p><p>  --借書信息表觸發(fā)器,還書刪除信息</p><p>  create trigger back_trigger --觸發(fā)器</p><p>  on 借書信息表 for delete</p><

72、;p><b>  as</b></p><p>  declare @booknumber char(8),@usernumber char(8),@borrowdate char(10),@fine smallint</p><p>  select @booknumber=圖書編號,@usernumber=用戶號,@borrowdate=借書日期 from

73、deleted</p><p>  select @fine=0</p><p>  if (@borrowdate+15)<getdate()</p><p><b>  begin</b></p><p>  select @fine=datediff(dd,(@borrowdate+15),getdate()

74、)*0.2</p><p>  execute money_insert @usernumber,@booknumber,@fine</p><p><b>  end</b></p><p>  execute ba_user_update @usernumber,@money --調(diào)用存儲過程</p><p> 

75、 execute ba_book_update @booknumber</p><p>  execute ba_back_insert @usernumber,@booknumber</p><p><b>  七、實驗總結(jié)</b></p><p>  在數(shù)據(jù)庫軟件的開發(fā)過程中,數(shù)據(jù)庫的定義是實現(xiàn)良好軟件的基礎,在實際的開發(fā)過程中,開發(fā)人員應

76、該有一份數(shù)據(jù)字典列表,這樣不僅有利于程序設計,而且有利于開發(fā)者之間的交流。</p><p>  在定義字段時既要考慮數(shù)據(jù)輸入的一般值,更要考慮數(shù)據(jù)可能輸入的最大值,以此來確定字段的寬度。</p><p>  在進行數(shù)據(jù)庫設計時,都要考慮數(shù)據(jù)的完整性,一般用約束來實現(xiàn)。約束是數(shù)據(jù)庫設計中使用的概念,它涉及字段的唯一性、關系等等。因此,約束在數(shù)據(jù)庫設計時實現(xiàn),用約束來確保完整性實現(xiàn)起來快速且可

77、以減少代碼的編寫量。在實際使用中,我們使用這種方法來確保數(shù)據(jù)的完整性,當數(shù)據(jù)庫中一個字段的值會隨著另一個字段的值而改變時使用約束。</p><p><b>  八、心得體會</b></p><p>  一般而言,一個實體不能既無主鍵又無外鍵。在E-R 圖中, 處于葉子部位的實體, 可以定義主鍵,也可以不定義主鍵(因為它無子孫), 但必須要有外鍵(因為它有父親)。主鍵與

78、外鍵的設計,在全局數(shù)據(jù)庫的設計中,占有重要地位。當全局數(shù)據(jù)庫的設計完成以后,有個美國數(shù)據(jù)庫設計專家說:“鍵,到處都是鍵,除了鍵之外,什么 也沒有”,這就是他的數(shù)據(jù)庫設計經(jīng)驗之談,也反映了他對信息系統(tǒng)核心(數(shù)據(jù)模型)的高度抽象思想。因為:主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接。</p><p>  另外主鍵是確定數(shù)據(jù)庫中的表的記錄的唯一標識字段,可以是表中的一個字段,也可以是表中的多個字段組成的

79、。一旦確定為主鍵,則該字段不可為空也不可以重復。比如學生表中的學號就可以定義成該表的字段。</p><p>  外鍵的定義是相對于主鍵而言的,比如另有一張成績表,表中也出現(xiàn)了學生表中的對應學號字段,則相對于學生表,學號就是成績表的外鍵。</p><p>  在給定的系統(tǒng)硬件和系統(tǒng)軟件條件下,提高數(shù)據(jù)庫系統(tǒng)的運行效率的辦法是:</p><p>  (1) 在數(shù)據(jù)庫物理

80、設計時,降低范式,增加冗余, 少用觸發(fā)器, 多用存儲過程。</p><p>  (2) 當計算非常復雜、而且記錄條數(shù)非常巨大時(例如一千萬條),復雜計算要先在數(shù)據(jù)庫外面,以文件系統(tǒng)方式用C++語言計算處理完成之后,最后才入庫追加到表中去。這是電信計費系統(tǒng)設計的經(jīng)驗。</p><p>  (3) 發(fā)現(xiàn)某個表的記錄太多,例如超過一千萬條,則要對該表進行水平分割。水平分割的做法是,以該表主鍵PK

81、的某個值為界線,將該表的記錄水平分割為兩個表。若發(fā)現(xiàn)某個表的字段太多,例如超過八十個,則垂直分割該表,將原來的一個表分解為兩個表。</p><p>  (4) 對數(shù)據(jù)庫管理系統(tǒng)DBMS進行系統(tǒng)優(yōu)化,即優(yōu)化各種系統(tǒng)參數(shù),如緩沖區(qū)個數(shù)。</p><p>  (5) 在使用面向數(shù)據(jù)的SQL語言進行程序設計時,盡量采取優(yōu)化算法。</p><p>  總之,要提高數(shù)據(jù)庫的運行

82、效率,必須從數(shù)據(jù)庫系統(tǒng)級優(yōu)化、數(shù)據(jù)庫設計級優(yōu)化、程序?qū)崿F(xiàn)級優(yōu)化,這三個層次上同時下功夫。</p><p><b>  附錄</b></p><p>  ------------------ 1、創(chuàng) 建 數(shù) 據(jù) 庫 ------------------</p><p>  create database 圖書管理系統(tǒng)</p>

83、<p><b>  on</b></p><p>  ( name=library_dat,</p><p>  filename='d:\zym\library.mdf',</p><p>  size=10mb,</p><p>  maxsize=50mb,</p>&l

84、t;p>  filegrowth=5mb)</p><p><b>  log on</b></p><p>  (name=library_log,</p><p>  filename='d:\zym\library.ldf',</p><p><b>  size=5mb,</

85、b></p><p>  maxsize=50mb,</p><p>  filegrowth=5mb)</p><p>  ------------------- 2、創(chuàng) 建 表 ---------------------</p><p>  --(1)圖書分類表</p><p>  create

86、 table 管理員</p><p>  ( 管理員編號 char(3) primary key not null,</p><p>  管理員名 varchar(10) not null,</p><p>  管理員級別 char(2) not null)</p><p>  create table 藏書室</p><

87、p>  (藏書室編號 char(3) primary key not null,</p><p>  藏書室名稱 varchar(30) unique not null,</p><p>  管理員編號 char(3) foreign key references 管理員(管理員編號) not null)</p><p>  create table 圖書類別

88、</p><p>  (類型編號 char(8) primary key,</p><p>  類型名稱 varchar(40) not null,</p><p>  藏書室編號 char(3)foreign key references 藏書室(藏書室編號) not null)</p><p>  --(2)圖書信息表</p>

89、<p>  create table 圖書信息表</p><p>  (圖書編號 char(8) primary key not null,</p><p>  圖書名稱 varchar(30) not null,</p><p>  作者 varchar(30) not null,</p><p>  單價 smallmone

90、y check(單價>0) not null,</p><p>  類型編號 char(8) foreign key references 圖書類別(類型編號),</p><p>  借出狀態(tài) char(8) not null default '在館',</p><p>  出版社 varchar(40) not null,</p>

91、<p>  出版日期 char(20) not null)</p><p>  create table 用戶信息表</p><p>  (用戶號 char(8) primary key,</p><p>  用戶名 varchar(40) not null,</p><p>  有效證件類型 varchar(40) not n

92、ull,</p><p>  罰款總金額 smallint default 0,</p><p>  借書數(shù)量 int check((借書數(shù)量>=0) and (借書數(shù)量<=4)) default 0)</p><p>  --(4)借書信息表</p><p>  create table 借書信息表</p><

93、;p>  (用戶號 char(8) foreign key references 用戶信息表(用戶號),</p><p>  圖書編號 char(8)foreign key references 圖書信息表(圖書編號), </p><p>  是否續(xù)借 char(10) not null,</p><p>  借書日期 char(20) default get

94、date(),</p><p>  primary key(圖書編號,用戶號))</p><p>  --(5)還書信息表</p><p>  create table 還書統(tǒng)計表</p><p>  (用戶號 char(8) foreign key references 用戶信息表(用戶號) not null,</p><

95、;p>  圖書編號 char(8) foreign key references 圖書信息表(圖書編號)not null,</p><p>  還書日期 char(20) not null,</p><p>  primary key(用戶號,圖書編號,還書日期)) </p><p>  --(6)罰款信息表</p><p>  cre

96、ate table 罰款信息表</p><p>  (用戶號 char(8) foreign key references 用戶信息表(用戶號),</p><p>  圖書編號 char(8)foreign key references 圖書信息表(圖書編號), </p><p>  罰款日期 char(20) default getdate(),</p&g

溫馨提示

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

評論

0/150

提交評論