圖書管理系統(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頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

千里之行,始于足下讓知識(shí)帶有溫度。第第2頁/共2頁精品文檔推薦圖書管理系統(tǒng)數(shù)據(jù)庫《數(shù)據(jù)庫原理與應(yīng)用教程》試驗(yàn)報(bào)告

數(shù)據(jù)庫分析與設(shè)計(jì)

圖書管理系統(tǒng)

一、需求說明

要實(shí)現(xiàn)一個(gè)簡化的圖書管理系統(tǒng),在此圖書管理系統(tǒng)中只涉及同學(xué)信息、借閱信息和管理者信息的管理。此系統(tǒng)要求能夠記住書籍的基本信息、同學(xué)的信息和管理者的信息。該系統(tǒng)的業(yè)務(wù)要求為:

一名同學(xué)可以在不同的日期多次借閱同一本書。

一名同學(xué)可以同時(shí)借閱多本不同的圖書。

一本書可以在不同的時(shí)光借給不同的同學(xué)。

一名同學(xué)不能在同一天對(duì)同一本書借閱多次。

一名管理員可以同時(shí)管理多本圖書。

該系統(tǒng)的基本信息包括:

同學(xué)信息:姓名,學(xué)號(hào),學(xué)院,專業(yè),年級(jí)。

圖書信息:圖書名稱,圖書編號(hào),出版社名稱,出版日期,,是否可借。

管理員信息:管理員姓名,管理員編號(hào)。

除上述要求外,該系統(tǒng)還需產(chǎn)生如下報(bào)表:

同學(xué)借閱圖書信息表:學(xué)號(hào),圖書編號(hào),圖書名稱,借閱日期,應(yīng)歸還日期。

圖書管理表:管理日期,管理員編號(hào),管理員姓名。

二、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)

概念結(jié)構(gòu)設(shè)計(jì)

概念結(jié)構(gòu)設(shè)計(jì)是按照需求分析的結(jié)果產(chǎn)生概念結(jié)構(gòu)設(shè)計(jì)的E-R模型。因?yàn)檫@個(gè)系統(tǒng)比較容易,因此這里采納自頂向下的設(shè)計(jì)辦法。自頂向下設(shè)計(jì)的關(guān)鍵是首先要確定系統(tǒng)的核心活動(dòng)。所謂核心活動(dòng)就是系統(tǒng)中的其他活動(dòng)都要圍繞這個(gè)活動(dòng)綻開或與此活動(dòng)密切相關(guān)。確定了核心活動(dòng)之后,系統(tǒng)就有了可擴(kuò)展的余地。對(duì)于這個(gè)圖書管理系統(tǒng),其核心活動(dòng)是圖書,同學(xué)與圖書之間是通過同學(xué)借閱圖書發(fā)生聯(lián)系的,管理員與圖書之間是通過管理員管理圖書發(fā)生聯(lián)系的。至此,此系統(tǒng)包含的實(shí)體有:

圖書:用于描述課程的基本信息,用圖書編號(hào)標(biāo)識(shí)。

同學(xué):用于描述同學(xué)的基本信息,用學(xué)號(hào)標(biāo)識(shí)。

管理員:用于描述管理員的基本信息,用管理員編號(hào)標(biāo)識(shí)。

因?yàn)橐幻瑢W(xué)可以借閱多本圖書,并且一本書可以在不同時(shí)光借給不同的同學(xué)。因此,同學(xué)與圖書之間是多對(duì)多的聯(lián)系。又因?yàn)橐槐緢D書可以由多名管理員

管理,而且一名管理員可以管理多本圖書。因此,管理員與圖書之間也是多對(duì)多

的聯(lián)系。

其基本E-R模型如圖1所示:

mnmn

同學(xué)借閱圖書管理管理員

按照需求分析的結(jié)果,該E-R模型模型中個(gè)實(shí)體所包含的屬性如下:同學(xué):姓名,學(xué)號(hào),學(xué)院,專業(yè),年級(jí)。

圖書:圖書名稱,圖書編號(hào),出版社名稱,出版日期,,是否可借。

管理員:管理員姓名,管理員編號(hào)。

各聯(lián)系本身應(yīng)具有的屬性為:

借閱:學(xué)號(hào),圖書編號(hào),圖書名稱,借閱日期,應(yīng)歸還日期。

管理:管理日期,管理員編號(hào),管理員姓名。

