收藏 分享(赏)

图书管理系统数据库.doc

上传人:精品资料 文档编号:8539523 上传时间:2019-07-02 格式:DOC 页数:21 大小:181.50KB
下载 相关 举报
图书管理系统数据库.doc_第1页
第1页 / 共21页
图书管理系统数据库.doc_第2页
第2页 / 共21页
图书管理系统数据库.doc_第3页
第3页 / 共21页
图书管理系统数据库.doc_第4页
第4页 / 共21页
图书管理系统数据库.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、数据库原理与应用教程实验报告数据库分析与设计-图书管理系统- 1 -一、需求说明要实现一个简化的图书管理系统,在此图书管理系统中只涉及学生信息、借阅信息和管理者信息的管理。此系统要求能够记住书籍的基本信息、学生的信息和管理者的信息。该系统的业务要求为: 一名学生可以在不同的日期多次借阅同一本书。 一名学生可以同时借阅多本不同的图书。 一本书可以在不同的时间借给不同的学生。 一名学生不能在同一天对同一本书借阅多次。 一名管理员可以同时管理多本图书。该系统的基本信息包括: 学生信息:姓名,学号,学院,专业,年级。 图书信息:图书名称,图书编号,出版社名称,出版日期,作者,是否可借。 管理员信息:管

2、理员姓名,管理员编号。除上述要求外,该系统还需产生如下报表: 学生借阅图书信息表:学号,图书编号,图书名称,借阅日期,应归还日期。 图书管理表:管理日期,管理员编号,管理员姓名。二、数据库结构设计2.1 概念结构设计概念结构设计是根据需求分析的结果产生概念结构设计的 E-R 模型。由于这个系统比较简单,因此这里采用自顶向下的设计方法。自顶向下设计的关键是首先要确定系统的核心活动。所谓核心活动就是系统中的其他活动都要围绕这个活动展开或与此活动密切相关。确定了核心活动之后,系统就有了可扩展的余地。对于这个图书管理系统,其核心活动是图书,学生与图书之间是通过学生借阅图书发生联系的,管理员与图书之间是

3、通过管理员管理图书发生联系的。至此,此系统包含的实体有: 图书:用于描述课程的基本信息,用图书编号标识。 学生:用于描述学生的基本信息,用学号标识。- 2 - 管理员:用于描述管理员的基本信息,用管理员编号标识。由于一名学生可以借阅多本图书,并且一本书可以在不同时间借给不同的学生。因此,学生与图书之间是多对多的联系。又由于一本图书可以由多名管理员管理,而且一名管理员可以管理多本图书。因此,管理员与图书之间也是多对多的联系。其基本 E-R 模型如图 1 所示:m n m n 根据需求分析的结果,该 E-R 模型模型中个实体所包含的属性如下: 学生:姓名,学号,学院,专业,年级。 图书:图书名称,

4、图书编号,出版社名称,出版日期,作者,是否可借。 管理员:管理员姓名,管理员编号。各联系本身应具有的属性为: 借阅:学号,图书编号,图书名称,借阅日期,应归还日期。 管理:管理日期,管理员编号,管理员姓名。2.2 逻辑结果设计这个 E-R 模型转换出的关系模式如下,其中主码用下划线标识: 学生 (学号,姓名,学院,专业,年级) 图书 (图书编号,图书名称,出版社名称,出版日期,作者,是否可借) 管理员 (管理员编号,管理员姓名) 借阅 (学号,图书标号 ,图书名称,借阅日期,应归还日期) ,其中图书编号为引用“图书”关系模式的外码;学号为引用“学生”关系模式的外码。 管理 (管理日期,管理员编

5、号 ,管理员姓名) ,其中管理员编号为引用“管理员”关系模式的外码。(1)确定各管是模式是否属于第三范式经过分析发现, “学生” 、 “图书” 、 “管理员” 、 “借阅”和“管理”5 个关系学生 借阅 图书 管理 管理员- 3 -模式中,都不存在部分依赖和传递依赖关系,因此都属于第三范式。(2)确定信息的完整性该教学管理系统要产生:学生借阅图书信息、图书管理 2 个报表,分别分析如下: “学生借阅图书信息表”包括学号、图书编号、图书名称、借阅日期、应归还日期。其中“学号”可由“学生”关系模式得到, “图书编号” 、 “图书名称” 、 “借阅日期” 、 “应归还日期”可由“借阅”关系模式得到,

