图书借阅管理系统的设计
1.需求分析
图书信息、借阅证件信息及图书借阅管理是一件非常繁琐但又及其重要的工作,因此有必要开发一个数据库管理系统,用来管理这些信息。这篇课程设计介绍的就是图书借阅信息管理系统。系统的具体要求如下所述:
(1)图书信息的录入:要求能够将图书信息录入到数据库中。
(2)图书信息的修改:根据需要,修改、删除图书信息。
(3) 用户登陆:根据用户权限登陆此系统。
(4)系统用户管理:要求可以管理系统的用户,包括添加、修改和删除用户。
(5)借阅证件信息录入:可以输入不同类型的借阅者信息,并根据需要修改、删除借阅证件信息。
(6)借阅证管理:包括借阅证丢失、过期等管理。
(7)借阅管理:包括借书、还书、过期还书与书籍丢失处罚等管理。
2.数据库设计
数据库设计主要在SQL Server服务器端建立数据库和数据表,并实现数据处理功能。本文所设计的数据库中要记录读者的借书情况、图书被借阅的情况以及读者、图书的基本情况。下面对图书借阅管理系统所需的数据结构进行分析并创建数据库。
2.1 概念结构设计
现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。由于这个系统并不复杂,因此可采用自顶向下的设计方法。自顶向下设计的关键是确定系统的核心活动。所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。确定了核心活动之后,系统就有了可扩展的余地。对于这个图书借阅管理系统,其核心活动是借阅,读者与图书之间是通过借阅发生联系的。因此,此系统包含的实体有:
(1) 读者:用于描述一名读者的基本信息,用借书卡编号来标识。
(2) 图书:用于描述一本图书的基本信息,用图书编号来标识。
经过初步分析,可以得到此系统中各实体所包含的基本属性如下:
读者:借阅证编号、读者姓名、工作单位、身份证号、借阅证类型、办证日期、证件状态。
图书:图书编号、图书名称、图书分类、作者、出版社、图书价格、图书封面
由于一名读者可以同时借阅多本图书,而一本图书一次只能借给一名读者,因此读者和图书之间是一对多的联系。基本E-R模型如图1所示:
2.2 逻辑结构设计
有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。根据转换规则,这个E-R转换的关系模式为:
(1) 读者(借阅证编号,读者姓名,工作单位,身份证号,借阅证类型,办证日期,证件状态),主码为借阅证编号。
(2) 图书(图书编号,图书名称,作者,出版社,图书价格,图书分类,图书封面),主码为图书编号。
(3) 借阅(借阅证编号,图书编号,借书日期,更新日期,还书日期,罚金),主码为(借阅证编号,图书编号)。
现在分析一下这些关系模式。由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三范式的关系模式。
在设计好关系模式并确定好每个关系模式的主码后,接着根据这些关系模式之间的关联关系确定关系模式的外码。由基本E-R模型可得,“借阅”关系中的“借阅证编号”与“读者”关系中的主码“借阅证编号数据管理系统有哪些”是同语义且取值域相同,“借阅”关系中的“图书编号”与“图书”关系中的主码“图书编号”是同语义且取值域相同。因此,应在“借阅”关系中添加“借阅证编号”和“图
书编号”两个外码,它们分别引用“读者”关系中的“借阅证编号”和“图书”关系中的“图书编号”。
最后确定表中各属性的详细信息,包括数据类型、长度、完整性约束条件等。
(1)读者表,见图2:
图2 读者表
(2)图书表,见图3:
图3 图书表
(3)借阅表,见图4:
图4 借阅表
有了数据库的基本表之后,需要看一下这些基本表能否满足产生报表的需求。在数据库应用系统中,用户需要产生大量的报表,而报表的内容来自数据库中的基本表。因此在设
计好数据库的基本表之后,要看一下这些基本表的内容是否全部包含了要产生的报表的内容。如果满足,则说明所设计的基本表在满足报表方面是完善的;若不能满足,则看一下报表中的哪些项没有被包含在基本表中,并将它们加到合适的基本表中。需注意的是,在基本表中添加了新属性后,要判断被修改的表是否还满足第三范式的要求,如果不满足,还要进行关系的规范化。比如若此图书借阅管理系统要求生成读者借书情况表,内容包括借阅证编号、读者姓名、图书名称、借书日期,其中的“借阅证编号”、“读者姓名”可由读者表得到,“图书名称”可由图书表得到,“借书日期”可由借阅表得到,因此我知道所设计的基本表能够满足报表的要求。这可以通过定义视图实现,也可以在生成报表时通过查询语句实现。
3.数据库行为设计
对于数据库应用系统来说,最常用的功能就是安全控制、对数据的增、删、改、查及生成报表。本例也应包含这些基本的操作。
3.1 安全控制
任何数据库应用系统都需要安全控制功能,这个图书借阅管理系统也不例外。假设将系统的用户分为如下几类:
(1) 系统管理员:有系统的全部权限。
(2) 图书馆管理员:具有对图书基本数据的维护权。
(3) 读者:具有对读者基本数据的维护权。
(4) 普通用户:具有对数据的查询权。
在实现时,将每一类用户定义为一个角,这样在授权时只需对角授权,而无需对每个具体的用户授权。
3.2 数据操作功能
数据操作功能包括对这些数据的录入、删除、修改功能。具体如下:
(1)数据录入
包括对这3张表的数据的录入。只有具有相应权限的用户才能录入相应表中的数据。
(2)数据删除
包括对这3张表的数据的删除。只有具有相应权限的用户才能删除相应表中的数据。数据的删除要注意表之间的关联关系,比如当某个读者退出图书馆读者体时,在删除“读者表”中的数据之前,应先删除此读者的全部借阅情况,然后再在读者表中删除此读者。此外,在实际删除操作之前应该提醒用户是否真的要删除数据。
(3)数据修改
当某些数据发生变化或某些数据录入不正确时,应该允许用户对数据库中的数据进行修改。修改数据的操作一般先根据一定的条件查询出要修改的记录,然后再对其中的某些记录进行修改,修改完成后再写回到数据库中。同数据的录入与删除一样,只有具有相应权限的用户才能修改相应表中的数据。
(4)数据查询
在数据库应用系统中,数据查询是最常用的功能。数据查询应根据用户提出的查询条件查询,在设计系统时应首先征求用户的查询需求,然后根据这些查询需求整理出系统应具有的查询功能。一般允许所有使用数据库的人都具有查询数据的权限。本系统应具有的查询要求有:
(1) 根据工作单位,身份证号,借阅证类型,办证日期,证件状态等信息查询读者的基本信息。
(2) 根据作者查询图书的基本信息。
(3) 根据图书查询读者的借阅情况。
(4) 根据图书查询读者的超期情况。
(5) 根据借阅证类型查询读者的借阅及超期情况。
(6) 根据图书分类、作者查询图书的被借阅情况。
(7) 统计每本图书的被借阅次数
(8) 统计每位读者的借阅书籍数量
3.3 生成报表
生成报表是数据库应用中不可缺少的一个功能,也是比较麻烦的工作。所幸的是,常见的许多数据库开发工具(如Visual Basic、Delphi、PowerBuilder等)都提供了报表生成工具,用户可以直接使用这些工具来生成符合实际工作要求的报表。这里需要生成读者借书情况表,这张表所包含的内容为:
读者借书情况表(借阅证编号,读者姓名,图书名称,借书日期)。
由于这张表的内容不能与某个关系模式完全对应,因此可以采用定义视图的方法来解决。创建这张报表的视图的SQL语句描述如下:
读者借书情况表报表
CREATE VIEW 读者借书情况表(借阅证编号,读者姓名,图书名称,借书日期)
AS
SELECT 读者.借阅证编号,读者姓名,图书名称,借书日期
FROM 读者 JOIN 借阅ON读者.借阅证编号 = 借阅.借阅证编号
JOIN 图书 ON 图书.图书编号 = 借阅.图书编号
由于数据库中对视图的操作与对数据库基本表的操作是一样的,因此对用户来说感觉不到用于生成报表的数据库表是基本表还是视图表。在实际的数据库应用系统中,用于生成报表的表经常用视图表来实现。为了灵活起见,可以对数据库的基本表进行任意的组合来生成复杂的报表。而在设计数据库时不必受生成的报表的内容的影响,从而设计出最合适的数据库表结构。
参考文献:
[1] 何玉洁.《数据库原理与应用教程》.机械工业出版社.2007.
[2] 刘亚军高莉莎.《数据库设计与应用》.清华大学出版社.2007.
[3] 明日科技 杨湖 李凤蕾 王斌.《SQL Server 2005数据库系统开发案例精选》.人民邮电出版社.2007.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论