規(guī)律結(jié)果設(shè)計(jì)

這個(gè)E-R模型轉(zhuǎn)換出的關(guān)系模式如下,其中主碼用下劃線標(biāo)識(shí):

同學(xué)(學(xué)號(hào),姓名,學(xué)院,專業(yè),年級(jí))

圖書(圖書編號(hào),圖書名稱,出版社名稱,出版日期,,是否可借)管理員(管理員編號(hào),管理員姓名)

借閱(學(xué)號(hào),圖書標(biāo)號(hào),圖書名稱,借閱日期,應(yīng)歸還日期),其中圖書

編號(hào)為引用“圖書”關(guān)系模式的外碼;學(xué)號(hào)為引用“同學(xué)”關(guān)系模式的外碼。

管理(管理日期,管理員編號(hào),管理員姓名),其中管理員編號(hào)為引用“管

理員”關(guān)系模式的外碼。

(1)確定各管是模式是否屬于第三范式

經(jīng)過分析發(fā)覺,“同學(xué)”、“圖書”、“管理員”、“借閱”和“管理”5個(gè)關(guān)系模式中,都不存在部分依靠和傳遞依靠關(guān)系,因此都屬于第三范式。

(2)確定信息的完整性

該教學(xué)管理系統(tǒng)要產(chǎn)生:同學(xué)借閱圖書信息、圖書管理2個(gè)報(bào)表,分離分析如下:

“同學(xué)借閱圖書信息表”包括學(xué)號(hào)、圖書編號(hào)、圖書名稱、借閱日期、應(yīng)歸還日期。其中“學(xué)號(hào)”可由“同學(xué)”關(guān)系模式得到,“圖書編號(hào)”、“圖書名稱”、“借閱日期”、“應(yīng)歸還日期”可由“借閱”關(guān)系模式得到,因此可以滿足同學(xué)借閱圖書信息表的要求。

“圖書管理表”包括管理日期、管理員編號(hào)、管理員姓名。其中“管理日期”

可由“管理”關(guān)系模式得到,“管理員編號(hào)”,“管理員姓名”可由“管理員”

關(guān)系模式得到。

因此,全部關(guān)系模式滿足全部報(bào)表的信息要求。

至此,關(guān)系模式設(shè)計(jì)完畢。

下面給出創(chuàng)建這些關(guān)系表的SQL語句示例,其中的數(shù)據(jù)類型可按照實(shí)際狀況調(diào)節(jié),為便利理解,表名、列名均用中文表示。

CREATETABLE同學(xué)表(

學(xué)號(hào)char(10)PRIMARYKEY,

姓名char(10)NOTNULL,

學(xué)院char(20)NOTNULL,

專業(yè)char(20)NOTNULL,

年級(jí)char(8)NOTNULL

)

CREATETABLE圖書表(

圖書編號(hào)char(20)PRIMARYKEY,

圖書名稱char(20)NOTNULL,

出版社名稱char(20)NOTNULL,

出版日期datetimeNOTNULL,

char(10)NOTNULL

)

CREATETABLE管理員表(

管理員編號(hào)char(10)PRIMARYKEY,

管理員姓名char(10)NOTNULL

)

CREATETABLE借閱表(

學(xué)號(hào)char(10)NOTNULL,

姓名char(10)NOTNULL,

圖書編號(hào)char(20)NOTNULL,

圖書名稱char(20)NOTNULL,

借閱日期datetimeNOTNULL,

應(yīng)歸還日期datetimeNOTNULL,

PRIMARYKEY(學(xué)號(hào),圖書編號(hào)),

FOREIGNKEY(學(xué)號(hào))REFERENCES同學(xué)表(學(xué)號(hào)),FOREIGNKEY(圖書編號(hào))REFERENCES圖書表(圖書編號(hào)))

CREATETABLE管理表(

管理日期datetimeNOTNULL,

管理員編號(hào)char(10)NOTNULL,

管理員姓名char(10)NOTNULL,

PRIMARYKEY(管理日期,管理員編號(hào)),

FOREIGNKEY(管理員編號(hào))REFERENCES管理員表(管理員編號(hào))

)

設(shè)計(jì)外模式

(1)同學(xué)借閱圖書信息表

我們將該報(bào)表直接用查詢語句的形式生成,將動(dòng)態(tài)查詢條件作為查詢語句中的數(shù)據(jù)篩選條件。

