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

下载本文档

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

文档简介

-.z.------专业资料-"数据库原理与应用教程"实验报告数据库分析与设计------图书管理系统一、需求说明要实现一个简化的图书管理系统,在此图书管理系统中只涉及学生信息、借阅信息和管理者信息的管理。此系统要求能够记住书籍的根本信息、学生的信息和管理者的信息。该系统的业务要求为:一名学生可以在不同的日期屡次借阅同一本书。一名学生可以同时借阅多本不同的图书。一本书可以在不同的时间借给不同的学生。一名学生不能在同一天对同一本书借阅屡次。一名管理员可以同时管理多本图书。该系统的根本信息包括:学生信息:,**,学院,专业,年级。图书信息:图书名称,图书编号,出版社名称,出版日期,作者,是否可借。管理员信息:管理员姓名,管理员编号。除上述要求外,该系统还需产生如下报表:学生借阅图书信息表:**,图书编号,图书名称,借阅日期,应归还日期。图书管理表:管理日期,管理员编号,管理员姓名。二、数据库构造设计2.1概念构造设计概念构造设计是根据需求分析的结果产生概念构造设计的E-R模型。由于这个系统比拟简单,因此这里采用自顶向下的设计方法。自顶向下设计的关键是首先要确定系统的核心活动。所谓核心活动就是系统中的其他活动都要围绕这个活动展开或与此活动密切相关。确定了核心活动之后,系统就有了可扩展的余地。对于这个图书管理系统,其核心活动是图书,学生与图书之间是通过学生借阅图书发生联系的,管理员与图书之间是通过管理员管理图书发生联系的。至此,此系统包含的实体有:图书:用于描述课程的根本信息,用图书编号标识。学生:用于描述学生的根本信息,用**标识。管理员:用于描述管理员的根本信息,用管理员编号标识。由于一名学生可以借阅多本图书,并且一本书可以在不同时间借给不同的学生。因此,学生与图书之间是多对多的联系。又由于一本图书可以由多名管理员管理,而且一名管理员可以管理多本图书。因此,管理员与图书之间也是多对多的联系。其根本E-R模型如图1所示:管理员管理图书借阅学生mnmn管理员管理图书借阅学生根据需求分析的结果,该E-R模型模型中个实体所包含的属性如下:学生:,**,学院,专业,年级。图书:图书名称,图书编号,出版社名称,出版日期,作者,是否可借。管理员:管理员姓名,管理员编号。各联系本身应具有的属性为:借阅:**,图书编号,图书名称,借阅日期,应归还日期。管理:管理日期,管理员编号,管理员姓名。这个E-R模型转换出的关系模式如下,其中主码用下划线标识:学生〔**,,学院,专业,年级〕图书〔图书编号,图书名称,出版社名称,出版日期,作者,是否可借〕管理员〔管理员编号,管理员姓名〕借阅〔**,图书标号,图书名称,借阅日期,应归还日期〕,其中图书编号为引用"图书〞关系模式的外码;**为引用"学生〞关系模式的外码。管理〔管理日期,管理员编号,管理员姓名〕,其中管理员编号为引用"管理员〞关系模式的外码。确定各管是模式是否属于第三范式经过分析发现,"学生〞、"图书〞、"管理员〞、"借阅〞和"管理〞5个关系模式中,都不存在局部依赖和传递依赖关系,因此都属于第三范式。确定信息的完整性该教学管理系统要产生:学生借阅图书信息、图书管理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管理员表(管理员编号))学生借阅图书信息表我们将该报表直接用查询语句的形式生成,将动态查询条件作为查询语句中的数据筛选条件。例如,假设要为大三学生生成借阅图书情况的报表,则语句如下:SELECT**,,图书名称FROM借阅表WHERE年级=‘大三’图书管理表该表可以查询出在哪一天由哪位管理员借出了哪些图书,因此,直接用查询语句生成。SELECT图书编号,图书名称,管理日期,管理员编号,管理员姓名数据库行为设计对于数据库应用系统来说,最常用的功能是平安控制功能,数据的增、删、改、查功能以及生成报表的功能。本系统也应包括这些根本的操作。3.1平安控件任何数据库应用系统都需要平安控件功能,这个图书管理系统也不例外。假设将系统的用户分为如下几类:图书馆系统管理人员:具有系统的全部操作权限。教务部门:具有对学生根本信息、图书信息和管理员信息的维护权。学生:具有对图书信息的查询权。在实现时,可将每一类用户定义为一个角色,这样在授权时只需对角色授权,而无需对每个具体的用户授权。3.2数据操作功能数据操作功能包括对这些数据的录入、删除、修改功能。具体如下:数据录入包括对这5张表的录入。只有具有相应权限的用户才能录入相应表中的数据。数据删除包括对这5张表的删除。只有具有相应权限的用户才能删除相应表中的数据。数据的删除要注意表之间的关联关系。比方在删除"学生表〞中的数据之前,应先删除该学生在"借阅表〞中的信息,然后再学生表中删除该学生,以保证不违反参照完整性约束。另外,在实际执行删除操作之前应该提醒用户是否真的要删除数据,以免发生误操作。数据修改当*些数据发生变化或*些数据录入不正确时,应该允许用户对数据库中的数据进展修改,修改数据的操作一般是先根据一定的条件查询出要修改的记录,然后在对其中的*些记录进展修改,修改完成后再回到数据库中。同数据的录入与删除一样,只有具有相应权限的用户才能修改相应表中的数据。数据查询在数据库应用系统中,数据查询是最常用的功能。数据查询应根据用户提出的查询条件进展,在设计系统时应首先征求用户的查询需求,然后根据这些需求整理出系统应具有的查询功能。一般允许所有使用数据库的人都具有查询数据的权限。本系统提出的查询要求有:根据**、学院、专业等信息查询学生的根本信息。根据图书编号查询图书的根本信息。根据管理员编号查询管理员的根本信息。统计各个年级学生借书的总数量。等等。制作这5个表的数据库使用DBMS的是ACCESS,然后用VB语言编写程序代码,实现程序的各个功能。其中用到了ADO数据控件和DataGrid控件。〔1〕学生表VB代码PrivateSubCommand1_Click()'"添加"命令按钮'使"添加"和"删除"按钮成为不可用状态Command1.Enabled=FalseCommand3.Enabled=False'使"更新"按钮成为可用状态Command4.Enabled=True'清空文本框中显示的内容Te*t1.Te*t=""Te*t2.Te*t=""Te*t3.Te*t=""Te*t4.Te*t=""Te*t5.Te*t=""EndSubPrivateSubCommand2_Click()'"退出"命令按钮EndEndSubPrivateSubCommand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBo*("确实要删除此行记录吗?",vbE*clamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除IfAdodcStudent.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand4_Click()'"更新"命令按钮'将文本框中的当前值写入结果集中相应字段中AdodcStudent.Recordset.Fields("**")=Trim(Te*t1.Te*t)AdodcStudent.Recordset.Fields("")=Trim(Te*t2.Te*t)AdodcStudent.Recordset.Fields("学院")=Trim(Te*t3.Te*t)AdodcStudent.Recordset.Fields("专业")=Trim(Te*t4.Te*t)AdodcStudent.Recordset.Fields("年级")=Trim(Te*t5.Te*t)'使更新生效'使"添加"和"删除"按钮成为可用状态Command1.Enabled=TrueCommand3.Enabled=TrueEndSubPrivateSubCommand5_Click()'"上一条"命令按钮EndSubPrivateSubCommand6_Click()'"下一条"命令按钮EndSub〔2〕图书表VB代码PrivateSubCommand2_Click()'"添加"命令按钮'使"添加"和"删除"按钮成为不可用状态Command2.Enabled=FalseCommand3.Enabled=False'使"更新"和"取消"按钮成为可用状态Command4.Enabled=TrueCommand5.Enabled=True'清空文本框中显示的内容Te*t1.Te*t=""Te*t2.Te*t=""Te*t3.Te*t=""Te*t4.Te*t=""Te*t5.Te*t=""EndSubPrivateSubCommand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBo*("确定要删除此行记录"",vbE*clamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除IfAdodcBook.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand4_Click()'"更新"命令按钮'将文本框中的当前值写入结果集中相应字段中AdodcBook.Recordset.Fields("图书编号")=Trim(Te*t1.Te*t)AdodcBook.Recordset.Fields("图书名称")=Trim(Te*t2.Te*t)AdodcBook.Recordset.Fields("出版社名称")=Trim(Te*t3.Te*t)AdodcBook.Recordset.Fields("出版日期")=Trim(Te*t4.Te*t)AdodcBook.Recordset.Fields("作者")=Trim(Te*t5.Te*t)'使更新生效'使"添加"和"删除"按钮成为可用状态Command2.Enabled=TrueCommand3.Enabled=True'使"取消"按钮成为不可用状态Command5.Enabled=FalseEndSubPrivateSubCommand5_Click()Command2.Enabled=TrueCommand3.Enabled=TrueCommand5.Enabled=FalseEndSubPrivateSubCommand6_Click()'"上一条"命令按钮EndSubPrivateSubCommand7_Click()'"下一条"命令按钮EndSub〔3〕管理员表VB代码PrivateSubCommand1_Click()'"退出"命令按钮EndEndSubPrivateSubCommand2_Click()'"添加"命令按钮'使"添加"和"删除"按钮成为不可用状态Command2.Enabled=FalseCommand3.Enabled=False'使"更新"按钮成为可用状态Command4.Enabled=True'清空文本框中现实的内容Te*t1.Te*t=""Te*t2.Te*t=""EndSubPrivateSubCommand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBo*("确实要删除此行记录吗?",vbE*clamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除IfAdodcManager.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand4_Click()'"更新"命令按钮'将文本框中的当前值写入结果集中相应字段中AdodcManager.Recordset.Fields("管理员编号")=Trim(Te*t1.Te*t)AdodcManager.Recordset.Fields("管理员姓名")=Trim(Te*t2.Te*t)'使更新生效'使"添加"和"删除"按钮成为可用状态Command2.Enabled=TrueCommand3.Enabled=TrueEndSubPrivateSubCommand5_Click()'"上一条"命令按钮EndSubPrivateSubCommand6_Click()'"下一条"命令按钮EndSub〔4〕借阅表VB代码PrivateSubCommand1_Click()'"退出"命令按钮EndEndSubPrivateSubCommand2_Click()'"上一条"命令按钮EndSubPrivateSubCommand3_Click()'"下一条"命令按钮EndSubPrivateSubCommand4_Click()'"添加"命令按钮'使"添加"和"删除"按钮成为不可用状态Command4.Enabled=FalseCommand5.Enabled=False'使"更新"按钮成为可用状态Command6.Enabled=True'清空文本框中现实的内容Te*t1.Te*t=""Te*t2.Te*t=""Te*t3.Te*t=""Te*t4.Te*t=""Te*t5.Te*t=""Te*t6.Te*t=""EndSubPrivateSubCommand5_Click()'"删除"命令按钮DimresAsIntegerres=MsgBo*("确实要删除此行记录吗?",vbE*clamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除IfAdodcBorrown.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand6_Click()'"更新"命令按钮'将文本框中的当前值写入结果集中相应字段中AdodcBorrown.Recordset.Fields("**")=Trim(Te*t1.Te*t)AdodcBorrown.Recordset.Fields("")=Trim(Te*t2.Te*t)AdodcBorrown.Recordset.Fields("图书编号")=Trim(Te*t3.Te*t)AdodcBorrown.Recordset.Fields("图书名称")=Trim(Te*t4.Te*t)AdodcBorrown.Recordset.Fields("借阅日期")=Trim(Te*t5.Te*t)AdodcBorrown.Recordset.Fields("应归还日期")=Trim(Te*t6.Te*t)'使更新生效'使"添加"和"删除"按钮成为可用状态Command4.Enabled=TrueCommand5.Enabled=TrueEndSub〔5〕管理表VB代码PrivateSubCommand1_Click()'"退出"命令按钮EndEndSubPrivateSubCommand2_Click()'"添加"命令按钮'使"添加"和"删除"按钮成为不可用状态Command2.Enabled=FalseCommand3.Enabled=False'使"更新"按钮成为可用状态Command4.Enabled=True'清空文本框中现实的内容Te*t1.Te*t=""Te*t2.Te*t=""Te*t3.Te*t=""EndSubPrivateSubCommand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBo*("确实要删除此行记录吗?",vbE*clamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除IfAdodcManagement.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand4_Click()'"更新"命令按钮'将文本框中的当前值写入结果集中相应字段中AdodcManagement.Recordset.Fields("管理日期")=Trim(Te*t1.Te*t)AdodcManagement.Recordset.Fields("管理员编号")=Trim(Te*t2.Te*t)AdodcManagement.Recordset.Fields("管理员姓名")=Trim(Te*t3.Te*t)'使更新生效'使"添加"和"删除"按钮成为可用状态Command2.Enabled=TrueCommand3.Enabled=TrueEndSubPrivateSubCommand5_Click()'"上一条"命令按钮EndSubPrivateSubCommand6_Click()'"下一条"命令按钮EndSub为数据库中5个表设计的VB工程中,其根本类型相似,由于涉及到参照完整性约束,因此这里将重点说明"学生表〞和"借阅表〞的使用说明,"图书表〞和"管理员表〞参照"学生表〞,"管理表〞参照"借阅表〞。学生表使用说明启动VB程序,翻开"学生表〞的工程文件,并运行该程序。单击"上一条〞"下一条〞按钮,移动指针将上下移动到相应的条目。单击"添加〞按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在"学生表〞的最后一行条目中。单击"更新〞按钮,数据将完整地添加到"学生表〞中。要删除更新的数据时,先将移动指针指向要删除的条目,然后单击"删除"

温馨提示

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

评论

0/150

提交评论