图书馆数据库系统的设计
- 需求分析:分析图书馆的组织结构情况,各部门的主要职能和业务流程;分析系统的用户对象以及用户对象对应的功能需求和信息需求;得出数据字典,只要求数据项、数据结构。
结构情况与业务流程:
图书管理员:在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者提供读者证号、姓名等信息。归还图书时,由管理员录入待归还的书籍编号,显示读者证号、读者姓名、书籍编号、读书名称、借书日期、应还日期等信息。图书管理员不定期地对图书信息进行修改和删除操作,也可以对读者信息进行添加、修改、删除 等操作。
读者:读者可以凭读者证号在图书馆进行图书的借、还、续借、查询等操作,不同类别的读者在借书借阅图书时,由管理员录入读者证号,系统首先验证该号的有效性,若无效,则提示无效的原因;若有效,则显示读者证号、姓名、借书限额、已借数量、可再借数量等信息,本次实际借书的数量不能超出可再借数量的值。完成借书操作的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅信息中添加相应的记录。
功能需求:功能的划分
- 概念模型设计:设计各功能模块的子E-R模型,最后集成生成基本E-R模型
图书基本信息管理
管理员登录 |
验证 |
图书信息录入 |
图书信息库 |
图书信息查询 |
图书信息修改、删除 |
用户管理
借书
系统基本用例
图书管理模块
读者管理用例图:
数据流程
图书管理员 |
图书管理员 |
图书信息更新 |
查询请求 |
借阅请求 |
数据库 |
图书管理员 |
图书管理员 |
还书请求 |
、
集成生成基本E-R模型
3.逻辑模型设计:将基本E-R模型转换为关系数据模型:
读者类别(种类名称、借书数量、借书期限)
读者信息(读者姓名、读者编号、性别、电话、邮件、读者类别、学院、专业、登记日期、已借书数量)
借阅信息(书籍编号、读者编号、读者姓名、书籍名称、出借日期、归还日期)
图书类别(类别名、类别号)
书籍信息(书籍编号、书名、类别、作者、出版社、出版日期、登记日期、是否被出借)
管理员管理(管理员名、密码)
输入数据:自动输入关键字,查询书籍编号;
新建图书项、读者项;
图书项、读者项相应记录更改;
借阅、返还、丢失注销时的图书的书籍编号;
输出数据:查询关键字确定的数据库记录;
信息录入,删改结果(成功或失败);]
图书借阅,返还,丢失注销等操作结果;
内部数据:查询操作建立的索引。
- 物理模型设计:即数据库表设计,如下例所示:
1. 图书书目表book_info
名
数据类型
长度
NULL
说明
book_id
bigint
20
否
书籍编号
name
varchar
20
否
书名
author
varchar
15
否
作者
publish
varchar
20
否
出版社
introduction
text
0
是
简介
language
varchar
4
否
语言
price
decimal
10
否
价格
pub_date
date
0
是
出版时间
class_id
int
11
是
分类号
number
int
11
否
剩余数量
2. 图书分类表class_info
名
类型
NULL
说明
class_id
int
否
类别号
class_name
varchar
否
类别名
3. 读者信息表reader_info
名
类型
长度
NULL
说明
reader_id
bigint
20
否
读者证号
name
varchar
10
否
姓名
sex
varchar
2
否
性别
phone
bigint
20
否
电话
e-mail
varchar
25
否
邮件
profession
varchar
30
是
专业
academy
varchar
30
是
学院
4. 借阅信息表lend_list
名
类型
长度
NULL
说明
reader_id
bigint
20
否
读者证号
name
varchar
10
否
姓名
sex
varchar
2
否
性别
phone
bigint
20
否
电话
e-mail
varchar
25
否
邮件
profession
varchar
30
是
专业
academy
varchar
30
是
学院
5. 数据库管理员表admin
名
类型
NULL
说明
admin_id
bigint
否
账号
password
varchar
否
密码
username
varchar
是
用户名