图书管理系统大数据库_第1页
图书管理系统大数据库_第2页
图书管理系统大数据库_第3页
图书管理系统大数据库_第4页
图书管理系统大数据库_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐图书管理系统大数据库《数据库原理与应用教程》试验报告

数据库分析与设计

图书管理系统

一、需求说明

要实现一个简化的图书管理系统,在此图书管理系统中只涉及同学信息、借阅信息和管理者信息的管理。此系统要求能够记住书籍的基本信息、同学的信息和管理者的信息。该系统的业务要求为:

◆一名同学可以在不同的日期多次借阅同一本书。

◆一名同学可以同时借阅多本不同的图书。

◆一本书可以在不同的时光借给不同的同学。

◆一名同学不能在同一天对同一本书借阅多次。

◆一名管理员可以同时管理多本图书。

该系统的基本信息包括:

◆同学信息:姓名,学号,学院,专业,年级。

◆图书信息:图书名称,图书编号,出版社名称,出版日期,,是否可借。

◆管理员信息:管理员姓名,管理员编号。

除上述要求外,该系统还需产生如下报表:

◆同学借阅图书信息表:学号,图书编号,图书名称,借阅日期,应归还日期。

◆图书管理表:管理日期,管理员编号,管理员姓名。

二、数据库结构设计

2.1概念结构设计

概念结构设计是按照需求分析的结果产生概念结构设计的E-R模型。因为这个系统比较容易,因此这里采纳自顶向下的设计办法。自顶向下设计的关键是首先要确定系统的核心活动。所谓核心活动就是系统中的其他活动都要围绕这个活动绽开或与此活动密切相关。确定了核心活动之后,系统就有了可扩展的余地。对于这个图书管理系统,其核心活动是图书,同学与图书之间是通过同学借阅图书发生联系的,管理员与图书之间是通过管理员管理图书发生联系的。至此,此系统包含的实体有:

◆图书:用于描述课程的基本信息,用图书编号标识。

◆同学:用于描述同学的基本信息,用学号标识。

◆管理员:用于描述管理员的基本信息,用管理员编号标识。

因为一名同学可以借阅多本图书,并且一本书可以在不同时光借给不同的学

生。因此,同学与图书之间是多对多的联系。又因为一本图书可以由多名管理员

管理,而且一名管理员可以管理多本图书。因此,管理员与图书之间也是多对多

的联系。

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

mnmn

同学借阅图书管理管理员

按照需求分析的结果,该E-R模型模型中个实体所包含的属性如下:

◆同学:姓名,学号,学院,专业,年级。

◆图书:图书名称,图书编号,出版社名称,出版日期,,是否可借。

◆管理员:管理员姓名,管理员编号。

各联系本身应具有的属性为:

◆借阅:学号,图书编号,图书名称,借阅日期,应归还日期。

◆管理:管理日期,管理员编号,管理员姓名。

2.2规律结果设计

这个E-R模型转换出的关系模式如下,其中主码用下划线标识:

◆同学(学号,姓名,学院,专业,年级)

◆图书(图书编号,图书名称,出版社名称,出版日期,,是否可借)

◆管理员(管理员编号,管理员姓名)

◆借阅(学号,图书标号,图书名称,借阅日期,应归还日期),其中图书

编号为引用“图书”关系模式的外码;学号为引用“同学”关系模式的外码。

◆管理(管理日期,管理员编号,管理员姓名),其中管理员编号为引用“管

理员”关系模式的外码。

(1)确定各管是模式是否属于第三范式

经过分析发觉,“同学”、“图书”、“管理员”、“借阅”和“管理”5个关系

模式中,都不存在部分依靠和传递依靠关系,因此都属于第三范式。

(2)确定信息的完整性

该教学管理系统要产生:同学借阅图书信息、图书管理2个报表,分离分析

如下:

◆“同学借阅图书信息表”包括学号、图书编号、图书名称、借阅日期、应归

还日期。其中“学号”可由“同学”关系模式得到,“图书编号”、“图书名称”、“借阅日期”、“应归还日期”可由“借阅”关系模式得到,因此可以满足同学借阅图书信息表的要求。

◆“图书管理表”包括管理日期、管理员编号、管理员姓名。其中“管理日期”

可由“管理”关系模式得到,“管理员编号”,“管理员姓名”可由“管理员”

关系模式得到。

因此,全部关系模式满足全部报表的信息要求。