6、因此可以满足学生借阅图书信息表的要求。 “图书管理表”包括管理日期、管理员编号、管理员姓名。其中“管理日期”可由“管理”关系模式得到, “管理员编号” , “管理员姓名”可由“管理员”关系模式得到。因此,所有关系模式满足所有报表的信息要求。至此,关系模式设计完毕。下面给出创建这些关系表的 SQL 语句示例,其中的数据类型可根据实际情况调整,为方便理解,表名、列名均用中文表示。CREATE TABLE 学生表(学号 char(10) PRIMARY KEY,姓名 char(10) NOT NULL ,学院 char(20) NOT NULL ,专业 char(20) NOT NULL ,年级 c

7、har(8) NOT 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 )- 4 -CREATE TABLE 借阅表(学号 char(10) NOT NULL ,姓名 char(10) NOT NULL ,图书编号 char

8、(20) NOT NULL ,图书名称 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 (管理日期,管理员编

9、号),FOREIGN KEY (管理员编号) REFERENCES 管理员表 (管理员编号)2.2.2 设计外模式(1)学生借阅图书信息表我们将该报表直接用查询语句的形式生成,将动态查询条件作为查询语句中的数据筛选条件。例如,假设要为大三学生生成借阅图书情况的报表,则语句如下:SELECT 学号,姓名,图书名称FROM 借阅表 WHERE 年级 = 大三(2)图书管理表该表可以查询出在哪一天由哪位管理员借出了哪些图书,因此,直接用查询语句生成。SELECT 图书编号,图书名称,管理日期,管理员编号,管理员姓名FROM 借阅表 JOIN 管理表 ON 借阅表.借阅日期 = 管理表.管理日期三、

10、数据库行为设计对于数据库应用系统来说,最常用的功能是安全控制功能,数据的增、删、改、查功能以及生成报表的功能。本系统也应包括这些基本的操作。- 5 -3.1 安全控件任何数据库应用系统都需要安全控件功能,这个图书管理系统也不例外。假设将系统的用户分为如下几类: 图书馆系统管理人员:具有系统的全部操作权限。 教务部门:具有对学生基本信息、图书信息和管理员信息的维护权。 学生:具有对图书信息的查询权。在实现时,可将每一类用户定义为一个角色,这样在授权时只需对角色授权,而无需对每个具体的用户授权。3.2 数据操作功能数据操作功能包括对这些数据的录入、删除、修改功能。具体如下:(1)数据录入包括对这

11、5 张表的录入。只有具有相应权限的用户才能录入相应表中的数据。(2)数据删除包括对这 5 张表的删除。只有具有相应权限的用户才能删除相应表中的数据。数据的删除要注意表之间的关联关系。比如在删除“学生表”中的数据之前,应先删除该学生在“借阅表”中的信息,然后再学生表中删除该学生,以保证不违反参照完整性约束。另外,在实际执行删除操作之前应该提醒用户是否真的要删除数据,以免发生误操作。(3)数据修改当某些数据发生变化或某些数据录入不正确时,应该允许用户对数据库中的数据进行修改,修改数据的操作一般是先根据一定的条件查询出要修改的记录,然后在对其中的某些记录进行修改,修改完成后再回到数据库中。同数据的录

12、入与删除一样,只有具有相应权限的用户才能修改相应表中的数据。(4)数据查询在数据库应用系统中,数据查询是最常用的功能。数据查询应根据用户提出的查询条件进行,在设计系统时应首先征求用户的查询需求,然后根据这些需求整理出系统应具有的查询功能。一般允许所有使用数据库的人都具有查询数据的权限。本系统提出的查询要求有:- 6 - 根据学号、学院、专业等信息查询学生的基本信息。 根据图书编号查询图书的基本信息。 根据管理员编号查询管理员的基本信息。 统计各个年级学生借书的总数量。等等。3.3 应用程序实现3.31 语言及 DBMS 的选择制作这 5 个表的数据库使用 DBMS 的是 ACCESS,然后用

13、VB 语言编写程序代码,实现程序的各个功能。其中用到了 ADO 数据控件和 DataGrid 控件。3.32 应用程序的编写(1)学生表 VB 代码Private Sub Command1_Click() “添加“ 命令按钮AdodcStudent.Recordset.AddNew 使“添加“和“删除“按钮成为不可用状态Command1.Enabled = FalseCommand3.Enabled = False 使“更新“按钮成为可用状态Command4.Enabled = True 清空文本框中显示的内容Text1.Text = “Text2.Text = “Text3.Text = “

14、Text4.Text = “Text5.Text = “End SubPrivate Sub Command2_Click() “退出“ 命令按钮EndEnd SubPrivate Sub Command3_Click() “删除“ 命令按钮Dim res As Integerres = MsgBox(“确实要删除此行记录吗?“, vbExclamation + vbYesNo + vbDefaultButton2) 提示用户If res = vbYes Then 如确实要删除AdodcStudent.Recordset.DeleteAdodcStudent.Recordset.MoveNex

15、tIf AdodcStudent.Recordset.EOF = True ThenAdodcStudent.Recordset.MoveLast- 7 -End IfEnd IfEnd SubPrivate Sub Command4_Click() “更新“ 命令按钮 将文本框中的当前值写入结果集中相应字段中AdodcStudent.Recordset.Fields(“学号“) = Trim(Text1.Text)AdodcStudent.Recordset.Fields(“姓名“) = Trim(Text2.Text)AdodcStudent.Recordset.Fields(“学院“)

16、= Trim(Text3.Text)AdodcStudent.Recordset.Fields(“专业“) = Trim(Text4.Text)AdodcStudent.Recordset.Fields(“年级“) = Trim(Text5.Text) 使更新生效AdodcStudent.Recordset.Update 使“添加“和“删除“按钮成为可用状态Command1.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub Command5_Click() “上一条“ 命令按钮AdodcStudent.Recordset.MoveP

17、reviousEnd SubPrivate Sub Command6_Click() “下一条“ 命令按钮AdodcStudent.Recordset.MoveNextEnd Sub(2)图书表 VB 代码Private Sub Command2_Click() “添加“ 命令按钮AdodcBook.Recordset.AddNew 使“添加“和“删除“按钮成为不可用状态Command2.Enabled = FalseCommand3.Enabled = False 使“更新“和“取消“按钮成为可用状态Command4.Enabled = TrueCommand5.Enabled = True

18、 清空文本框中显示的内容Text1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “Text5.Text = “End SubPrivate Sub Command3_Click() “删除“ 命令按钮- 8 -Dim res As Integerres = MsgBox(“确定要删除此行记录?“, vbExclamation + vbYesNo + vbDefaultButton2) 提示用户If res = vbYes Then 如确实要删除AdodcBook.Recordset.DeleteAdodcBook.Recordset.Mov

19、eNextIf AdodcBook.Recordset.EOF = True ThenAdodcBook.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command4_Click() “更新“ 命令按钮 将文本框中的当前值写入结果集中相应字段中AdodcBook.Recordset.Fields(“图书编号“) = Trim(Text1.Text)AdodcBook.Recordset.Fields(“图书名称“) = Trim(Text2.Text)AdodcBook.Recordset.Fields(“出版社名称“) = Trim(Te

20、xt3.Text)AdodcBook.Recordset.Fields(“出版日期“) = Trim(Text4.Text)AdodcBook.Recordset.Fields(“作者“) = Trim(Text5.Text) 使更新生效AdodcBook.Recordset.Update 使“添加“和“删除“按钮成为可用状态Command2.Enabled = TrueCommand3.Enabled = True 使“取消“按钮成为不可用状态Command5.Enabled = FalseEnd SubPrivate Sub Command5_Click()Command2.Enabled

21、 = TrueCommand3.Enabled = TrueCommand5.Enabled = FalseEnd SubPrivate Sub Command6_Click() “上一条“ 命令按钮AdodcBook.Recordset.MovePreviousEnd SubPrivate Sub Command7_Click() “下一条“ 命令按钮AdodcBook.Recordset.MoveNextEnd Sub(3)管理员表 VB 代码Private Sub Command1_Click() “退出“ 命令按钮- 9 -EndEnd SubPrivate Sub Command2_

22、Click() “添加“ 命令按钮AdodcManager.Recordset.AddNew 使“添加“和“删除“按钮成为不可用状态Command2.Enabled = FalseCommand3.Enabled = False 使“更新“按钮成为可用状态Command4.Enabled = True 清空文本框中现实的内容Text1.Text = “Text2.Text = “End SubPrivate Sub Command3_Click() “删除“ 命令按钮Dim res As Integerres = MsgBox(“确实要删除此行记录吗?“, vbExclamation + vb

23、YesNo + vbDefaultButton2) 提示用户If res = vbYes Then 如确实要删除AdodcManager.Recordset.DeleteAdodcManager.Recordset.MoveNextIf AdodcManager.Recordset.EOF = True ThenAdodcManager.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command4_Click() “更新“ 命令按钮 将文本框中的当前值写入结果集中相应字段中AdodcManager.Recordset.Fields(“管理员

24、编号“) = Trim(Text1.Text)AdodcManager.Recordset.Fields(“管理员姓名“) = Trim(Text2.Text) 使更新生效AdodcManager.Recordset.Update 使“添加“和“删除“按钮成为可用状态Command2.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub Command5_Click() “上一条“ 命令按钮AdodcManager.Recordset.MovePreviousEnd Sub- 10 -Private Sub Command6_Click

25、() “下一条“ 命令按钮AdodcManager.Recordset.MoveNextEnd Sub(4)借阅表 VB 代码Private Sub Command1_Click() “退出“ 命令按钮EndEnd SubPrivate Sub Command2_Click() “上一条“ 命令按钮AdodcBorrown.Recordset.MovePreviousEnd SubPrivate Sub Command3_Click() “下一条“ 命令按钮AdodcBorrown.Recordset.MoveNextEnd SubPrivate Sub Command4_Click() “添

26、加“ 命令按钮AdodcBorrown.Recordset.AddNew 使“添加“和“删除“按钮成为不可用状态Command4.Enabled = FalseCommand5.Enabled = False 使“更新“按钮成为可用状态Command6.Enabled = True 清空文本框中现实的内容Text1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “Text5.Text = “Text6.Text = “End SubPrivate Sub Command5_Click() “删除“ 命令按钮Dim res As Integer

27、res = MsgBox(“确实要删除此行记录吗?“, vbExclamation + vbYesNo + vbDefaultButton2) 提示用户If res = vbYes Then 如确实要删除AdodcBorrown.Recordset.DeleteAdodcBorrown.Recordset.MoveNextIf AdodcBorrown.Recordset.EOF = True ThenAdodcBorrown.Recordset.MoveLastEnd IfEnd If- 11 -End SubPrivate Sub Command6_Click() “更新“ 命令按钮 将文

28、本框中的当前值写入结果集中相应字段中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)AdodcB

