图书馆管理系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库设计与管理

课程设计报告

题目:图书借阅管理系统

专业:

班级:

姓名:

学号:

指导教师:

学期:

目录

一、概述

1、本课程设计的题目 (2)

2、小组成员 (2)

3、个人分工 (2)

4、本人贡献 (2)

(1)建表 (2)

(2)表的数据维护 (2)

(3)数据完整性 (3)

(4)数据查询 (3)

二、需求分析

1、数据需求 (3)

2、事物需求 (4)

3、系统需求分析结果 (4)

三、数据库概念结构设计

(图书借阅管理系统E-R图) (5)

四、数据库逻辑结构设计

学生借阅图书表bookborrow (6)

学生归还图书表bookreturn (6)

五、数据库物理实现

1、学生借阅图书时各种异常情况下操作的结果 (7)

2、学生正常借阅图书时操作 (7)

3、学生续借图书 (9)

4、学生还书 (10)

5、查询一段时间之内各类未归还图书的在借次数 (12)

六、心得体会

一、概述

1、本课程设计的题目是:《图书借阅管理系统》。

2、小组成员有:于菲菲、吴维、王菲菲。

3、个人分工:于菲菲负责student表,吴维负责bookborrow和

bookreturn表,王菲菲负责bookinfo表和bookclass表。

4、本人贡献:

(1)建立学生借阅图书信息表(bookborrow)和学生归还图书信息表(bookreturn):

根据图书借阅管理信息的需要,除了需要保存学生信息的学生信息表,保存图书信息的图书信息表、类别表之外,在学生借阅图书时,为了准确记录借阅、归还的学生号、图书编号、时间,还必须创建一个借阅表,为了简化借阅信息的查询,直接显示未归还和已归还的图书借阅,我分别创建了学生借阅图书信息表(bookborrow)和学生归还图书信息表(bookreturn), 学生借阅图书信息表用来存储借书学生的学号、所借图书的图书编号、借书时间、应归还日期、续借次数,学生归还图书信息表用来存储还书学生的学号、所还图书的图书编号、还书时间、超期罚款金额。

(2)表的数据维护:

a. bookborrow表数据插入:bookborrow表中借书学生的学号、所借图书的图书编号、借书时间、应归还日期都是由借书存储过程insert_bookborrow_1来插入的,借书学生的学号、所借图书的图书编号由存储过程的参数设定,借书时间则是利用系统函数getdate()获取当天时间来赋值,规定学生一次性借书时间不能超过一个月,所以应归还日期在借书日期的基础上加一个月。

b. bookborrow表数据更新:续借次数则涉及到续借存储过程,续借时首先根据续借当天日期和bookborrow表中的应归还日期判断是否超过一次性借书时间限制,超过应归还日期则不能续借,在没有超过续借日期的前提下,还对学生可续借次数进行了限制,超过次数限制的话,仍然无法续借,若满足以上两个续借条件,此次续借可正常进行,并且更新bookborrow表中的结束日期为此次续借日期,续借次数自加1。

c. bookreturn表数据插入、bookborrow表数据删除:在学生归还图书时,先根据bookborrow表的记录判断还书输入参数信息是否存在,若不存在则表明没有对应的借书行为,不能进行还书的操作。bookreturn表中还书学生的学号、所还图书的图书编号、还书时间、超期罚款金额都是由还书存储过程returnbook 来插入的,还书书学生的学号、所借图书的图书编号由存储过程的参数设定,还书时间利用系统函数getdate()获取当天时间来赋值。根据bookborrow中的应归还日期来判断归还图书时是否超过还书期限,若超期,则按超期天数内每天0.1元来计算超期罚款金额,并将其插入bookreturn表中对应的超期罚款金额列。还书成功的同时删除bookborrow表中对应的借书记录。

(3)数据完整性:

a.使用默认约束实施数据完整性,为了实现续借次数的自加,为bookborrow表的续借次数列定义了一个默认约束,在学生借书时,没有指定该列的值,使用默认值“0”。

b.使用外键约束实施数据完整性:因为bookborrow表中的学生学号必须是学生信息表中已经注册过的学生号,图书编号也必须是图书信息表中存在的图书号。所以为bookborrow表的学生学号和图书编号两列分别定义外键约束来实施数据完整性。从而限定了bookborrow表中这两列的取值范围,并设置打开级联更新,关闭级联删除。设置级联更新的作用是,在图书信息表和学生信息表相应的信息改变,不需要再对bookborrow表的对应列一一修改,学生学号和图书编号自动修改为新值。关闭级联删除的作用是,若某学生成功借出了某本书后,要想删除这个学生或者本书的信息,在bookborrow表中还存在相应记录的情况下(即学生还未还书,还没有删除bookborrow中的借书记录),则无法操作成功,SQL Server将报错,并回滚该删除操作。

(4)数据查询:将学生借阅图书信息和学生归还图书信息分开存储,这样的设计思想可以简化很多查询操作。对图书管理最重要的部分莫过于管理未归还图书,还书同学的相应借书记录都直接从bookborrow表中删除,这样的话,bookborrow表就能直接显示为归还的学生、图书信息。查询一段时间之内各类未归还图书的在借次数时,输入两个时间点,对图书类别表、图书信息表、bookborrow表进行内连接查询,统计借书时间在两个时间点之内的查询结果行数,即可轻松查阅一段时间之内各类未归还图书的在借次数。

通过以上表和功能的各种设计,最终形成的学生借阅图书信息表(bookborrow)和学生归还图书信息表(bookreturn)不仅能系统的记录记录每次发生的借阅事件,还书事件,轻松实现借书、续借、还书的操作,而且对于各种限制约束也全面考虑,维护数据完整性,并给出各种提示信息,从而实现人性化的操作界面。

二、需求分析

1、数据需求

图书馆图书管理系统需要完成功能主要有:

(1)学生基本信息的输入,包括学生学号、学生姓名、学生性别等。

(2)学生基本信息的查询、修改,包括学生学号、学生姓名、学生性别等。

(3)图书类别标准的制定、类别信息的输入,包括图书分类号、类别名称。

(4)图书类别信息的查询、修改,包括图书分类号、类别名称。

(5)图书信息的输入,包括图书编号、图书名称、作者姓名、出版社名称、出版日期、定价、图书总量、图书余量。

(6)图书信息的查询、修改,包括图书编号、图书名称、作者姓名、出版社名称、出版日期、定价、图书总量、图书余量。

(7)学生借书信息的输入,包括学生学号、学生姓名、图书名称、借书日期。

(8)学生借书信息的查询、修改,包括学生学号、学生姓名、图书编号、图书名称、借书日期、应归还日期等。

(9)学生续借信息的输入,包括学生学号、图书编号、借书日期。

(10)学生续借信息的查询、修改,包括学生学号、图书编号、借书日期。

相关文档
最新文档