數(shù)據(jù)庫課程設(shè)計(jì)--圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  《企業(yè)中小型數(shù)據(jù)庫系統(tǒng)開發(fā)能力實(shí)訓(xùn)》</p><p><b>  報(bào)告</b></p><p>  設(shè)計(jì)題目: 圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì) </p><p>  系 部: 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  年 級(jí): 2

2、012級(jí) 專業(yè)班級(jí): 軟件121(對(duì)口)</p><p>  姓 名: 學(xué) 號(hào) </p><p>  設(shè) 計(jì) 時(shí) 間: 2013.6.8-2013.6.14 </p><p><b>  目的</b></p><p>  通過本次實(shí)

3、訓(xùn),運(yùn)用數(shù)據(jù)庫原理及應(yīng)用課程的基本知識(shí)構(gòu)建一個(gè)可用的數(shù)據(jù)庫,通過實(shí)現(xiàn),加強(qiáng)對(duì)數(shù)據(jù)庫的認(rèn)識(shí)與理解。</p><p>  1.掌握在分析用戶需求的基礎(chǔ)上,使用SQL Server 2005設(shè)計(jì)符合實(shí)際應(yīng)用的數(shù)據(jù)庫的方法和步驟。</p><p>  2.掌握數(shù)據(jù)庫及其相應(yīng)對(duì)象的創(chuàng)建方法。</p><p><b>  要求</b>&

4、lt;/p><p>  使用用SQL Server 2005建立某個(gè)管理系統(tǒng)的數(shù)據(jù)庫,其中要求包含所學(xué)的其他的數(shù)據(jù)庫對(duì)象,使其能夠完成一定的功能。</p><p>  1.建立5張以上的用戶表,表之間有一定聯(lián)系,以保證參照完整性;</p><p>  2.表中某些列的值要唯一但允許空值,某些列的值要唯一而且不允許空值;</p><

5、p>  3.給表上建立兩個(gè)以上的約束(類型、條件等自定),使表中的某些列滿足一定的條件; </p><p>  4.給經(jīng)常查詢的列建立一個(gè)索引;</p><p>  5.建立兩張以上的視圖,使用戶能查看部分?jǐn)?shù)據(jù); </p><p>  6.建立至少三個(gè)觸發(fā)器、兩個(gè)存儲(chǔ)過程加強(qiáng)表之間的數(shù)據(jù)完整性、一致性約束;</p><p><b&

6、gt;  7.創(chuàng)建三個(gè)游標(biāo);</b></p><p>  8.寫出不少于6個(gè)SELECT語句(其中要有不少于2個(gè)的嵌套查詢),并要附上題目和查詢結(jié)果;</p><p>  9.寫出不少于4個(gè)的數(shù)據(jù)更新語句;</p><p>  10.寫出實(shí)訓(xùn)過程中所涉及的知識(shí)點(diǎn)及難點(diǎn),碰到的問題和解決辦法以及實(shí)訓(xùn)體會(huì)。 </p><p><

7、b>  步驟</b></p><p><b>  1.需求分析</b></p><p>  (1)待開發(fā)系統(tǒng)的一般概述 : </p><p>  根據(jù)校園的實(shí)際情況,著眼于未來發(fā)展,建成符合標(biāo)準(zhǔn)化協(xié)議、通用性較強(qiáng)、實(shí)用的系統(tǒng),以提高圖書信息的現(xiàn)代化管理水平,實(shí)現(xiàn)信息資源的共享。圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫數(shù)據(jù)管理

8、新模式。在對(duì)圖書、讀者的管理,其實(shí)是對(duì)圖書、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無疑會(huì)為管理者對(duì)圖書管理系統(tǒng)提供極大的幫助。使用該系統(tǒng)之后,圖書館管理人員可以管理讀者的登記、圖書的購入、借出、歸還以及注銷等;還可以查詢某位讀者、某本圖書的借閱情況,對(duì)當(dāng)前借閱情況給出一些統(tǒng)計(jì),給出統(tǒng)計(jì)表格,以全面掌握?qǐng)D書的流通情況。 本系統(tǒng)的宗旨是提高圖書管理工作的效率,減少相關(guān)人員的工作量,使學(xué)校的圖書管理工作真正做到科學(xué)、合理的規(guī)劃,系統(tǒng)、高效的實(shí)

