圖書管理系統(tǒng)數(shù)據(jù)庫_第1頁
圖書管理系統(tǒng)數(shù)據(jù)庫_第2頁
圖書管理系統(tǒng)數(shù)據(jù)庫_第3頁
圖書管理系統(tǒng)數(shù)據(jù)庫_第4頁
圖書管理系統(tǒng)數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫原理與應用教程實驗報告數(shù)據(jù)庫分析與設(shè)計 -圖書管理系統(tǒng)一、需求說明要實現(xiàn)一個簡化的圖書管理系統(tǒng),在此圖書管理系統(tǒng)中只涉及學生信息、借閱信息和管理者信息的管理。此系統(tǒng)要求能夠記住書籍的基本信息、學生的信息和管理者的信息。該系統(tǒng)的業(yè)務要求為:u 一名學生可以在不同的日期多次借閱同一本書。u 一名學生可以同時借閱多本不同的圖書。u 一本書可以在不同的時間借給不同的學生。u 一名學生不能在同一天對同一本書借閱多次。u 一名管理員可以同時管理多本圖書。該系統(tǒng)的基本信息包括:u 學生信息:姓名,學號,學院,專業(yè),年級。u 圖書信息:圖書名稱,圖書編號,出版社名稱,出版日期,

2、作者,是否可借。u 管理員信息:管理員姓名,管理員編號。除上述要求外,該系統(tǒng)還需產(chǎn)生如下報表:u 學生借閱圖書信息表:學號,圖書編號,圖書名稱,借閱日期,應歸還日期。u 圖書管理表:管理日期,管理員編號,管理員姓名。二、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計2.1 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是根據(jù)需求分析的結(jié)果產(chǎn)生概念結(jié)構(gòu)設(shè)計的E-R模型。由于這個系統(tǒng)比較簡單,因此這里采用自頂向下的設(shè)計方法。自頂向下設(shè)計的關(guān)鍵是首先要確定系統(tǒng)的核心活動。所謂核心活動就是系統(tǒng)中的其他活動都要圍繞這個活動展開或與此活動密切相關(guān)。確定了核心活動之后,系統(tǒng)就有了可擴展的余地。對于這個圖書管理系統(tǒng),其核心活動是圖書,學生與圖書之間是通過學生借閱

3、圖書發(fā)生聯(lián)系的,管理員與圖書之間是通過管理員管理圖書發(fā)生聯(lián)系的。至此,此系統(tǒng)包含的實體有:u 圖書:用于描述課程的基本信息,用圖書編號標識。u 學生:用于描述學生的基本信息,用學號標識。u 管理員:用于描述管理員的基本信息,用管理員編號標識。由于一名學生可以借閱多本圖書,并且一本書可以在不同時間借給不同的學生。因此,學生與圖書之間是多對多的聯(lián)系。又由于一本圖書可以由多名管理員管理,而且一名管理員可以管理多本圖書。因此,管理員與圖書之間也是多對多的聯(lián)系。其基本E-R模型如圖1所示: 管理員管理 圖書借閱 學生 m n m n 根據(jù)需求分析的結(jié)果,該E-R模型模型中個實體所包含的屬性如下:u 學生

4、:姓名,學號,學院,專業(yè),年級。u 圖書:圖書名稱,圖書編號,出版社名稱,出版日期,作者,是否可借。u 管理員:管理員姓名,管理員編號。各聯(lián)系本身應具有的屬性為:u 借閱:學號,圖書編號,圖書名稱,借閱日期,應歸還日期。u 管理:管理日期,管理員編號,管理員姓名。2.2邏輯結(jié)果設(shè)計這個E-R模型轉(zhuǎn)換出的關(guān)系模式如下,其中主碼用下劃線標識:u 學生 (學號,姓名,學院,專業(yè),年級)u 圖書 (圖書編號,圖書名稱,出版社名稱,出版日期,作者,是否可借)u 管理員 (管理員編號,管理員姓名)u 借閱 (學號,圖書標號,圖書名稱,借閱日期,應歸還日期),其中圖書編號為引用“圖書”關(guān)系模式的外碼;學號為

