学校图书借阅管理系统数据库设计Word文档格式.docx

上传人:b****1 文档编号:1571020 上传时间:2023-05-01 格式:DOCX 页数:13 大小:120.12KB
下载 相关 举报
学校图书借阅管理系统数据库设计Word文档格式.docx_第1页
第1页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第2页
第2页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第3页
第3页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第4页
第4页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第5页
第5页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第6页
第6页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第7页
第7页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第8页
第8页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第9页
第9页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第10页
第10页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第11页
第11页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第12页
第12页 / 共13页
学校图书借阅管理系统数据库设计Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学校图书借阅管理系统数据库设计Word文档格式.docx

《学校图书借阅管理系统数据库设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《学校图书借阅管理系统数据库设计Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

学校图书借阅管理系统数据库设计Word文档格式.docx

2、关系图

关系图如图7

图7

3、物理结构设计

Tb_reader读者表:

属性名

类型

备注

说明

readerid

Varchar(10)

主键

读者id

rname

Varchar(20)

不允许空

姓名

sex

Varchar

(2)

不允许空(‘男’or’女’)

性别

grade

Varchar

(1)

年级

Profession

专业

ifeffective

tinyint

不允许空(1of0)

是否有效

email

允许空

邮箱

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2