29、orrown.Recordset.Fields(“应归还日期“) = Trim(Text6.Text) 使更新生效AdodcBorrown.Recordset.Update 使“添加“和“删除“按钮成为可用状态Command4.Enabled = TrueCommand5.Enabled = TrueEnd Sub(5)管理表 VB 代码Private Sub Command1_Click() “退出“ 命令按钮EndEnd SubPrivate Sub Command2_Click() “添加“ 命令按钮AdodcManagement.Recordset.AddNew 使“添加“和“删除“按

30、钮成为不可用状态Command2.Enabled = FalseCommand3.Enabled = False 使“更新“按钮成为可用状态Command4.Enabled = True 清空文本框中现实的内容Text1.Text = “Text2.Text = “Text3.Text = “End SubPrivate Sub Command3_Click() “删除“ 命令按钮Dim res As Integerres = MsgBox(“确实要删除此行记录吗?“, vbExclamation + vbYesNo + vbDefaultButton2) 提示用户If res = vbYes

31、 Then 如确实要删除AdodcManagement.Recordset.DeleteAdodcManagement.Recordset.MoveNextIf AdodcManagement.Recordset.EOF = True ThenAdodcManagement.Recordset.MoveLast- 12 -End IfEnd IfEnd SubPrivate Sub Command4_Click() “更新“ 命令按钮 将文本框中的当前值写入结果集中相应字段中AdodcManagement.Recordset.Fields(“管理日期“) = Trim(Text1.Text)A

