文章目录
- 一、实验目的
- 二、实验内容
-
- 选题方向
- 设计背景
- 第一章 需求分析
-
- 第一部分 系统设计目标
- 第二部分 功能需求分析
-
- 1.系统的功能描述
- 2.主要的操作描述
- 3.数据流图的演示
-
- (1)、顶层流程图
- (2)、第一层流程图
- 第三部分 系统功能的设计与划分
-
- 1.读者管理部分
- 2.图书管理员管理部分
- 第四部分 数据需求分析
-
- 1.数据项
- 2.数据结构
- 3.数据流
- 4.数据存储
- 第二章 概念设计
-
- (一)、局部E-R图模型设计
-
- 1.识别实体与实体的主键
- 2.定义实体之间的联系
- 3.局部E-R图
- (二)、全局E-R图模型设计
- 第三章 逻辑设计
-
- (一)、由实体集转换而来的关系模式
-
- 1.图书(book-info)实体集
- 2.图书类型(booktype-info)实体集
- 3.图书管理员(manager-info)实体集
- 4.读者(readerinfo)实体集
- 5.阅览卡(bookcredit-info)实体集
- 6.出版 (publisher-info)实体集
- (二)、由联系集转换而来的关系模式
-
- 1.借阅表(borrow-info)联系集
- 2.读者还书表(return-info) 联系集
- 3.图书 损单表(breakage-info)联系集
- 4.图书 损明细表(br-detail-info)联系集
- 5.图书购买表(bookBuy-info)联系集
- 6.图书购买入库表(bookStocking-info)联系集
- 7.罚款缴费单表(fine-info)联系集
- 第四章 数据库应用设计
-
- (一)、建表语句
- (二)、建视图语句
-
- 1.入库单
- 2. 损单
- 3.读者未还借书
- 4.图书分类库存
- (三)、建索引语句
- 三、实验小结
一、实验目的
通过充分查阅相关资料,学生自选题目作为实验课题,按照需求分析、概念设计、逻辑设计、数据库应用设计等开发步骤用数据库设计的方法、技术和原理规范设计一个完整的应用程序。
二、实验内容
选题方向
图书借阅管理系统(自助借阅)
设计背景
随着人们知识水平层次的提高,图书馆成为日常生活中不可缺少的一部分,图书管理也变得困难而重要,需要可靠的图书管理系统对图书进行有效的管理,理由如下:图书存书量和业务量庞大,仅靠传统的记帐式管理不可行;图书馆需要为学校或 会有需求者提供图书的详细信息和馆内库存情况,需要建立庞大的数据库,一个健全的图书管理系统可以极大的方便图书管理员的操作,减少图书管理员的工作量并使其能更有效的管理书库中的图书,实现了传统的图书管理工作的信息化建设。
第一章 需求分析
第一部分 系统设计目标
1.图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编 。当借阅者交付押金后,图书馆向每一个借阅者发放阅览卡,阅览卡中包含每一个借阅者的编 和个人信息。系统通过一个单独的程序为借阅者提供服务,借阅者可以独立操作,不需要管理人员的干预,这些服务包括提供查询图书信息、查询个人信息服务、借阅图书和归还图书服务等。
2.当借阅者需要借阅书籍、归还书籍时不需要通过图书管理员进行,也就是说借阅者可以直接通过软件与系统交互,当借阅者借阅的图书数量超过限制时,不运行借阅者再进行借阅。
3.当借阅者借阅的图书超过一定的期限或所借图书有损坏时,需要对其进行处罚,借阅图书时需要阅览卡作为凭据,归还时也需要需要。
4.图书管理员负责系统的管理维护工作,维护工作包括图书的添加、删除和修改,书目的添加和删除,借阅者的添加、删除和修改,并且系统管理员能够查询借阅者、图书和图书管理员的信息。
5.当库存不足时,图书馆从出版 购买的图书,管理人员将图书编 并将其分好图书图书类别,之后再通过系统进行入库操作。
6.图书管理人员对读者的借阅信息的输入,之后系统根据借阅者的借阅情况生成罚款缴费单。
第二部分 功能需求分析
1.系统的功能描述
(1)、基础信息设置
① 设置图书信息:对图书的基本信息进行增加、修改、删除
② 设置图书类型信息:对图书类型的基本信息进行增加、修改、删除
③ 设置图书管理员信息:对图书管理员的基本信息进行增加、修改、删除
④ 设置读者信息:对读者的基本信息进行增加、修改、删除
⑤ 设置阅览卡信息:对阅览卡的基本信息进行增加、修改、删除
⑥ 设置出版 信息:对出版 的基本信息进行增加、修改、删除
(2)、图书借阅管理
① 图书编 :阅览卡持卡人所借的图书编
② 借书日期:图书借出的日期
③ 还书日期:图书归还的日期
④ 罚款金额:显示持卡人未在规定期限内归还图书或对图书造成了损坏而需要罚款的金额
⑤ 是否续期:延长图书的借阅时间
(3)、图书 损管理
① 图书总数:统计所有类型的受损图书数量
② 图书数量:统计该类型的受损数量
③ 受损原因:对受损图书的描述
(4)、图书购买管理
① 图书入库编 :对购买的图书进行编
② 是否入库:显示图书的入库情况
③ 入库日期:图书编 之后记录至系统的时间
④ 图书数量:该图书入库的数量
(5)、罚款缴费管理
① 阅览卡编 :显示需要缴费的卡
② 日期:显示罚款单的日期
③ 金额:显示需要缴纳的罚款金额
(6)、查询统计管理
① 图书查询:通过图书编 查询图书基本信息
② 借阅情况查询:通过阅览卡编 查询借阅基本信息
③ 图书受损情况查询:通过受损图书编 查询图书受损基本信息
④ 图书入库情况查询:通过图书入库编 查询图书入库基本信息
⑤ 罚款缴费单查询:通过缴费单 查询罚款缴费基本信息
2.主要的操作描述
(1)、图书管理:实现图书信息管理:可以实现新书入库,图书信息修改,删除,添加等更新操作。
(2)、学生管理:实现读者信息管理:可以实现读者信息的录入,修改,删除,添加等更新操作。
(3)、借阅管理:系统管理员通过此模块来进行借书、还书以及相关信息的查询操作,该模块主要提供借书信息的登记和查询。
(4)、查询 表:实现图书信息查询,借/还纪录查询,未还图书查询,从而可以方便的进行分组管理。
3.数据流图的演示
(1)、顶层流程图
第三部分 系统功能的设计与划分
1.读者管理部分
(1)处理读者申请阅览卡
(2)读者可以查询本人信息。
(3)读者可以实现自助借/还书
(4)读者可以通过系统完成罚款缴费
(5)读者可以注销阅览卡
2.图书管理员管理部分
(1)处理管理员操作
(2)管理员可以查询所有读者信息。
(3)管理员可以查询所有图书。
(4)管理员可以查询所有借阅信息
(5)管理员可以注销读者阅览卡信息
(6)管理员可以发布与更新图书信息。
(7)管理员可以插入、修改与查询图书受损信息。
(8)管理员可以插入与查询读者罚款缴费信息。
第四部分 数据需求分析
1.数据项
图书(book-info)数据字典B:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
图书编 | BNo | varchar | 20 | 主键 |
图书类型编 | BTNo | char | 10 | 外键 |
出版 编 | PNo | char | 10 | 外键 |
图书名 | BName | varchar | 50 | |
BAuthor | varchar | 20 | ||
出版时间 | PTime | datetime | ||
价格 | Price | Numeric(8,2) | ||
入库时间 | InputTime | datetime | ||
库存总量 | TotalNum | int | ||
现存量 | Biomass | int |
图书类型(booktype-info)数据字典BT:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
图书类编 | BTNo | char | 10 | 主键 |
图书类型名 | BTName | varchar | 50 |
图书管理员(manager-info)数据字典M:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
管理员编 | MNo | varchar | 20 | 主键 |
管理员姓名 | MName | char | 10 | |
性别 | MSex | char | 4 | |
电话 码 | MTNumber | char | 11 | |
家庭住址 | MHAddress | varchar | 50 | |
文化程度 | MEducation | varchar | 50 |
读者(readerinfo)数据字典R:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
读者编 | RNo | varchar | 20 | 主键 |
阅览卡编 | CNo | char | 12 | 外键 |
持卡人姓名 | RName | char | 8 | |
性别 | RSex | char | 4 | |
身份证 | RIDNum | char | 24 | |
未交罚款金额 | RFine | Numeric(8,2) |
阅览卡(bookcredit-info)数据字典C:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
阅览卡编 | CNo | char | 12 | 主键 |
读者编 | RNo | varchar | 20 | 外键 |
余额 | CFine | Numeric(8,2) | ||
可借书册数 | CNum | int | ||
是否挂失 | CW | char | 2 | |
借期天数 | CDate | datetime | ||
可续借天数 | CRenew | datetime | ||
还书日期 | CBack | detetime |
出版 (publisher-info)数据字典P:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
出版 编 | PNo | varchar | 20 | 主键 |
出版 名 | PName | varchar | 50 | |
出版 地址 | PAddress | varchar | 50 |
借阅表(borrow-info)数据字典BB:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
阅览卡编 | CNo | char | 12 | 外键 |
图书编 | BNo | varchar | 20 | 外键 |
借书日期 | BBRTime | datetime | ||
还书日期 | BBBTime | datetim | ||
罚款金额 | BBFine | Numeric(8,2) | ||
是否续期 | BBW | char | 2 |
读者还书(return-info)表数据字典Re:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
阅览卡编 | CNo | char | 12 | 外键 |
图书编 | BNO | varchar | 20 | 外键 |
图书类型编 | BTNo | char | 10 | 外键 |
是否逾期 | ReW | char | 2 |
图书 损单表(breakage-info)数据字典BA:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
损单编 | BANo | varchar | 20 | 主键 |
受损图书编 | BADNo | varchar | 20 | 外键 |
损时间 | BATime | datetime | ||
图书总数 | BASum | int | ||
经手人编 (图书馆人员) | MNo | varchar | 20 |
图书 损明细表(br-detail-info)数据字典BAD:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
受损图书编 | BADNo | varchar | 20 | 主键 |
图书编 | BNo | varchar | 20 | 外键 |
受损原因 | Reasons | char | 50 | |
数量 | BADNum | int |
图书购买表(bookBuy-info)数据字典BBuy:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
图书购买单编 | BBuyNo | varchar | 20 | 主键 |
图书入库编 | BBSNo | varchar | 20 | 外键 |
经手人编 | MNo | varchar | 20 | 外键 |
图书购买入库表(bookStocking-info)数据字典BBS:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
图书入库编 | BBSNo | varchar | 20 | 主键 |
入库日期 | BBSTime | datetime | ||
是否入库 | BBSW | char | 2 | |
图书编 | BNo | varchar | 20 | 外键 |
图书数量 | BBSNum | int |
罚款缴费单表(fine-info)数据字典F:
数据项名 | 别名 | 类型 | 长度 | 备注 |
---|---|---|---|---|
缴费单 | FNo | char | 18 | 主键 |
阅览卡编 | CNo | char | 12 | 外键 |
日期 | FTime | datetime | ||
金额 | FFine | Numeric(8,2) |
2.数据结构
数据结构名 | 组成 |
---|---|
图书 | |
图书类型 | 图书类编 、图书类型名 |
图书管理员 | 管理员编 、管理员姓名、性别、电话 码、家庭住址、文化程度 |
读者 | 读者编 、阅览卡编 、持卡人姓名、性别、身份证 、未交罚款金额 |
阅览卡 | 阅览卡编 、读者编 、余额、可借书册数、是否挂失、借期天数、可续借天数、还书日期 |
出版 | 出版 编 、出版 名、出版 名 |
借阅表 | 阅览卡编 、图书编 、借书日期、还书日期、罚款金额、是否续期 |
读者还书表 | 阅览卡编 、图书编 、图书类型编 、是否逾期 |
图书 损单表 | 损单编 、受损图书编 、 损时间、图书总数、经手人编 |
图书 损明细表 | 受损图书编 、图书编 、受损原因、数量 |
图书购买表 | 图书购买单编 、图书入库编 、经手人编 |
图书购买入库表 | 图书入库编 、入库日期、是否入库、图书编 、图书数量 |
罚款缴费单表 | 缴费单 、阅览卡编 、日期、金额 |
3.数据流
数据流名 | 数据流去向 | 组成 | |
---|---|---|---|
办理阅览卡信息 | 读者 | 阅览卡表 | 阅览卡表信息 |
查询读者信息 | 阅览卡表 | 管理员 | 读者信息 |
借阅图书 | 读者 | 借阅表 | 借阅信息 |
查询图书借阅信息 | 借阅表 | 管理员 | 借阅信息 |
归还图书 | 读者 | 图书归还表 | 图书归还信息 |
记录图书受损信息 | 管理员 | 图书受损表 | 图书受损信息 |
查询图书 损信息 | 图书受损表 | 管理员 | 图书受损信息 |
记录图书购买信息 | 管理员 | 图书购买表 | 图书购买信息 |
查询图书购买信息 | 图书购买表 | 管理员 | 图书购买信息 |
查询罚款缴费信息 | 罚款缴费表 | 管理员 | 罚款缴费信息 |
4.数据存储
数据储存名 | 输入的数据流 | 输出的数据流 | 组成 |
---|---|---|---|
借阅表 | 借阅信息 | 借阅信息 | 借阅信息 |
图书 损单表 | 图书受损信息、图书 损信息 | 图书 损信息 | 图书受损信息 、图书 损信息 |
图书购买入库表 | 图书购买信息 | 图书购买入库信息 | 图书购买信息 |
罚款缴费单表 | 罚款缴费信息 | 罚款缴费信息 | 罚款缴费信息 |
第二章 概念设计
(一)、局部E-R图模型设计
1.识别实体与实体的主键
图书(主键:图书编 )、图书类型(主键:图书类型编 )、图书管理员(主键:管理员编 )、读者(主键:读者编 )、阅览卡(主键:阅览卡编 )、出版 (主键:出版 编 )
2.定义实体之间的联系
① 一个出版 对应多个图书,一个图书对应一个出版 ,出版 和图书是一对多联系。
② 一个图书类型对应多个图书,一个图书对应一个图书类型,图书类型和图书是一对多联系。
③ 一个读者类型对应多个读者,一个读者对应一个读者类型,读者类型和读者是一对多联系。
④ 一个图书库对应多个图书类型,一个图书类型对应一个图书库,图书库和图书类型是一对多联系。
⑤ 一个图书入库单对应多个图书入库单明细,一个图书入库单明细对应一个图书入库单,图书入库单和图书入库单明细是一对多联系。
⑥ 一个图书 损单对应多个图书 损单明细,一个图书 损单明细对于一个图书 损单,图书 损单和图书 损单明细是一对多联系。
⑦ 一个图书对应多个图书入库单明细,一个图书入库单明细对应一个图书,图书和图书入库单明细是一对多联系。
⑧ 一个图书对应多个图书 损单明细,一个图书 损单明细对应一个图书,图书和图书 损单明细是一对多联系。
⑨ 一个读者对应多个罚款缴费单,一个罚款缴费单对应一个读者,读者和罚款缴费单是一对多联系。
⑩ 一个管理员对应多个借阅表,一个借阅表对应一个管理员,管理员和借阅是一对多的关系。
? 一个管理员对应多个图书入库单,一个图书入库单对应一个管理员,管理员和图书入库单是一对多联系。
? 一个管理员对应多个图书 损单,一个图书 损单对应一个管理员,管理员和图书 损单是一对多联系。
? 一个管理员对应多个罚款缴费单,一个罚款交费单对应一个管理员,管理员和罚款缴费单是一对多联系。
? 一个读者对应多个图书,一个图书对应多个读者,读者和图书之间是多对多联系。
3.局部E-R图
读者—借阅—图书:
管理员—管理—读者:
管理员—购买—图书:
(二)、全局E-R图模型设计
(二)、建视图语句
1.入库单
2. 损单
3.读者未还借书
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!