至此,关系模式设计完毕。

下面给出创建这些关系表的SQL语句示例,其中的数据类型可按照实际状况调节,为便利理解,表名、列名均用中文表示。

CREATETABLE同学表(

学号char(10)PRIMARYKEY,

姓名char(10)NOTNULL,

学院char(20)NOTNULL,

专业char(20)NOTNULL,

年级char(8)NOTNULL

)

CREATETABLE图书表(

图书编号char(20)PRIMARYKEY,

图书名称char(20)NOTNULL,

出版社名称char(20)NOTNULL,

出版日期datetimeNOTNULL,

char(10)NOTNULL

)

CREATETABLE管理员表(

管理员编号char(10)PRIMARYKEY,

管理员姓名char(10)NOTNULL

)

CREATETABLE借阅表(

学号char(10)NOTNULL,

姓名char(10)NOTNULL,

图书编号char(20)NOTNULL,

图书名称char(20)NOTNULL,

借阅日期datetimeNOTNULL,

应归还日期datetimeNOTNULL,

PRIMARYKEY(学号,图书编号),

FOREIGNKEY(学号)REFERENCES同学表(学号),

FOREIGNKEY(图书编号)REFERENCES图书表(图书编号)

)

CREATETABLE管理表(

管理日期datetimeNOTNULL,

管理员编号char(10)NOTNULL,

管理员姓名char(10)NOTNULL,

PRIMARYKEY(管理日期,管理员编号),

FOREIGNKEY(管理员编号)REFERENCES管理员表(管理员编号)

)

2.2.2设计外模式

(1)同学借阅图书信息表

我们将该报表直接用查询语句的形式生成,将动态查询条件作为查询语句中的数据筛选条件。

例如,假设要为大三同学生成借阅图书状况的报表,则语句如下:

SELECT学号,姓名,图书名称

FROM借阅表WHERE年级=‘大三’

(2)图书管理表

该表可以查询出在哪一天由哪位管理员借出了哪些图书,因此,直接用查询语句生成。

SELECT图书编号,图书名称,管理日期,管理员编号,管理员姓名

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

三、数据库行为设计

对于数据库应用系统来说,最常用的功能是平安控制功能,数据的增、删、改、查功能以及生成报表的功能。本系统也应包括这些基本的操作。

3.1平安控件

任何数据库应用系统都需要平安控件功能,这个图书管理系统也不例外。假设将系统的用户分为如下几类:

图书馆系统管理人员:具有系统的所有操作权限。

◆教务部门:具有对同学基本信息、图书信息和管理员信息的维护权。

◆同学:具有对图书信息的查询权。

在实现时,可将每一类用户定义为一个角色,这样在授权时只需对角色授权,而无需对每个详细的用户授权。

3.2数据操作功能

数据操作功能包括对这些数据的录入、删除、修改功能。详细如下:

(1)数据录入

包括对这5张表的录入。惟独具有相应权限的用户才干录入相应表中的数据。

(2)数据删除

包括对这5张表的删除。惟独具有相应权限的用户才干删除相应表中的数据。数据的删除要注重表之间的关联关系。比如在删除“同学表”中的数据之前,应先删除该同学在“借阅表”中的信息,然后再同学表中删除该同学,以保证不违背参照完整性约束。另外,在实际执行删除操作之前应当提示用户是否真的要删除数据,以免发生误操作。

(3)数据修改

当某些数据发生变化或某些数据录入不正确时,应当允许用户对数据库中的数据举行修改,修改数据的操作普通是先按照一定的条件查询出要修改的记录,然后在对其中的某些记录举行修改,修改完成后再回到数据库中。同数据的录入与删除一样,惟独具有相应权限的用户才干修改相应表中的数据。

(4)数据查询

在数据库应用系统中,数据查询是最常用的功能。数据查询应按照用户提出的查询条件举行,在设计系统时应首先征求用户的查询需求,然后按照这些需求收拾出系统应具有的查询功能。普通允许全部使用数据库的人都具有查询数据的权限。本系统提出的查询要求有:

◆按照学号、学院、专业等信息查询同学的基本信息。

◆按照图书编号查询图书的基本信息。

◆按照管理员编号查询管理员的基本信息。

◆统计各个年级同学借书的总数量。等等。

3.3应用程序实现

3.31语言及DBMS的挑选

