资源描述
图书流通管理系统
一、 基础功效介绍
图书流通管理系统是图书管理系统一个关键组成部分。其关键功效以下:
² 借书处理:完成读者借书这一业务步骤。
² 还书处理:完成读者还书这一业务步骤。
² 罚款处理:处理读者借书超期罚款处理。
² 新书上架:输入新书资料。
² 旧书淘汰:删除图书资料。
² 读者查询:依据读者号,查询读者借阅情况。
二、 需求分析
1、 借书过程:读者选择所需图书,将图书和借书卡交给管理人员,管理人员用阅码器将图书和借书卡上读者条码读入处理系统。读取成功后,系统将在借阅文件中读入增加一条统计,包含读者码、图书条码、借阅日期等。
2、 还书过程:同借书过程,管理人员依据图书和借书卡上读者条码读取出借阅文件中相关统计,加上还书日期写入借阅历史文件,并将借阅文件中相关统计删除。
3、 在借书过程中,有下列情况之一将不予办理借书手续:
² 读者所借图书已超出该读者许可最多借书数目;
² 该读者统计中有止借标志;
² 该读者还有超出归还日期仍未归还图书;
² 该图书暂停外借,或该书仅供室内阅览。
4、 在还书过程中,系统依据还书日期进行计算并判定是否超期,若超期则计算出超期天数、罚款数、并答应罚款通知书,计入罚款文件,同时在读者统计上作止借标志。当读者交过罚款以后,系统依据读者码差罚款文件,将对应统计写入罚款历史文件,并从罚款文件中删除该统计,同时去掉读者文件中止借牌。
5、 有新图书到来是,依据图书条形码在图书文件中增加相关统计;在有旧书被淘汰时,依据图书条形码在图书文件中查询相关统计并删除掉。
6、 依据读者借书卡条码,能够查询读者相关信息。
三、 概念结构设计
经过了解用户功效需求,发觉图书流通管理系统中存在着五个实体,分别是读者类别、读者信息、书籍信息、书籍类别信息、罚款标准。实体属性图所表示。其中,读者实体属性关键包含读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、E-mail、办证日期、备注等等;书籍实体属性关键包含书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息等;读者类别信息关键包含类别编号、类别名称、借书数量、备注等;书籍类别信息关键包含类别编号、类别名称、关键词、借书期限备注等;罚款规则关键包含读者类别、书籍类别、超期基天数、罚款单位金额等。
图4 书籍类别信息实体
图3 读者类别信息实体
图2 书籍信息实体
图1 读者信息实体
图5 罚款标准
这些实体关系为:一个读者只符合一个类别,一个类别读者有多个;一本书籍只符合一个类别,一个类别书籍有多本;一个读者能够借阅多本书;一本书能够被多个读者借阅。其E-R关系图图所表示:
图6 图书流通管理系统E-R图
四、 逻辑结构设计
依据图书流通管理系统E-R图,根据一定规则将其转化。
(1)全部实体转换为一个关系模式:
读者类别信息(类别编号,类别名称,借书数量,使用期限,备注),其中主码为类别编号。
读者信息(读者编号,读者姓名,读者种类,已借数目,读者状态,读者性别,院系,住址,电话号码,E-mail,办证日期,备注),其中主码为读者编号。
书籍类别信息(类别编号,类别名称,借书期限,关键词,备注),其中主码为类别编号。
书籍信息(书籍编号,书籍名称,书籍类别,流通状态,作者姓名,出版社名称,出版日期,书籍页数,关键词,登记日期,备注),其中主码为书籍编号。
罚款规则(罚款规则编号,读者类别,书籍类别,超期基天数,罚款单位金额,备注),其中主码为罚款规则编号。
(2)读者信息和读者类别信息一对多关系转换:将该关系归并至读者信息实体中,删除读者种类,增加读者种类代码,并将其设为外码,即:
读者信息(读者编号,读者姓名,读者种类代码,读者性别,工作单位,家庭住址,电话号码,E-mail,办证日期,备注),其中读者种类代码为其外码,参考读者类别信息中类别编码。
(3)同理,将书籍信息和书籍类别信息一对多关系并归至书籍信息实体中,化为:
书籍信息(书籍编号,书籍名称,书籍类别代码,作者姓名,出版社名称,出版日期,书籍页数,关键词,登记日期,备注),其中书籍类别代码为外码,参考书籍类别信息中类别编码。
(4)书籍类别信息和罚款规则是多对多关系,将其归并至罚款规则实体中,同理应用于读者类别信息和罚款规则关系,结果为:
罚款规则(罚款规则编号,读者类别代码,书籍类别代码,超期基天数,罚款单位金额,备注),其中书籍类别代码和读者类别代码为外码,分别参考书籍类别信息和读者类别信息中类别编码。
(5)在借书关系、还书关系、借阅关系中,读者和书籍是多对多关系,增加关系模式以下:
借书统计(借书信息编号,读者编号,书籍编号,借书日期,备注),其中借书信息编号为主码。读者编号和书籍编号为外码。
还书统计(还书信息编号,读者编号,书籍编号,还书日期,超期天数,罚款金额,备注),其中还书信息编号为主码,读者编号和书籍编号为外码。
借阅统计(借阅统计编号,读者编号,书籍编号,借书日期,还书日期,备注),其中借阅统计编号为主码,读者编号和书籍编号为外码。
(6)在罚款统计关系中,读者和书籍是多对多关系,增加关系模式以下:
将罚款统计合并至还书关系内,增加超期天数、罚款金额等信息。
罚款历史(罚款历史编号,读者编号,罚款金额,罚款日期,备注),其中罚款历史编号为主码,读者编号为外码。
整理后结果以下: (下划线代表主键,灰度底纹代表外键)
读者信息(读者编号,读者姓名,读者种类编号,已借数目,读者状态,读者性别,院系,住址,电话号码,E-mail,办证日期,备注)
读者类别信息(类别编号,类别名称,借书数量,使用期限,备注)
书籍信息(书籍编号,书籍名称,书籍类别,流通状态,作者姓名,出版社名称,出版日期,书籍页数,关键词,登记日期,流通状态,备注)
书籍类别信息(类别编号,类别名称,借书期限,关键词,备注)
罚款规则(罚款规则编号,读者类别,书籍类别,超期基天数,罚款单位金额,备注)
借书统计(借书信息编号,读者编号,书籍编号,借书日期,备注)
还书统计(还书信息编号,读者编号,书籍编号,还书日期,超期天数,罚款金额,备注)
借阅统计(借阅统计编号,读者编号,书籍编号,借书日期,还书日期,备注)
罚款历史(罚款历史编号,读者编号,罚款金额,罚款日期,备注)
五、 数据库对象设计
1、 角色
添加两类用户自定义数据库角色:读者和管理者,并分别给予不一样权限:
读者:能够查询个人信息、书籍信息、个人借阅统计和个人罚款历史等。
管理者:能够查询、插入、删除数据库中数据。
2、 约束
(1) IDENTITY约束:
分别为以下列加IDENTITY约束:借书统计.借书信息编号,还书统计.还书信息编号,借阅统计.借阅统计编号,罚款统计.罚款统计编号,罚款历史.罚款历史编号。
(2) 分别为以下列加DEFAULT约束:
将读者信息.办证日期、书籍信息.登记日期、借书统计.借书日期、还书统计.还书日期、借阅统计.还书日期、罚款历史统计.罚款日期分别默认为目前日期;
为还书统计.超期天数、还书统计.罚款金额、读者信息.已借数目添加默认值为0。
为读者信息.读者状态添加默认值为‘正常’。
为书籍信息.流通状态添加默认值为‘在架上’。
3、视图
(1) 为读者创建‘sjcx_view’,提供书籍相关信息。内容包含书籍编号,书籍名称,书籍类型,作者姓名,出版社名称,出版时间,书籍页数,借书时限,流通状态等信息。
(2) 创建‘sjll_view’,提供书籍历史借阅情况,反应其受欢迎程度。内容包含书籍编号,书籍名称,借阅次数等信息。
(3) 创建‘fk_view’,提供罚款信息,并按读者编号分组计算罚款累积金额。
3、 存放过程
(1) 为读者创建‘sp_sjcx’,经过书籍名称帮助读者查询指定书籍书籍编号,书籍名称,书籍类型,作者姓名,出版社名称,出版时间,书籍页数,借书时限,流通状态等信息。
(2) 为读者创建‘sp_grjyjl’,经过读者编号能够查询读者姓名,书籍编号,书籍名称,借书日期,还书日期等信息。
(3) 为读者创建‘sp_fkls’,经过读者编号能够查询读者姓名,罚款金额,罚款时间,并计算罚款总额。
4、 触发器
(1) 为借书统计创建触发器‘js_trg’,当插入新借书信息是,读者必需满足一定条件:‘读者状态’为正常,书籍‘流通状态’为‘在架上’。假如满足以上条件,则能够借阅,打印‘借阅成功’,并将书籍‘流通状态’改为‘已借出’,将读者信息‘已借数目’加1;不然会滚。
(2) 为还书统计创建触发器‘jscqts_trg’,当插入新还书信息时,自动为其计算超期天数和须缴纳罚款。若需要缴纳罚款,则提醒须缴纳罚款数额,并将读者信息中‘读者状态’转为‘停止借阅’;若超期但无需缴纳罚款,则跳出警告信息。
(3) 为还书统计创建触发器‘hs_trg’。(缴纳罚款后,删除还书统计,视为还书成功)当成功还书后,假如缴纳罚款则在罚款历史统计中增加一条统计,并将读者信息中‘读者状态’转为‘正常’。在借阅历史统计中增加一条统计,删除借书统计中相关统计。将读者‘已借数目’减1。
5、 索引
(1) 为‘书籍信息表’中‘书籍名称’创建索引‘sjmc_index’
(2) 为‘读者信息表’中‘读者姓名’创建索引‘dzxm_index’
六、 功效实现说明
² 借书处理:经过向表“借书统计”成功添加一条统计视为借阅成功。
² 还书处理:经过向表“还书统计”成功添加一条统计,并成功删除,视为借阅成功。
² 罚款处理:管理者从“还书统计”中读取出是否须缴纳罚款(经过触发器’jscqts_trg’完成),在读者缴纳清罚款后,管理者才能将对应“还书统计”中统计删除,成功还书。
² 新书上架:输入新书资料。
² 旧书淘汰:删除图书资料。
² 读者查询:
读者经过‘书籍名称’利用存放过程’sp_sjcx’查询相关书籍信息。
读者经过‘读者姓名’利用存放过程‘sp_grjyjl’查询相关读者历史借阅统计。
读者经过‘读者姓名’利用存放过程‘sp_fkls’查询相关读者罚款情况。
管理者经过视图‘sjll_view’可查询书籍历史借阅情况。
管理者经过视图‘fk_view’可查询罚款信息。
展开阅读全文