学校图书借阅管理系统数据库设计Word文档格式.docx
- 文档编号:1571020
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:13
- 大小:120.12KB
学校图书借阅管理系统数据库设计Word文档格式.docx
《学校图书借阅管理系统数据库设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《学校图书借阅管理系统数据库设计Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
2、关系图
关系图如图7
图7
3、物理结构设计
Tb_reader读者表:
属性名
类型
备注
说明
readerid
Varchar(10)
主键
读者id
rname
Varchar(20)
不允许空
姓名
sex
Varchar
(2)
不允许空(‘男’or’女’)
性别
grade
Varchar
(1)
年级
Profession
专业
ifeffective
tinyint
不允许空(1of0)
是否有效
允许空
邮箱
Tb_manager管理员表:
managerid
管理员id
loginnane
登录名
password
密码
Tb_borrow借阅表:
borrowid
int
主键(自增)
id
bookid
书号
读者号
管理员号
borrowTime
Smalldatetime
借书时间
backTime
允许空(backTime>
=borrowtime)
还书时间
ifreborrow
不允许空(1or0)
是否续借
Tb_book图书表:
bname
书名
type
author
作者
price
float
价格
publish
出版社
quantity
Tinyint
总数
remain
不允许空(remain<
=quantity)
剩余
Tb_punishment超期处罚表:
punishmentid
days
smallint
超期天数
bmoney
罚款金额
Tb_purview管理员权限设置表:
systemset
系统设置权限
readerset
读者权限
bookset
图书管理权限
borrowback
图书借还权限
systemquery
系统查询权限
4、关系模式
Tb_reader(readerid,rname,sex,grade,profession,email,ifeffective)
Tb_borrow(borrowid,readerid,bookid,managerid,borrowTime,backTime,ifreborrow)
Tb_manager(managerid,loginname,password)
Tb_book(bookid,bname,type,author,publish,price,quantity,remain)
Tb_punishment(punishmentid,readerid,bookid,days,bmoney)
Tb_purview(managerid,systemset,readerset,bookset,borrowback,systemquery)
二、存储过程
创建存储过程,输入读者id查询出书名、借阅时间、归还时间、管理员id、是否续借情况
createprocedurep
@readerid_invarchar(10),
@bookid_invarchar(10),
@bname_outvarchar(20)output,
@borrowTime_outdatetimeoutput,
@backTime_outdatetimeoutput,
@managerid_outvarchar(10)output,
@ifreborrow_outtinyintoutput
as
select@bname_out=bname,@borrowTime_out=borrowTime,@backTime_out=backTime,@managerid_out=managerid,@ifreborrow_out=ifreborrow
fromtb_book,tb_borrow
wheretb_borrow.readerid=@readerid_inandtb_borrow.bookid=@bookid_inandtb_book.bookid=tb_borrow.bookid
存储过程使用
declare@readerid_invarchar(10),
@bookid_invarchar(10),
@bname_outvarchar(20),
@borrowTime_outdatetime,
@backTime_outdatetime,
@managerid_outvarchar(10),
@ifreborrow_outtinyint
select@readerid_in='
2010508033'
select@bookid_in='
005'
execp@readerid_in,@bookid_in,@bname_outoutput,@borrowTime_outoutput,@backTime_outoutput,@managerid_outoutput,@ifreborrow_outoutput
print'
书名:
'
+@bname_out
借书时间:
+rtrim(@borrowTime_out)
还书时间:
+rtrim(@backTime_out)
管理员编号:
+@managerid_out
是否续借:
+rtrim(@ifreborrow_out)
三、触发器
1、借书触发器,当借书时,图书表中的remain(剩余图书)自动减一。
createtriggert_borrow
ontb_borrowforinsert
declare@bookid_readvarchar(10)
select@bookid_read=bookidfrominserted
begin
updatetb_booksetremain=remain-1wherebookid=@bookid_read
End
2、还书触发器,当还书时,图书表中的remain自动加一。
createtriggert_back
ontb_borrowforupdate
asifupdate(backTime)
updatetb_booksetremain=remain+1wherebookid=@bookid_read
3、罚款触发器,当借阅图书超期时,自动在punishment表中添加罚款记录,记录罚款读者、书名、天数、金额,并且自动将reader表中的ifeffective置为0,是该读者不能再借书。
createtriggert_punish
as
ifupdate(backTime)
declare@backTimedatetime,
@borrowTimedatetime,
@ifreborrowtinyint,
@daysint,
@days1int,
@bmoneyint,
@readeridvarchar(10),
@bookidvarchar(10)
select@backTime=backTimefrominserted
select@borrowTime=borrowTimefrominserted
select@ifreborrow=ifreborrowfrominserted
select@days=convert(int,@backTime)-convert(int,@borrowTime)
select@readerid=readeridfrominserted
select@bookid=bookidfrominserted
if@days>
30
begin
if@ifreborrow=1
begin
if@days>
60
begin
select@days1=@days-60
select@bmoney=@days1*0.1
insertintotb_punishment(readerid,bookid,days,bmoney)values(@readerid,@bookid,@days1,@bmoney)
updatetb_readersetifeffective=0wherereaderid=@readerid
end
end
if@ifreborrow=0
select@days1=@days-30
select@bmoney=@days1*0.1
insertintotb_punishment(readerid,bookid,days,bmoney)values(@readerid,@bookid,@days1,@bmoney)
updatetb_readersetifeffective=0wherereaderid=@readerid
end
end
4、读者是否有效触发器,当读者借书时,检查reader表中的ifeffective属性,若为0则说明有超期罚款,不能借书。
createtriggert_ifcanborrow
declare@readeridvarchar(10),
@ifeffectivetinyint
select@readerid=readeridfrominserted
select@ifeffective=ifeffectivefromtb_readerwherereaderid=@readerid
if@ifeffective=0
您有超期罚款!
rollbacktransaction
四、视图脚本
1、创建视图查询各种图书的书号、书名、总数和在册数。
createviewview_query
asselectbookid,bname,quantity,remainfromtb_book
2、创建视图查询读者的超期罚款情况,其中包括读者号,读者姓名,罚款书名,罚款金额。
createviewview_reader
asselecttb_punishment.readerid,rname,bname,bmoneyfromtb_punishment,tb_book,tb_readerwheretb_punishment.bookid=tb_book.bookidandtb_punishment.readerid=tb_reader.readerid
五、数据库恢复与备份
数据库的完全备份
usedb_library
go
backupdatabasedb_library
todisk='
H:
\LibarySystem\backup\f_db_library'
withinit
Go
数据库的恢复
数据库差异备份
\LibarySystem\backup\d_db_library'
withdifferential
usemaster
restoredatabasedb_library
fromdisk='
withnorecovery
withreplace
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学校 图书 借阅 管理 系统 数据库 设计