图书借阅管理系统实例.doc
文本预览下载声明
PAGE
PAGE 59
附件4:
图书借阅管理系统
本课程设计的目的是熟悉应用程序的设计过程和开发过程,重点在于通过设计程序掌握数据库应用系统的设计与实现的步骤、方法和常用技巧。
本课程设计在对图书馆有关人员进行访谈以及对人工操作的有关表格收集的基础上,现需要设计并实现一个“图书借阅管理”系统 , 实现以下功能。
1、对于“学生基本数据”及“书籍数据”都要有查询、新增、修改、删除及打印等功能。
2、假设一种书只购进一本 , 学生借书时不限本数,14日内还书。
3、需印制借书证、班级名册、书籍明细表、标签、逾期名单、书籍借阅排行榜等报表。
4、“书籍编号”目前共用6个码。前两码为英文字母,其余则为流水号。前两码可用来区分书籍的类别 , 如表 1.1 所示。
5、“科别代号”目前共两码,用来区分科别,如表 1.2 所示。
表 1.1 书类编码
表 1.2 科别代码表
6 . 人工操作的报表,共有四个,参见图1.1至图1.3和表 1.3。
(1) 借书证,参见图1.1。
(2) 班级名册,参见图1.2。
(3 ) 书籍明细表,参见图1.3。
(4 ) 借阅登记簿,参见表 1.3。
图 1.1 借书证
学 号58503105
借阅人
李敏雄
汪国隆
图 1.2 班级名册
图 1.3 书籍明细表
表 1.3 借阅登记簿
书 号
DA0001
DA0002
借阅日期
2001 .03 .05
2002 .04 .07
归还日期
2001 .03 .27
2002 .05 .21
1 .1 .1
1 .1 数据库分析与设计
1 . 针对以上要求和人工操作的报表 , 分析如下。
(1 ) 由“ 借书证”及“ 班级名册”两个报表可搜集到下列数据项 :
学号、姓名、性别、电话、地址、班级、印表日期、人数、页码。
(2 ) 由“书籍明细表”报表可搜集到下列数据项:
序号、书籍编号、书籍名称、作者、出版商、购买日期、是否借出、类别、册数。
注意:页码及印表日期已经有了 。
(3) 由“ 借阅登记簿”报表可搜集到下列数据项 :
借阅人、借阅日期、归还日期。
注意:页码及印表日期已经有了 。
(4 ) 由要求的第 5 条可搜集到下列数据项 :
科别代号、科别名称。
(5 ) 虽然在要求的第 4 条中提到要“ 代码”及“ 类别”两个数据项 , 但“ 代码”便是“书籍
编号”的前两码 “类别”数据项已经有了, 故此两个数据项并不搜集。
综合以上分析可知“ 图书借阅管理”系统的数据项有 24 个:
学号、姓名、性别、电话、地址、班级、印表日期、人数、页码、序号、书籍编号、书籍名称、作者、出版商、购买日期、是否借出、类别、册数、借阅人、借阅日期、归还日期、科别代号、科别名称、借阅次数。
2 . 数据项分析 , 找出真正需要放入数据表的“数据项”。
(1 )去除可由其他字段计算 ( 或推演 ) 得来的字段:“类别”可由“代码”推演 , 应删除。
(2 )去除可自行计算得来的字段,共有 5 个:
① 印表日期 ( 可由 DA T E ( ) 函数计算得到 );
② 人数 ( 印表时当时计算 );
③ 页码 ( 印表时当时计算 );
④ 序号 ( 印表时当时计算 );
⑤ 册数 ( 印表时当时计算 ) 。
(3)去除内容相同名称不同的字段 , 其中“借阅人”字段便是与“ 姓名”字段内 容相同 ,故应
删除。
(4)以最小的逻辑单位储存数据,其中“班级”字段便必须分解成“年级”和“班级”两个字段。
3.分析结果。
由以上分析得出 “图书借阅管理”系统的数据表需要有18个字段(已按照其性质排序):
学号 ( STUID )、姓名( NAME )、性别( SEX )、科别代号( DEPNO )、科别名称
(DEPNAME)、年级(GRADE)、班级(CLASS)、电话(TEL)、地址(ADDR)、书籍编号
(CODE)、书籍名称(BOOKNAME)、作者(WRITER)、出版商(PUBLISHER)、购买日期(BUYDATE)、
借阅次数(NUMBER)、是否借出(ISLOAN)、借阅日期(LOANDATE)、归还日期(RETURNDATE)。
若把这 18 个字段 , 放在一个数据表 All , 其数据结果参见图 1.4。
图 1.4 学生与书籍信息全表
假设每个学生只登记一个电话和地址 , 则 All 数据表的函数依赖关系参见图 1.5。
图 1.5 All 数据表的函数依赖关系
1 .1 .2
All 数据表中,存在数据重复(如一本书被多个学生借阅, 则其书名和出版商等信息就需要多次存储)、更新异常(如更新一本书的书名时, 需要将所有存有该书的书名都更新)、插入异常 (
显示全部