9、施。</p><p>  (2)能夠?qū)崿F(xiàn)對(duì)讀者信息的查詢、編輯和修改操作。</p><p><b>  2.概念結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  圖1-6 E-R圖</b></p><p><b>  3.邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p>

10、;  通過E-R圖轉(zhuǎn)換成的關(guān)系模式如下圖:</p><p><b>  4.物理結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  表1 圖書信息</b></p><p><b>  表2 圖書類型</b></p><p><b>  表3 借閱信息</b>&l

11、t;/p><p><b>  表4 讀者信息</b></p><p><b>  表5 讀者類型</b></p><p><b>  表6 出版社信息</b></p><p><b>  5.數(shù)據(jù)庫的實(shí)施</b></p><p>  (

12、1)存儲(chǔ)過程的創(chuàng)建</p><p><b>  1)</b></p><p>  use library</p><p>  if exists(select name from sysobjects where name='fact'and type='p')</p><p>  dro

13、p proc fact</p><p><b>  go</b></p><p>  create procedure fact</p><p>  @n int,@f int output</p><p><b>  as</b></p><p><b>  if

14、 @n<0</b></p><p>  print'你輸入的是'+cast(@n as varchar(20))+',請(qǐng)輸入非負(fù)數(shù)'</p><p><b>  else</b></p><p><b>  begin</b></p><p>  d

15、eclare @i int</p><p><b>  set @i=1</b></p><p><b>  set @f=1</b></p><p>  while @i<=@n</p><p><b>  begin</b></p><p> 

16、 set @f=@f*@i</p><p>  set @i=@i+1</p><p><b>  end</b></p><p>  print cast(@n as varchar(20))+'的階乘是:'+cast(@f as varchar(20))</p><p><b>  end&

17、lt;/b></p><p><b>  (2)觸發(fā)器的創(chuàng)建</b></p><p><b>  1)</b></p><p>  create trigger up_讀者信息</p><p><b>  on 讀者信息</b></p><p> 

18、 for update</p><p><b>  as</b></p><p>  declare @oldid char(8),@newid char(8)</p><p>  select @oldid=deleted.讀者編號(hào),@newid=inserted.讀者編號(hào)</p><p>  from deleted

19、,inserted where deleted.姓名=inserted.姓名</p><p>  update 借閱信息set 讀者編號(hào)=@newid where 讀者編號(hào)=@oldid</p><p><b>  2)</b></p><p>  create trigger ins_借閱信息on 借閱信息</p><p&

20、gt;  after insert</p><p><b>  as</b></p><p>  if not exists(select * from 讀者信息where 讀者編號(hào)=(select 讀者編號(hào)from inserted))</p><p><b>  begin</b></p><p&g

21、t;  print'如果讀者編號(hào)沒有在讀者信息表中,則不能插入該記錄'</p><p>  rollback transaction</p><p><b>  end</b></p><p><b> ?。?)視圖的創(chuàng)建</b></p><p><b>  1)</

22、b></p><p>  use library</p><p><b>  go</b></p><p>  create view tushu</p><p><b>  as</b></p><p>  select 圖書編號(hào),書名,類別</p>&

23、lt;p><b>  from 圖書信息</b></p><p>  where 圖書編號(hào)='TK0002'</p><p><b>  2)</b></p><p>  use library</p><p><b>  go</b></p>

24、<p>  create view tushu1</p><p><b>  as</b></p><p>  select 圖書編號(hào),書名,類別</p><p><b>  from 圖書信息</b></p><p>  where left(圖書編號(hào),2)='TK'

25、</p><p><b> ?。?)游標(biāo)的創(chuàng)建</b></p><p><b>  1)</b></p><p>  use library</p><p>  declare cursor_biao cursor</p><p>  for select * from 讀者

26、信息where 讀者類型=1</p><p>  open cursor_biao</p><p>  if @@cursor_rows>0</p><p>  print @@cursor_rows</p><p><b>  go</b></p><p>  fetch next fro

