高校图书管理系统数据库物理结构设计
一、设计前要了解的信息(该部分不出现在设计说明书中)
1、数据库的查询事务
(1)按卡号查询读者信息及借书信息(查询读者借书信息时涉及读者、图书和借还关系的连接操作,连接属性:卡号、书号)。
(2)按姓名查询读者信息及借书信息(查询读者借书信息时涉及读者、图书和借还关系的连接操作,连接属性:卡号、书号)。
(3)按书名查询图书信息。
(4)按作者和出版社查询图书信息。
(5)按出版社统计图书信息。
(6)按书号查询图书被借信息(查询图书被借信息时涉及读者、图书和借还关系的连接操作,连接属性:卡号、书号)。
(7)按书名查询图书被借信息(查询图书被借信息时涉及读者、图书和借还关系的连接操作,连接属性:卡号、书号).
2、数据库的更新事务
(1)办理借书证(读者注册)。
(2)借书(增加借还记录、修改图书的库存数量)。
(3)还书(修改借还记录、修改图书的库存数量)。
3、查询事务的操作频率和性能要求
(1)按卡号查询读者信息及借书信息
操作频率:200次/天
性能要求:3s内完成
(2)按姓名查询读者信息及借书信息
操作频率:80次/天
性能要求:5s内完成
(3)按书名查询图书信息
操作频率:250次/天
性能要求:3s内完成
(4)按作者和出版社查询图书信息
操作频率:250次/天
性能要求:3s内完成
(5)按出版社统计图书信息
操作频率:1次/月
性能要求:10s内完成
(6)按书号查询图书被借信息
操作频率:10次/月
性能要求:6s内完成
(7)按书名查询图书被借信息
操作频率:10次/月
性能要求:6s内完成
二、设计结果
1、数据库名称
Book_Borrow
2、关系表
(1) Class(读者类别表)
列名 | 数据类型 | 长度 | 允许空代码大全书籍 | 备注 |
lbdm | nvarchar | 2 | 类别代码 | |
lbmc | nvarchar | 10 | 类别名称 | |
kjyts | tinyint | 1 | 可借阅天数 | |
kjysl | tinyint | 1 | 可借阅数量 | |
cqfke | smallmoney | 4 | 超期额 | |
主键:lbdm
(2) Reader(读者表)
列名 | 数据类型 | 长度 | 允许空 | 备注 |
kh | nvarchar | 20 | 卡号 | |
xm | nvarchar | 16 | 姓名 | |
xb | nchar | 1 | 性别 | |
bm | nvarchar | 30 | 部门 | |
bkrq | datetime | 8 | 办卡日期 | |
kzt | char | 1 | 卡状态 | |
lbdm | nvarchar | 2 | 类别代码 | |
主键:kh
索引:xm(升序)
check约束:性别的取值只能为男或女
default约束:性别默认为男
(3) Book(图书表)
列名 | 数据类型 | 长度 | 允许空 | 备注 |
sh | nvarchar | 8 | 书号 | |
sm | nvarchar | 40 | 书名 | |
zz | nvarchar | 16 | 作者 | |
cbs | nvarchar | 20 | 出版社 | |
jg | smallmoney | 4 | 价格 | |
kcsl | tinyint | 1 | 库存数量 | |
主键:sh
索引:
① sm(升序)
② cbs(升序)+zz(升序)
(4) Borrow(借还表)
列名 | 数据类型 | 长度 | 允许空 | 备注 |
kh | nvarchar | 20 | 卡号 | |
sh | nvarchar | 8 | 书号 | |
jsrq | datetime | 8 | 借书日期 | |
hsrq | datetime | 8 | √ | 还书日期 |
主键:kh+sh
3、参照完整性约束
(1) FK_Reader_Class
主键表:Class 外键表:Reader
主键:lbdm 外键:lbdm
(2) FK_Borrow_Reader
主键表:Reader 外键表:Borrow
主键:kh 外键:kh
(3) FK_Borrow_Book
主键表:Book 外键表:Borrow
主键:sh 外键:sh
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论