32、dodcManagement.Recordset.Fields(“管理员编号“) = Trim(Text2.Text)AdodcManagement.Recordset.Fields(“管理员姓名“) = Trim(Text3.Text) 使更新生效AdodcManagement.Recordset.Update 使“添加“和“删除“按钮成为可用状态Command2.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub Command5_Click() “上一条“ 命令按钮AdodcManagement.Recordset.MovePr

33、eviousEnd SubPrivate Sub Command6_Click() “下一条“ 命令按钮AdodcManagement.Recordset.MoveNextEnd Sub3.33 应用程序的使用说明为数据库中 5 个表设计的 VB 工程中,其基本类型相似,由于涉及到参照完整性约束,因此这里将重点说明“学生表”和“借阅表”的使用说明, “图书表”和“管理员表”参照“学生表” , “管理表”参照“借阅表” 。(1) 学生表使用说明启动 VB 程序,打开“学生表”的工程文件,并运行该程序。- 13 -1) 单击“上一条” “下一条”按钮,移动指针将上下移动到相应的条目。2) 单击“添

34、加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在“学生表”的最后一行条目中。- 14 -3) 单击“更新”按钮,数据将完整地添加到“学生表”中。- 15 -4) 要删除更新的数据时,先将移动指针指向要删除的条目,然后单击“删除“按钮,新添加的数据将从“学生表”中删除。5)单击“退出”按钮,结束程序代码,退出运行界面。(2) 图书表使用说明启动 VB 程序,打开“图书表”的工程文件,并运行该程序。1)单击“上一条” “下一条”按钮,移动指针将上下移动到相应的条目。2)单击“添加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,- 16 -数据将同时显示在“图书