27、m cursor_biao</p><p>  while @@fetch_status=0</p><p><b>  begin </b></p><p>  fetch next from cursor_biao</p><p><b>  end</b></p><p&g

28、t;<b>  2)</b></p><p>  use library</p><p>  declare xingbie cursor</p><p>  for select * from 讀者信息where 性別='男'</p><p>  open xingbie</p><

29、;p>  if @@cursor_rows>0 </p><p>  print @@cursor_rows</p><p><b>  go</b></p><p>  fetch next from

30、xingbie</p><p>  while @@fetch_status=0</p><p><b>  begin</b></p><p>  fetch next from xingbie</p><p><b>  end</b></p><p><b>

31、  3)</b></p><p>  use library</p><p>  declare chayue cursor</p><p>  for select * from 圖書類型</p><p>  open chayue</p><p>  if @@cursor_rows>0</

32、p><p>  print @@cursor_rows</p><p><b>  go</b></p><p>  fetch next from chayue</p><p>  while @@fetch_status=0</p><p><b>  begin</b>&l

33、t;/p><p>  fetch next from chayue</p><p><b>  end</b></p><p>  6.數(shù)據(jù)庫的運(yùn)行與維護(hù)</p><p><b>  (1)select</b></p><p>  1)用select查詢類別='計(jì)算機(jī)&#

34、39;的圖書編號(hào)和書名</p><p>  select 圖書編號(hào),書名</p><p><b>  from 圖書信息</b></p><p>  where 類別='計(jì)算機(jī)'</p><p>  2) select的嵌套</p><p><b>  select *&

35、lt;/b></p><p><b>  from 讀者信息</b></p><p>  where 讀者類型in(select 讀者類型from 讀者類型where 讀者類型='1')</p><p> ?。?)嵌套u(yù)pdate查詢</p><p>  use library</p>

36、<p><b>  go</b></p><p>  update 借閱信息set 圖書類別='設(shè)計(jì)' where 讀者編號(hào)in(select 讀者編號(hào)</p><p><b>  from 讀者信息</b></p><p>  where 讀者編號(hào)='1009')</p

37、><p>  (3)用insert語句向“讀者信息”表中插入新的數(shù)據(jù)行。</p><p>  use library</p><p>  insert into 讀者信息 values('1011','趙立立','女','藝術(shù)學(xué)院','',2,2)</p><p> 

38、 (4)用delete語句刪除“讀者信息”表中 讀者編號(hào)=’1010’的讀者信息。</p><p>  use library</p><p><b>  go</b></p><p>  delete from 讀者信息where 讀者編號(hào)='1010'</p><p><b>  總結(jié)<

39、;/b></p><p>  在做圖書管理系統(tǒng)的過程中,操作時(shí)難免會(huì)遇到一些難以解決的問題,在寫T-SQL語句時(shí),對(duì)觸發(fā)器的創(chuàng)建不是很熟練,在課余時(shí)間會(huì)認(rèn)真學(xué)習(xí)自己不足的地方,以至完全學(xué)會(huì)。在操作的過程中,遇到的一些問題 ,同過仔細(xì)看書,還有通過問同學(xué)之后,問題成功解決。</p><p><b>  存儲(chǔ)過程</b></p><p>  

40、use library</p><p><b>  go</b></p><p>  create proc pro_讀者信息</p><p><b>  as</b></p><p>  select 讀者編號(hào),姓名,性別,單位</p><p><b>  fro

41、m 讀者信息</b></p><p>  where left(讀者編號(hào),3)='100'</p><p><b>  go</b></p><p><b>  觸發(fā)器</b></p><p>  create trigger del_xinxi </p>

42、<p><b>  on 讀者信息</b></p><p>  for delete</p><p><b>  as </b></p><p>  declare @duzhebianhao char</p><p>  select @duzhebianhao=讀者編號(hào)from del

43、eted</p><p>  if @duzhebianhao='1003'</p><p><b>  begin</b></p><p>  rollback transaction</p><p><b>  end</b></p><p><b&

44、gt;  視圖</b></p><p>  use library</p><p><b>  go</b></p><p>  create view shuru</p><p><b>  as</b></p><p>  select 圖書編號(hào),書名,類別,

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論