例如,假設(shè)要為大三同學(xué)生成借閱圖書狀況的報(bào)表,則語句如下:

SELECT學(xué)號(hào),姓名,圖書名稱

FROM借閱表WHERE年級(jí)=‘大三’

(2)圖書管理表

該表可以查詢出在哪一天由哪位管理員借出了哪些圖書,因此,直接用查詢語句生成。

SELECT圖書編號(hào),圖書名稱,管理日期,管理員編號(hào),管理員姓名

FROM借閱表JOIN管理表ON借閱表.借閱日期=管理表.管理日期

三、數(shù)據(jù)庫行為設(shè)計(jì)

對(duì)于數(shù)據(jù)庫應(yīng)用系統(tǒng)來說,最常用的功能是平安控制功能,數(shù)據(jù)的增、刪、改、查功能以及生成報(bào)表的功能。本系統(tǒng)也應(yīng)包括這些基本的操作。

平安控件

任何數(shù)據(jù)庫應(yīng)用系統(tǒng)都需要平安控件功能,這個(gè)圖書管理系統(tǒng)也不例外。假設(shè)將系統(tǒng)的用戶分為如下幾類:

圖書館系統(tǒng)管理人員:具有系統(tǒng)的所有操作權(quán)限。

教務(wù)部門:具有對(duì)同學(xué)基本信息、圖書信息和管理員信息的維護(hù)權(quán)。

同學(xué):具有對(duì)圖書信息的查詢權(quán)。

在實(shí)現(xiàn)時(shí),可將每一類用戶定義為一個(gè)角色,這樣在授權(quán)時(shí)只需對(duì)角色授權(quán),而無需對(duì)每個(gè)詳細(xì)的用戶授權(quán)。

數(shù)據(jù)操作功能

數(shù)據(jù)操作功能包括對(duì)這些數(shù)據(jù)的錄入、刪除、修改功能。詳細(xì)如下:

(1)數(shù)據(jù)錄入

包括對(duì)這5張表的錄入。惟獨(dú)具有相應(yīng)權(quán)限的用戶才干錄入相應(yīng)表中的數(shù)據(jù)。

(2)數(shù)據(jù)刪除

包括對(duì)這5張表的刪除。惟獨(dú)具有相應(yīng)權(quán)限的用戶才干刪除相應(yīng)表中的數(shù)據(jù)。數(shù)據(jù)的刪除要注重表之間的關(guān)聯(lián)關(guān)系。比如在刪除“同學(xué)表”中的數(shù)據(jù)之前,應(yīng)先刪除該同學(xué)在“借閱表”中的信息,然后再同學(xué)表中刪除該同學(xué),以保證不違背參照完整性約束。另外,在實(shí)際執(zhí)行刪除操作之前應(yīng)當(dāng)提示用戶是否真的要?jiǎng)h除數(shù)據(jù),以免發(fā)生誤操作。

(3)數(shù)據(jù)修改

當(dāng)某些數(shù)據(jù)發(fā)生變化或某些數(shù)據(jù)錄入不正確時(shí),應(yīng)當(dāng)允許用戶對(duì)數(shù)據(jù)庫中的數(shù)據(jù)舉行修改,修改數(shù)據(jù)的操作普通是先按照一定的條件查詢出要修改的記錄,然后在對(duì)其中的某些記錄舉行修改,修改完成后再回到數(shù)據(jù)庫中。同數(shù)據(jù)的錄入與刪除一樣,惟獨(dú)具有相應(yīng)權(quán)限的用戶才干修改相應(yīng)表中的數(shù)據(jù)。

(4)數(shù)據(jù)查詢

在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,數(shù)據(jù)查詢是最常用的功能。數(shù)據(jù)查詢應(yīng)按照用戶提出的查詢條件舉行,在設(shè)計(jì)系統(tǒng)時(shí)應(yīng)首先征求用戶的查詢需求,然后按照這些需求收拾出系統(tǒng)應(yīng)具有的查詢功能。普通允許全部使用數(shù)據(jù)庫的人都具有查詢數(shù)據(jù)的權(quán)限。本系統(tǒng)提出的查詢要求有:

按照學(xué)號(hào)、學(xué)院、專業(yè)等信息查詢同學(xué)的基本信息。

按照?qǐng)D書編號(hào)查詢圖書的基本信息。

