数据库大作业图书系统.docx
《数据库大作业图书系统.docx》由会员分享,可在线阅读,更多相关《数据库大作业图书系统.docx(20页珍藏版)》请在冰豆网上搜索。
数据库大作业图书系统
图书管理系统
需求分析
信息需求:
为了加强图书的管理,设计图书管理系统,方便用户借阅、管理员管理,减少管理员的工作量。
1)主要信息需求
1.图书信息:
简介、出版日期、出版社、作者、书名、书号
2.读者信息:
姓名、性别、读者编号、所在系、联系电话
3.借阅信息:
借书日期、还书日期、工作号、书号、是否续借、读者编号
4.管理员信息:
姓名、性别、电话、工资、工作号
5.管理_书籍信息:
工作号、书号、添加时间、是否在馆
6.管理_读者信息:
工作号、读者编号、借还确认、违章情况、累计借书
2)信息间的主要联系
1.一个读者可以借阅多本书籍(1:
m)
2.一本图书可以被一个读者借阅(1:
1)
3.一个图书管理员可以管理多个读者(1:
n)
4.一个读者信息只能被一个图书管理员管理(1:
1)
5.一本图书可以被多个图书管理员管理(1:
n)
6.一个图书管理员可以管理多本图书(1:
m)
v处理需求:
1.借阅功能:
可以方便地借阅图书、续借图书、归还图书
2.查询功能:
按图书编号查找图书、按图书名称查找图书、按图书作者查找图书、能够按照自己的图书证编号查询自己的状态信息
3.读者注册功能:
能够对新的读者进行登记,或注销读者的信息
4.图书录入功能:
能够将新到的图书信息输入到系统的图书信息库中
5.统计功能:
按图书编号统计书籍数量、按图书名称统计数量、按作者统计书籍数量
v安全性需求
1.管理员的权限最高,可以查询、修改借阅关系表、管理员_书籍表、管理员_读者表
2.读者,可以查看图书基本信息、个人自己的借阅信息。
不可以对其中的信息进行添加、修改等操作。
v完整性需求
1.在图书管理信息表中,书号、书名、作者、出版社、出版日期、简介输入信息的时候都有类型、长度要求。
书号、书名、作者不能为空,其中书号为主码
2.在读者信息表中,其中的各类信息都有类型、长度要求。
读者编号、读者姓名、读者性别、所在系不能为空,读者编号为主码
3.在管理员信息表中,其中的各类信息都有类型、长度要求。
工作号、姓名、性别不能为空,工作号为主码
4.在借阅关系表中,其中的各类信息都有类型、长度要求,且均不可为空。
工作号、书号为外码
5.在管理员_书籍表中,其中的各类信息都有类型、长度要求。
工作号、书号不能为空,且为外码
6.在管理员_读者表中,其中的各类信息都有类型、长度要求,均不可为空。
工作号、读者编号为外码
v程序流程图
图1
读者借阅图书,系统查询图书是否在馆。
若已借出,显示借出;未借出进行下一步,图书管理员将书借出并登记相关信息。
数据流图
顶层数据流图
添加图书图书信息
借出信息
借书
图书
还书拒绝信息
修改信息查询
图2
第0层数据流图
所借图书信息
借书
借书
拒绝借书
库存信息
借书信息查询信息
还书违章情况
图3
第一层数据流图
第一次借书
借书信息
借书
编号
存在
借出图书
借书累计过多、无库存
拒绝借出
库存信息
图4.借书的数据流图
还书
借书信息库存信息
图5.还书的数据流图
查询要求
借书信息表库存图书信息表
查询结果
图6.查询的数据流图
v数据字典
1.数据项
数据项名
数据项含义说明
数据类型
长度
与其他数据项的逻辑关系
读者编号
读者相关信息
整型
10
决定要借阅的图书
读者姓名
读者相关信息
字符型
6
读者性别
读者相关信息
字符型
2
联系电话
读者相关信息
整型
7
所在系
读者相关信息
字符型
10
书名
图书相关信息
字符型
20
作者
图书相关信息
字符型
6
出版社
图书相关信息
字符型
20
管理员工作号
管理员相关信息
整型
10
管理图书的借还
管理员姓名
管理员相关信息
字符型
6
管理员性别
管理员相关信息
字符型
2
借书日期
借书相关信息
整型
10
还书日期
借书相关信息
整型
10
2.数据结构
数据结构名
含义说明
组成
图书信息表
定义图书的相关信息
简介、出版日期、出版社、作者、书名、书号
读者信息表
定义读者的相关信息
姓名、性别、读者编号、所在系、联系电话
管理员信息表
定义管理员的相关信息
姓名、性别、电话、工资、工作号
借阅关系表
定义借阅图书的相关信息
借书日期、还书日期、工作号、书号、是否续借、读者编号
管理员_书籍信息表
定义管理员与图书的有关信息
工作号、书号、添加时间、是否在馆
管理员_读者信息表
定义管理员与学生的有关信息
工作号、读者编号、借还确认、违章情况、累计借书
3.数据流
数据流名
来源
去向
组成
借书
读者、图书
借书审核
读者编号、书名、读者姓名、借书日期
还书
图书、读者
还书审核
读者编号、书名、还书日期
4.数据存储
数据存储名
组成
借书信息
姓名、性别、读者编号、所在系、联系电话、管理员姓名
库存信息
简介、出版日期、出版社、作者、书名、书号、是否在馆
5.处理过程
处理过程名
含义说明
输入
输出
借书过程
查看图书是否被借出
图书信息
借阅信息
还书过程
查看借阅图书的信息
读者信息
图书信息
概念结构设计
v局部E-R图
1.读者—借阅—图书
一个读者可以借阅多本书籍(1:
m)
一本图书可以被一个读者借阅(1:
1)
图1.借阅关系E—R图
2.管理员—管理—读者
一个图书管理员可以管理多个读者(1:
n)
一个读者信息只能被一个图书管理员管理(1:
1)
图2.管理员_读者关系E—R图
3.管理员—管理—图书
一本图书可以被多个图书管理员管理(1:
n)
一个图书管理员可以管理多本图书(1:
m)
图3管理员_图书关系E—R图
v全局E-R图
图4.系统全局E—R图
逻辑概念设计
v将E-R图转化为关系模式
1.读者(读者编号、读者姓名、读者性别、联系电话、所在系、违章情况、累计借书)
2.图书(书号、书名、作者、出版社、出版日期、简介)
3.管理员(工作号、姓名、性别、电话、工资)
4.借阅(读者编号、书号、是否续借、借书日期、还书日期)
5.管理员_图书(工作号、书号、添加时间、是否在馆)
6.管理员_读者(工作号、读者编号、确认借还)
v数据模型优化
将数据关系模式优化,最终达到第三范式。
优化后的关系模式:
1.读者(读者编号、读者姓名、读者性别、联系电话、所在系、违章情况、累计借书)
2.图书(书号、书名、作者、出版社、出版日期、简介)
3.管理员(工作号、姓名、性别、电话、工资)
4.借阅(读者编号、书号、是否续借、借书日期、还书日期)
5.管理员_图书(工作号、书号、添加时间、是否在馆)
6.管理员_读者(工作号、读者编号、确认借还)
物理概念设计
v数据的存储结构
根据以上的逻辑概念设计,得出各类数据的存储结构
1.图书信息表
字段名称
数据类型
长度
约束
属性
书号
char
20
NOTNULL
主码
书名
char
50
NOTNULL
非主属性
作者
char
20
NOTNULL
非主属性
出版社
char
50
非主属性
出版日期
data
非主属性
简介
char
200
非主属性
2.读者信息表
字段名称
数据类型
长度
约束
属性
读者编号
char
20
NOTNULL
主码
读者姓名
char
10
NOTNULL
非主属性
读者性别
char
2
NOTNULL
非主属性
联系电话
char
10
非主属性
所在系
char
20
NOTNULL
非主属性
违章情况
char
2
非主属性
累计借书
int
非主属性
3.管理员信息表
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
主码
姓名
char
20
NOTNULL
非主属性
性别
char
2
NOTNULL
非主属性
电话
char
12
非主属性
工资
char
12
非主属性
4借阅关系表
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
书号
char
20
NOTNULL
外码
读者编号
char
20
NOTNULL
非主属性
借书日期
data
NOTNULL
非主属性
还书日期
data
NOTNULL
非主属性
是否续借
char
4
NOTNULL
非主属性
5管理员_图书表
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
书号
char
20
NOTNULL
外码
添加时间
data
非主属性
是否在馆
char
14
非主属性
6.管理员_读者表
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
读者编号
char
20
NOTNULL
外码
借还确认
char
4
非主属性
数据库建立
v建表
1.图书信息表BOOK
CREATETABLEBOOK
(书号char(20)PRIMARYKEYNOTNULL,
书名char(50)NOTNULL,
作者char(20)NOTNULL,
出版社char(50)
出版日期data,
简介char(200)
);
2.读者信息表STUDENT
CREATETABLESTUDENT
(读者编号char(20)PRIMARYKEYNOTNULL,
读者姓名char(10)NOTNULL,
读者性别char
(2)NOTNULL,
联系电话char(10),
所在系char(20)NOTNULL,
违章情况char
(2),
借书累计int
);
3.管理员信息表MANAGER
CREATETABLEMANAGER
(工作号char(12)PRIMARYKEYNOTNULL,
姓名char(20)NOTNULL,
性别char
(2)NOTNULL,
电话char(12),
工资char(12)
);
4.借阅关系表R—B
CREATETABLER—B
(工作号char(12)NOTNULL,
书号char(20)NOTNULL,
读者编号c