5、引用“學生”關(guān)系模式的外碼。u 管理 (管理日期,管理員編號,管理員姓名),其中管理員編號為引用“管理員”關(guān)系模式的外碼。(1) 確定各管是模式是否屬于第三范式經(jīng)過分析發(fā)現(xiàn),“學生”、“圖書”、“管理員”、“借閱”和“管理”5個關(guān)系模式中,都不存在部分依賴和傳遞依賴關(guān)系,因此都屬于第三范式。(2) 確定信息的完整性該教學管理系統(tǒng)要產(chǎn)生:學生借閱圖書信息、圖書管理2個報表,分別分析如下:u “學生借閱圖書信息表”包括學號、圖書編號、圖書名稱、借閱日期、應歸還日期。其中“學號”可由“學生”關(guān)系模式得到,“圖書編號”、“圖書名稱”、“借閱日期”、“應歸還日期”可由“借閱”關(guān)系模式得到,因此可以滿足學

6、生借閱圖書信息表的要求。u “圖書管理表”包括管理日期、管理員編號、管理員姓名。其中“管理日期”可由“管理”關(guān)系模式得到,“管理員編號”,“管理員姓名”可由“管理員”關(guān)系模式得到。因此,所有關(guān)系模式滿足所有報表的信息要求。至此,關(guān)系模式設(shè)計完畢。下面給出創(chuàng)建這些關(guān)系表的SQL語句示例,其中的數(shù)據(jù)類型可根據(jù)實際情況調(diào)整,為方便理解,表名、列名均用中文表示。CREATE TABLE 學生表(學號 char(10) PRIMARY KEY,姓名 char(10) NOT NULL ,學院 char(20) NOT NULL ,專業(yè) char(20) NOT NULL ,年級 char(8) NOT

7、NULL )CREATE TABLE 圖書表(圖書編號 char(20) PRIMARY KEY,圖書名稱 char(20) NOT NULL ,出版社名稱 char(20) NOT NULL ,出版日期 datetime NOT NULL ,作者 char(10) NOT NULL )CREATE TABLE管理員表(管理員編號 char(10) PRIMARY KEY,管理員姓名 char(10) NOT NULL )CREATE TABLE借閱表(學號 char(10) NOT NULL ,姓名 char(10) NOT NULL ,圖書編號 char(20) NOT NULL ,圖書名

8、稱 char(20) NOT NULL ,借閱日期 datetime NOT NULL ,應歸還日期 datetime NOT NULL ,PRIMARY KEY (學號,圖書編號),FOREIGN KEY (學號) REFERENCES 學生表 (學號),FOREIGN KEY (圖書編號) REFERENCES 圖書表 (圖書編號)CREATE TABLE管理表(管理日期 datetime NOT NULL ,管理員編號 char(10) NOT NULL ,管理員姓名 char(10) NOT NULL ,PRIMARY KEY (管理日期,管理員編號),FOREIGN KEY (管理員

9、編號) REFERENCES 管理員表 (管理員編號)2.2.2設(shè)計外模式(1) 學生借閱圖書信息表我們將該報表直接用查詢語句的形式生成,將動態(tài)查詢條件作為查詢語句中的數(shù)據(jù)篩選條件。例如,假設(shè)要為大三學生生成借閱圖書情況的報表,則語句如下:SELECT 學號,姓名,圖書名稱FROM 借閱表 WHERE 年級 = 大三(2) 圖書管理表該表可以查詢出在哪一天由哪位管理員借出了哪些圖書,因此,直接用查詢語句生成。SELECT 圖書編號,圖書名稱,管理日期,管理員編號,管理員姓名FROM 借閱表 JOIN 管理表 ON 借閱表.借閱日期 = 管理表.管理日期三、 數(shù)據(jù)庫行為設(shè)計對于數(shù)據(jù)庫應用系統(tǒng)來說

10、,最常用的功能是安全控制功能,數(shù)據(jù)的增、刪、改、查功能以及生成報表的功能。本系統(tǒng)也應包括這些基本的操作。3.1 安全控件任何數(shù)據(jù)庫應用系統(tǒng)都需要安全控件功能,這個圖書管理系統(tǒng)也不例外。假設(shè)將系統(tǒng)的用戶分為如下幾類:u 圖書館系統(tǒng)管理人員:具有系統(tǒng)的全部操作權(quán)限。u 教務部門:具有對學生基本信息、圖書信息和管理員信息的維護權(quán)。u 學生:具有對圖書信息的查詢權(quán)。在實現(xiàn)時,可將每一類用戶定義為一個角色,這樣在授權(quán)時只需對角色授權(quán),而無需對每個具體的用戶授權(quán)。3.2 數(shù)據(jù)操作功能數(shù)據(jù)操作功能包括對這些數(shù)據(jù)的錄入、刪除、修改功能。具體如下:(1) 數(shù)據(jù)錄入包括對這5張表的錄入。只有具有相應權(quán)限的用戶才能

11、錄入相應表中的數(shù)據(jù)。(2) 數(shù)據(jù)刪除包括對這5張表的刪除。只有具有相應權(quán)限的用戶才能刪除相應表中的數(shù)據(jù)。數(shù)據(jù)的刪除要注意表之間的關(guān)聯(lián)關(guān)系。比如在刪除“學生表”中的數(shù)據(jù)之前,應先刪除該學生在“借閱表”中的信息,然后再學生表中刪除該學生,以保證不違反參照完整性約束。另外,在實際執(zhí)行刪除操作之前應該提醒用戶是否真的要刪除數(shù)據(jù),以免發(fā)生誤操作。(3) 數(shù)據(jù)修改當某些數(shù)據(jù)發(fā)生變化或某些數(shù)據(jù)錄入不正確時,應該允許用戶對數(shù)據(jù)庫中的數(shù)據(jù)進行修改,修改數(shù)據(jù)的操作一般是先根據(jù)一定的條件查詢出要修改的記錄,然后在對其中的某些記錄進行修改,修改完成后再回到數(shù)據(jù)庫中。同數(shù)據(jù)的錄入與刪除一樣,只有具有相應權(quán)限的用戶才能修

12、改相應表中的數(shù)據(jù)。(4) 數(shù)據(jù)查詢在數(shù)據(jù)庫應用系統(tǒng)中,數(shù)據(jù)查詢是最常用的功能。數(shù)據(jù)查詢應根據(jù)用戶提出的查詢條件進行,在設(shè)計系統(tǒng)時應首先征求用戶的查詢需求,然后根據(jù)這些需求整理出系統(tǒng)應具有的查詢功能。一般允許所有使用數(shù)據(jù)庫的人都具有查詢數(shù)據(jù)的權(quán)限。本系統(tǒng)提出的查詢要求有:u 根據(jù)學號、學院、專業(yè)等信息查詢學生的基本信息。u 根據(jù)圖書編號查詢圖書的基本信息。u 根據(jù)管理員編號查詢管理員的基本信息。u 統(tǒng)計各個年級學生借書的總數(shù)量。等等。3.3應用程序?qū)崿F(xiàn)3.31語言及DBMS的選擇制作這5個表的數(shù)據(jù)庫使用DBMS的是ACCESS,然后用VB 語言編寫程序代碼,實現(xiàn)程序的各個功能。其中用到了ADO數(shù)

13、據(jù)控件和DataGrid控件。3.32應用程序的編寫(1)學生表VB代碼Private Sub Command1_Click() 添加命令按鈕AdodcStudent.Recordset.AddNew 使添加和刪除按鈕成為不可用狀態(tài)Command1.Enabled = FalseCommand3.Enabled = False 使更新按鈕成為可用狀態(tài)Command4.Enabled = True 清空文本框中顯示的內(nèi)容Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = End SubPrivate Sub Comma

14、nd2_Click() 退出命令按鈕EndEnd SubPrivate Sub Command3_Click() 刪除命令按鈕Dim res As Integerres = MsgBox(確實要刪除此行記錄嗎?, vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶If res = vbYes Then 如確實要刪除AdodcStudent.Recordset.DeleteAdodcStudent.Recordset.MoveNextIf AdodcStudent.Recordset.EOF = True ThenAdodcStudent.Recor

15、dset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command4_Click() 更新命令按鈕 將文本框中的當前值寫入結(jié)果集中相應字段中AdodcStudent.Recordset.Fields(學號) = Trim(Text1.Text)AdodcStudent.Recordset.Fields(姓名) = Trim(Text2.Text)AdodcStudent.Recordset.Fields(學院) = Trim(Text3.Text)AdodcStudent.Recordset.Fields(專業(yè)) = Trim(Text4.Text)Adod

16、cStudent.Recordset.Fields(年級) = Trim(Text5.Text) 使更新生效AdodcStudent.Recordset.Update 使添加和刪除按鈕成為可用狀態(tài)Command1.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub Command5_Click() 上一條命令按鈕AdodcStudent.Recordset.MovePreviousEnd SubPrivate Sub Command6_Click() 下一條命令按鈕AdodcStudent.Recordset.MoveNextEnd

17、Sub(2)圖書表VB代碼Private Sub Command2_Click() 添加命令按鈕AdodcBook.Recordset.AddNew 使添加和刪除按鈕成為不可用狀態(tài)Command2.Enabled = FalseCommand3.Enabled = False 使更新和取消按鈕成為可用狀態(tài)Command4.Enabled = TrueCommand5.Enabled = True 清空文本框中顯示的內(nèi)容Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = End SubPrivate Sub Comma

18、nd3_Click() 刪除命令按鈕Dim res As Integerres = MsgBox(確定要刪除此行記錄?, vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶If res = vbYes Then 如確實要刪除AdodcBook.Recordset.DeleteAdodcBook.Recordset.MoveNextIf AdodcBook.Recordset.EOF = True Then AdodcBook.Recordset.MoveLast End If End IfEnd SubPrivate Sub Command4_Cl

19、ick() 更新命令按鈕 將文本框中的當前值寫入結(jié)果集中相應字段中AdodcBook.Recordset.Fields(圖書編號) = Trim(Text1.Text)AdodcBook.Recordset.Fields(圖書名稱) = Trim(Text2.Text)AdodcBook.Recordset.Fields(出版社名稱) = Trim(Text3.Text)AdodcBook.Recordset.Fields(出版日期) = Trim(Text4.Text)AdodcBook.Recordset.Fields(作者) = Trim(Text5.Text) 使更新生效AdodcBo

20、ok.Recordset.Update 使添加和刪除按鈕成為可用狀態(tài)Command2.Enabled = TrueCommand3.Enabled = True 使取消按鈕成為不可用狀態(tài)Command5.Enabled = FalseEnd SubPrivate Sub Command5_Click()Command2.Enabled = TrueCommand3.Enabled = TrueCommand5.Enabled = FalseEnd SubPrivate Sub Command6_Click() 上一條命令按鈕AdodcBook.Recordset.MovePreviousEnd

21、 SubPrivate Sub Command7_Click() 下一條命令按鈕AdodcBook.Recordset.MoveNextEnd Sub(3)管理員表VB代碼Private Sub Command1_Click() 退出命令按鈕EndEnd SubPrivate Sub Command2_Click() 添加命令按鈕AdodcManager.Recordset.AddNew 使添加和刪除按鈕成為不可用狀態(tài)Command2.Enabled = FalseCommand3.Enabled = False 使更新按鈕成為可用狀態(tài)Command4.Enabled = True 清空文本框

22、中現(xiàn)實的內(nèi)容Text1.Text = Text2.Text = End SubPrivate Sub Command3_Click() 刪除命令按鈕Dim res As Integerres = MsgBox(確實要刪除此行記錄嗎?, vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶If res = vbYes Then 如確實要刪除AdodcManager.Recordset.DeleteAdodcManager.Recordset.MoveNextIf AdodcManager.Recordset.EOF = True ThenAdodcMa

23、nager.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command4_Click() 更新命令按鈕 將文本框中的當前值寫入結(jié)果集中相應字段中AdodcManager.Recordset.Fields(管理員編號) = Trim(Text1.Text)AdodcManager.Recordset.Fields(管理員姓名) = Trim(Text2.Text) 使更新生效AdodcManager.Recordset.Update 使添加和刪除按鈕成為可用狀態(tài)Command2.Enabled = TrueCommand3.Enabled =

24、 TrueEnd SubPrivate Sub Command5_Click() 上一條命令按鈕AdodcManager.Recordset.MovePreviousEnd SubPrivate Sub Command6_Click() 下一條命令按鈕AdodcManager.Recordset.MoveNextEnd Sub(4)借閱表VB代碼Private Sub Command1_Click() 退出命令按鈕EndEnd SubPrivate Sub Command2_Click() 上一條命令按鈕AdodcBorrown.Recordset.MovePreviousEnd SubPri

25、vate Sub Command3_Click() 下一條命令按鈕AdodcBorrown.Recordset.MoveNextEnd SubPrivate Sub Command4_Click() 添加命令按鈕AdodcBorrown.Recordset.AddNew 使添加和刪除按鈕成為不可用狀態(tài)Command4.Enabled = FalseCommand5.Enabled = False 使更新按鈕成為可用狀態(tài)Command6.Enabled = True 清空文本框中現(xiàn)實的內(nèi)容Text1.Text = Text2.Text = Text3.Text = Text4.Text = Te

26、xt5.Text = Text6.Text = End SubPrivate Sub Command5_Click() 刪除命令按鈕Dim res As Integerres = MsgBox(確實要刪除此行記錄嗎?, vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶If res = vbYes Then 如確實要刪除AdodcBorrown.Recordset.DeleteAdodcBorrown.Recordset.MoveNextIf AdodcBorrown.Recordset.EOF = True ThenAdodcBorrown.Re

27、cordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command6_Click() 更新命令按鈕 將文本框中的當前值寫入結(jié)果集中相應字段中AdodcBorrown.Recordset.Fields(學號) = Trim(Text1.Text)AdodcBorrown.Recordset.Fields(姓名) = Trim(Text2.Text)AdodcBorrown.Recordset.Fields(圖書編號) = Trim(Text3.Text)AdodcBorrown.Recordset.Fields(圖書名稱) = Trim(Text4.Te

28、xt)AdodcBorrown.Recordset.Fields(借閱日期) = Trim(Text5.Text)AdodcBorrown.Recordset.Fields(應歸還日期) = Trim(Text6.Text) 使更新生效AdodcBorrown.Recordset.Update 使添加和刪除按鈕成為可用狀態(tài)Command4.Enabled = TrueCommand5.Enabled = TrueEnd Sub(5)管理表VB代碼Private Sub Command1_Click() 退出命令按鈕EndEnd SubPrivate Sub Command2_Click() 添

29、加命令按鈕AdodcManagement.Recordset.AddNew 使添加和刪除按鈕成為不可用狀態(tài)Command2.Enabled = FalseCommand3.Enabled = False 使更新按鈕成為可用狀態(tài)Command4.Enabled = True 清空文本框中現(xiàn)實的內(nèi)容Text1.Text = Text2.Text = Text3.Text = End Sub Private Sub Command3_Click() 刪除命令按鈕Dim res As Integerres = MsgBox(確實要刪除此行記錄嗎?, vbExclamation + vbYesNo +

30、vbDefaultButton2) 提示用戶If res = vbYes Then 如確實要刪除AdodcManagement.Recordset.DeleteAdodcManagement.Recordset.MoveNextIf AdodcManagement.Recordset.EOF = True ThenAdodcManagement.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command4_Click() 更新命令按鈕 將文本框中的當前值寫入結(jié)果集中相應字段中AdodcManagement.Recordset.Fields(

31、管理日期) = Trim(Text1.Text)AdodcManagement.Recordset.Fields(管理員編號) = Trim(Text2.Text)AdodcManagement.Recordset.Fields(管理員姓名) = Trim(Text3.Text) 使更新生效AdodcManagement.Recordset.Update 使添加和刪除按鈕成為可用狀態(tài)Command2.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub Command5_Click() 上一條命令按鈕AdodcManagement.Re

32、cordset.MovePreviousEnd SubPrivate Sub Command6_Click() 下一條命令按鈕AdodcManagement.Recordset.MoveNextEnd Sub3.33應用程序的使用說明為數(shù)據(jù)庫中5個表設(shè)計的VB工程中,其基本類型相似,由于涉及到參照完整性約束,因此這里將重點說明“學生表”和“借閱表”的使用說明,“圖書表”和“管理員表”參照“學生表”,“管理表”參照“借閱表”。(1) 學生表使用說明啟動VB程序,打開“學生表”的工程文件,并運行該程序。1) 單擊“上一條”“下一條”按鈕,移動指針將上下移動到相應的條目。2) 單擊“添加”按鈕,窗體上的文本框控件將清空,可以在文本框中輸入數(shù)據(jù),數(shù)據(jù)將同時顯示在“學生表”的最后一行條目中。3) 單擊“更新”按鈕,數(shù)據(jù)將完整地添加到“學生表”中。4) 要刪

溫馨提示

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

評論

0/150

提交評論