按照管理員編號(hào)查詢管理員的基本信息。

統(tǒng)計(jì)各個(gè)年級(jí)同學(xué)借書的總數(shù)量。等等。

應(yīng)用程序?qū)崿F(xiàn)

語言及DBMS的挑選

制作這5個(gè)表的數(shù)據(jù)庫使用DBMS的是ACCESS,然后用VB語言編寫程序代碼,實(shí)現(xiàn)程序的各個(gè)功能。其中用到了ADO數(shù)據(jù)控件和DataGrid控件。

應(yīng)用程序的編寫

(1)同學(xué)表VB代碼

PrivateSubCommand1_Click()'"添加"命令按鈕

'使"添加"和"刪除"按鈕成為不行用狀態(tài)

=False

=False

'使"更新"按鈕成為可用狀態(tài)

=True

'清空文本框中顯示的內(nèi)容

=""

=""

=""

=""

=""

EndSub

PrivateSubCommand2_Click()'"退出"命令按鈕

End

EndSub

PrivateSubCommand3_Click()'"刪除"命令按鈕

DimresAsInteger

res=MsgBox("的確要?jiǎng)h除此行記錄嗎",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用戶

Ifres=vbYesThen'如的確要?jiǎng)h除

=TrueThen

If

EndIf

EndSub

PrivateSubCommand4_Click()'"更新"命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集中相應(yīng)字段中

"學(xué)號(hào)")=Trim

"姓名")=Trim

"學(xué)院")=Trim

"專業(yè)")=Trim

"年級(jí)")=Trim

'使更新生效

'使"添加"和"刪除"按鈕成為可用狀態(tài)

=True

=True

EndSub

PrivateSubCommand5_Click()'"上一條"命令按鈕Sub

PrivateSubCommand6_Click()'"下一條"命令按鈕Sub

(2)圖書表VB代碼

PrivateSubCommand2_Click()'"添加"命令按鈕'使"添加"和"刪除"按鈕成為不行用狀態(tài)

=False

=False

'使"更新"和"取消"按鈕成為可用狀態(tài)

=True

=True

'清空文本框中顯示的內(nèi)容

=""

=""

=""

=""

=""

EndSub

PrivateSubCommand3_Click()'"刪除"命令按鈕

DimresAsInteger

res=MsgBox("確定要?jiǎng)h除此行記錄",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用戶

Ifres=vbYesThen'如的確要?jiǎng)h除

=TrueThen

EndIf

EndIf

EndSub

PrivateSubCommand4_Click()'"更新"命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集中相應(yīng)字段中

"圖書編號(hào)")=Trim

"圖書名稱")=Trim

"出版社名稱")=Trim

"出版日期")=Trim

"")=Trim

'使更新生效

'使"添加"和"刪除"按鈕成為可用狀態(tài)

=True

=True

'使"取消"按鈕成為不行用狀態(tài)

=False

EndSub

PrivateSubCommand5_Click()

=True

=True

=False

EndSub

PrivateSubCommand6_Click()'"上一條"命令按鈕Sub

PrivateSubCommand7_Click()'"下一條"命令按鈕Sub

(3)管理員表VB代碼

PrivateSubCommand1_Click()'"退出"命令按鈕End

EndSub

PrivateSubCommand2_Click()'"添加"命令按鈕

'使"添加"和"刪除"按鈕成為不行用狀態(tài)

=False

=False

'使"更新"按鈕成為可用狀態(tài)

=True

'清空文本框中現(xiàn)實(shí)的內(nèi)容

=""

=""

EndSub

PrivateSubCommand3_Click()'"刪除"命令按鈕

DimresAsInteger

res=MsgBox("的確要?jiǎng)h除此行記錄嗎",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用戶

Ifres=vbYesThen'如的確要?jiǎng)h除

=TrueThen

If

EndIf

EndSub

PrivateSubCommand4_Click()'"更新"命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集中相應(yīng)字段中

"管理員編號(hào)")=Trim

"管理員姓名")=Trim

'使更新生效

'使"添加"和"刪除"按鈕成為可用狀態(tài)

=True

EndSub

PrivateSubCommand5_Click()'"上一條"命令按鈕Sub

PrivateSubCommand6_Click()'"下一條"命令按鈕Sub

(4)借閱表VB代碼

PrivateSubCommand1_Click()'"退出"命令按鈕End

EndSub