35、表”的最后一行条目中。3)单击“更新”按钮,数据将完整地添加到“图书表”中。4)要删除更新的数据时,先将移动指针指向要删除的条目,然后单击“删除“按钮,新添加的数据将从“图书表”中删除。5)单击“退出”按钮,结束程序代码,退出运行界面。(3)管理员表使用说明启动 VB 程序,打开“管理员表”的工程文件,并运行该程序。1)单击“上一条” “下一条”按钮,移动指针将上下移动到相应的条目。2)单击“添加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在“管理员表”的最后一行条目中。3)单击“更新”按钮,数据将完整地添加到“管理员表”中。4)要删除更新的数据时,先将移动指针指向

36、要删除的条目,然后单击“删除“按钮,新添加的数据将从“管理员表”中删除。5)单击“退出”按钮,结束程序代码,退出运行界面。- 17 -(4)借阅表使用说明启动 VB 程序,打开“借阅表”的工程文件,并运行该程序。- 18 -1) 单击“上一条” “下一条”按钮,移动指针将上下移动到相应的条目。2) 单击“添加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在“借阅表”的最后一行条目中。- 19 -3) 注意,根据参照完整性约束, “借阅表”与“图书表”相连接,当“图书表”中没有添加并更新新的数据时,单击“更新”按钮后,添加的数据将无法更新到“借阅表”中。- 20 -4)

37、无法更新数据,也就不存在删除更新条目的操作。5)单击“退出”按钮,结束程序代码,退出运行界面。(5)管理表使用说明启动 VB 程序,打开“管理表”的工程文件,并运行该程序。1)单击“上一条” “下一条”按钮,移动指针将上下移动到相应的条目。2)单击“添加”按钮,窗体上的文本框控件将清空,可以在文本框中输入数据,数据将同时显示在“管理表”的最后一行条目中。3)注意,根据参照完整性约束, “管理表”与“管理员表”相连接,当“管理员表”中没有添加并更新新的数据时,单击“更新”按钮后,添加的数据将无法更新到“管理表”中。4)无法更新数据,也就不存在删除更新条目的操作。5)单击“退出”按钮,结束程序代码,退出运行界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报