制作这5个表的数据库使用DBMS的是ACCESS,然后用VB语言编写程序代码,实现程序的各个功能。其中用到了ADO数据控件和DataGrid控件。

3.32应用程序的编写

(1)同学表VB代码

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

AdodcStudent.Recordset.AddNew

'使"添加"和"删除"按钮成为不行用状态

Command1.Enabled=False

Command3.Enabled=False

'使"更新"按钮成为可用状态

Command4.Enabled=True

'清空文本框中显示的内容

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

EndSub

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

End

EndSub

PrivateSubCommand3_Click()'"删除"命令按钮

DimresAsInteger

res=MsgBox("的确要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用户

Ifres=vbYesThen'如的确要删除

AdodcStudent.Recordset.Delete

AdodcStudent.Recordset.MoveNext

IfAdodcStudent.Recordset.EOF=TrueThen

AdodcStudent.Recordset.MoveLast

EndIf

EndIf

EndSub

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

'将文本框中的当前值写入结果集中相应字段中

AdodcStudent.Recordset.Fields("学号")=Trim(Text1.Text)

AdodcStudent.Recordset.Fields("姓名")=Trim(Text2.Text)

AdodcStudent.Recordset.Fields("学院")=Trim(Text3.Text)

AdodcStudent.Recordset.Fields("专业")=Trim(Text4.Text)

AdodcStudent.Recordset.Fields("年级")=Trim(Text5.Text)

'使更新生效

AdodcStudent.Recordset.Update

'使"添加"和"删除"按钮成为可用状态

Command1.Enabled=True

Command3.Enabled=True

EndSub

PrivateSubCommand5_Click()'"上一条"命令按钮

AdodcStudent.Recordset.MovePrevious

EndSub

PrivateSubCommand6_Click()'"下一条"命令按钮

AdodcStudent.Recordset.MoveNext

EndSub

(2)图书表VB代码

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

AdodcBook.Recordset.AddNew

'使"添加"和"删除"按钮成为不行用状态

Command2.Enabled=False

Command3.Enabled=False

'使"更新"和"取消"按钮成为可用状态

Command4.Enabled=True

Command5.Enabled=True

'清空文本框中显示的内容

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

EndSub

PrivateSubCommand3_Click()'"删除"命令按钮

DimresAsInteger

res=MsgBox("确定要删除此行记录?",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用户

Ifres=vbYesThen'如的确要删除

AdodcBook.Recordset.Delete

AdodcBook.Recordset.MoveNext

IfAdodcBook.Recordset.EOF=TrueThen

AdodcBook.Recordset.MoveLast

EndIf

EndIf

EndSub

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

'将文本框中的当前值写入结果集中相应字段中

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)

'使更新生效

AdodcBook.Recordset.Update

'使"添加"和"删除"按钮成为可用状态

Command2.Enabled=True

Command3.Enabled=True

'使"取消"按钮成为不行用状态

Command5.Enabled=False

EndSub

PrivateSubCommand5_Click()

Command2.Enabled=True

Command3.Enabled=True

Command5.Enabled=False

EndSub

PrivateSubCommand6_Click()'"上一条"命令按钮AdodcBook.Recordset.MovePrevious

EndSub

PrivateSubCommand7_Click()'"下一条"命令按钮AdodcBook.Recordset.MoveNext

EndSub

(3)管理员表VB代码

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

End

EndSub

PrivateSubCommand2_Click()'"添加"命令按钮AdodcManager.Recordset.AddNew

'使"添加"和"删除"按钮成为不行用状态

Command2.Enabled=False

Command3.Enabled=False

'使"更新"按钮成为可用状态

Command4.Enabled=True

'清空文本框中现实的内容

Text1.Text=""

Text2.Text=""

EndSub

PrivateSubCommand3_Click()'"删除"命令按钮

DimresAsInteger

res=MsgBox("的确要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用户

Ifres=vbYesThen'如的确要删除

AdodcManager.Recordset.Delete

AdodcManager.Recordset.MoveNext

IfAdodcManager.Recordset.EOF=TrueThen

AdodcManager.Recordset.MoveLast

EndIf

EndIf

EndSub

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

'将文本框中的当前值写入结果集中相应字段中

AdodcManager.Recordset.Fields("管理员编号")=Trim(Text1.Text)

AdodcManager.Recordset.Fields("管理员姓名")=Trim(Text2.Text)

'使更新生效

AdodcManager.Recordset.Update

'使"添加"和"删除"按钮成为可用状态

Command2.Enabled=True

Command3.Enabled=True

EndSub

PrivateSubCommand5_Click()'"上一条"命令按钮

AdodcManager.Recordset.MovePrevious

EndSub

PrivateSubCommand6_Click()'"下一条"命令按钮

AdodcManager.Recordset.MoveNext

EndSub

(4)借阅表VB代码

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

End

EndSub

PrivateSubCommand2_Click()'"上一条"命令按钮

AdodcBorrown.Recordset.MovePrevious

EndSub

PrivateSubCommand3_Click()'"下一条"命令按钮

AdodcBorrown.Recordset.MoveNext

EndSub

PrivateSubCommand4_Click()'"添加"命令按钮

AdodcBorrown.Recordset.AddNew

'使"添加"和"删除"按钮成为不行用状态

Command4.Enabled=False

Command5.Enabled=False

'使"更新"按钮成为可用状态

Command6.Enabled=True

'清空文本框中现实的内容

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

Text6.Text=""

EndSub

PrivateSubCommand5_Click()'"删除"命令按钮

DimresAsInteger

res=MsgBox("的确要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用户

Ifres=vbYesThen'如的确要删除

AdodcBorrown.Recordset.Delete

AdodcBorrown.Recordset.MoveNext

IfAdodcBorrown.Recordset.EOF=TrueThen

AdodcBorrown.Recordset.MoveLast

EndIf

EndIf

EndSub

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

'将文本框中的当前值写入结果集中相应字段中

AdodcBorrown.Recordset.Fields("学号")=Trim(Text1.Text)

AdodcBorrown.Recordset.Fields("姓名")=Trim(Text2.Text)

AdodcBorrown.Recordset.Fields("图书编号")=Trim(Text3.Text)

AdodcBorrown.Recordset.Fields("图书名称")=Trim(Text4.Text)

AdodcBorrown.Recordset.Fields("借阅日期")=Trim(Text5.Text)

AdodcBorrown.Recordset.Fields("应归还日期")=Trim(Text6.Text)

'使更新生效

AdodcBorrown.Recordset.Update

'使"添加"和"删除"按钮成为可用状态

Command4.Enabled=True

Command5.Enabled=True

EndSub

(5)管理表VB代码

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

End

EndSub

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

AdodcManagement.Recordset.AddNew

'使"添加"和"删除"按钮成为不行用状态

Command2.Enabled=False

Command3.Enabled=False

'使"更新"按钮成为可用状态

Command4.Enabled=True

'清空文本框中现实的内容

Text1.Text=""

Text2.Text=""

Text3.Text=""

EndSub

PrivateSubCommand3_Click()'"删除"命令按钮

DimresAsInteger

res=MsgBox("的确要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提醒用户

Ifres=vbYesThen'如的确要删除

AdodcManagement.Recordset.Delete

AdodcManagement.Recordset.MoveNext

IfAdodcManagement.Recordset.EOF=TrueThen

AdodcManagement.Recordset.MoveLast

EndIf

EndIf

EndSub

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

'将文本框中的当前值写入结果集中相应字段中

AdodcManagement.Recordset.Fields("管理日期")=Trim(Text1.Text)AdodcManagement.Recordset.Fields("管理员编号")=Trim(Text2.Text)AdodcManagement.Recordset.Fields("管理员姓名")=Trim(Text3.Text)

'使更新生效

AdodcManagement.Recordset.Update

'使"添加"和"删除"按钮成为可用状态

Command2.Enabled=True

Command3.Enabled=True

EndSub

PrivateSubCommand5_Click()'"上一条"命令按钮

AdodcManagement.Recordset.MovePrevious

EndSub

PrivateSubCommand6_Click()'"下一条"命令按钮

AdodcManagement.Recordset.MoveNext

EndSub

3.33应用程序的使用说明

为数据库中5个表设计的VB工程中,其基本类型相像,因为涉及到参照完整性约束,因此这里将重点说明“同学表”和“借阅表”的使用说明,“图书表”和“管理员表”参照“同学表”,“管理表”参照“借阅表”。

(1)同学表使用说明

启动VB程序,打开“同学表”的工程文件,并运行该程序。

1)单击“上一条”“下一条”按钮,移动指针将上下移动到相应的条目。

2)单击“添加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在“同学表”的最后一行条目中。

3)单击“更新”按钮,数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论