PrivateSubCommand2_Click()'"上一條"命令按鈕Sub

PrivateSubCommand3_Click()'"下一條"命令按鈕Sub

PrivateSubCommand4_Click()'"添加"命令按鈕'使"添加"和"刪除"按鈕成為不行用狀態(tài)

=False

=False

'使"更新"按鈕成為可用狀態(tài)

=True

'清空文本框中現(xiàn)實(shí)的內(nèi)容

=""

=""

=""

=""

=""

EndSub

PrivateSubCommand5_Click()'"刪除"命令按鈕

DimresAsInteger

res=MsgBox("的確要?jiǎng)h除此行記錄嗎",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用戶

Ifres=vbYesThen'如的確要?jiǎng)h除

=TrueThen

If

EndIf

EndSub

PrivateSubCommand6_Click()'"更新"命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集中相應(yīng)字段中

"學(xué)號(hào)")=Trim

"姓名")=Trim

"圖書編號(hào)")=Trim

"圖書名稱")=Trim

"借閱日期")=Trim

"應(yīng)歸還日期")=Trim

'使更新生效

'使"添加"和"刪除"按鈕成為可用狀態(tài)

=True

EndSub

(5)管理表VB代碼

PrivateSubCommand1_Click()'"退出"命令按鈕

End

EndSub

PrivateSubCommand2_Click()'"添加"命令按鈕

'使"添加"和"刪除"按鈕成為不行用狀態(tài)

=False

=False

'使"更新"按鈕成為可用狀態(tài)

=True

'清空文本框中現(xiàn)實(shí)的內(nèi)容

=""

=""

=""

EndSub

PrivateSubCommand3_Click()'"刪除"命令按鈕

DimresAsInteger

res=MsgBox("的確要?jiǎng)h除此行記錄嗎",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用戶

Ifres=vbYesThen'如的確要?jiǎng)h除

=TrueThen

If

EndIf

PrivateSubCommand4_Click()'"更新"命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集中相應(yīng)字段中

"管理日期")=Trim

"管理員編號(hào)")=Trim

"管理員姓名")=Trim

'使更新生效

'使"添加"和"刪除"按鈕成為可用狀態(tài)

=True

=True

EndSub

PrivateSubCommand5_Click()'"上一條"命令按鈕

Sub

PrivateSubCommand6_Click()'"下一條"命令按鈕

Sub

應(yīng)用程序的使用說明

為數(shù)據(jù)庫中5個(gè)表設(shè)計(jì)的VB工程中,其基本類型相像,因?yàn)樯婕暗絽⒄胀暾约s束,因此這里將重點(diǎn)說明“同學(xué)表”和“借閱表”的使用說明,“圖書表”和“管理員表”參照“同學(xué)表”,“管理表”參照“借閱表”。

(1)同學(xué)表使用說明

啟動(dòng)VB程序,打開“同學(xué)表”的工程文件,并運(yùn)行該程序。

1)單擊“上一條”“下一條”按鈕,移動(dòng)指針將上下移動(dòng)到相應(yīng)的條目。

2)單擊“添加”按鈕,窗體上的文本框控件將清空,可以在文本框中輸入數(shù)據(jù),數(shù)據(jù)將同時(shí)顯示在“同學(xué)表”的最后一行條目中。

3)單擊“更新”按鈕,數(shù)據(jù)將完整地添加到“同學(xué)表”中。

4)要?jiǎng)h除更新的數(shù)據(jù)時(shí),先將移動(dòng)指針指向要?jiǎng)h除的條目,然后單擊“刪除“按鈕,新添加的數(shù)據(jù)將從“同學(xué)表”中刪除。

5)單擊“退出”按鈕,結(jié)束程序代碼,退出運(yùn)行界面。

(2)圖書表使用說明

啟動(dòng)VB程序,打開“圖書表”的工程文件,并運(yùn)行該程序。

1)單擊“上一條”“下一條”按鈕,移動(dòng)指針將上下移動(dòng)到相應(yīng)的條目。

2)單擊“添加”按鈕,窗體上的文本框控件將清空,可以在文本框中輸入數(shù)據(jù),數(shù)據(jù)將同時(shí)顯示在“圖書表”的最后一行條目中。

3)單擊“更新”按鈕,數(shù)據(jù)將完整地添加到“圖書表”中。

4)要?jiǎng)h除更新的數(shù)據(jù)時(shí),

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論