学校图书借阅管理系统数据库设计.docx

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

学校图书借阅管理系统数据库设计.docx

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

学校图书借阅管理系统数据库设计.docx

学校图书借阅管理系统数据库设计

数据库课程设计报告

学校图书借阅管理系统

 

 

*****************************

学号:

********33

专业年级:

计算机科学与技术10级

**********

 

数据库设计说明书

一、结构设计

1、逻辑结构设计

(1)总体E-R图如图1

图1

读者E-R图如图2

图2

图书E-R图如图3

图3

权限设置E-R图如图4

图4

 

权限设置E-R图如图5

图5

权限设置E-R图如图6

图6

2、关系图

关系图如图7

图7

3、物理结构设计

Tb_reader读者表:

属性名

类型

备注

说明

readerid

Varchar(10)

主键

读者id

rname

Varchar(20)

不允许空

姓名

sex

Varchar

(2)

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

性别

grade

Varchar

(1)

不允许空

年级

Profession

Varchar(20)

不允许空

专业

ifeffective

tinyint

不允许空(1of0)

是否有效

email

Varchar(20)

允许空

邮箱

Tb_manager管理员表:

属性名

类型

备注

说明

managerid

Varchar(10)

主键

管理员id

loginnane

Varchar(20)

不允许空

登录名

password

Varchar(20)

不允许空

密码

Tb_borrow借阅表:

属性名

类型

备注

说明

borrowid

int

主键(自增)

id

bookid

Varchar(10)

不允许空

书号

readerid

Varchar(10)

不允许空

读者号

managerid

Varchar(10)

不允许空

管理员号

borrowTime

Smalldatetime

不允许空

借书时间

backTime

Smalldatetime

允许空(backTime>=borrowtime)

还书时间

ifreborrow

tinyint

不允许空(1or0)

是否续借

Tb_book图书表:

属性名

类型

备注

说明

bookid

Varchar(10)

主键

书号

bname

Varchar(20)

不允许空

书名

type

Varchar(20)

允许空

类型

author

Varchar(20)

允许空

作者

price

float

允许空

价格

publish

Varchar(20)

允许空

出版社

quantity

Tinyint

不允许空

总数

remain

Tinyint

不允许空(remain<=quantity)

剩余

Tb_punishment超期处罚表:

属性名

类型

备注

说明

punishmentid

int

主键(自增)

id

readerid

Varchar(10)

不允许空

读者号

bookid

Varchar(10)

不允许空

书号

days

smallint

不允许空

超期天数

bmoney

float

不允许空

罚款金额

Tb_purview管理员权限设置表:

属性名

类型

备注

说明

managerid

Varchar(10)

主键

管理员号

systemset

tinyint

不允许空(1or0)

系统设置权限

readerset

tinyint

不允许空(1or0)

读者权限

bookset

tinyint

不允许空(1or0)

图书管理权限

borrowback

tinyint

不允许空(1or0)

图书借还权限

systemquery

tinyint

不允许空(1or0)

系统查询权限

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

print'借书时间:

'+rtrim(@borrowTime_out)

print'还书时间:

'+rtrim(@backTime_out)

print'管理员编号:

'+@managerid_out

print'是否续借:

'+rtrim(@ifreborrow_out)

三、触发器

1、借书触发器,当借书时,图书表中的remain(剩余图书)自动减一。

createtriggert_borrow

ontb_borrowforinsert

as

declare@bookid_readvarchar(10)

select@bookid_read=bookidfrominserted

begin

updatetb_booksetremain=remain-1wherebookid=@bookid_read

End

2、还书触发器,当还书时,图书表中的remain自动加一。

createtriggert_back

ontb_borrowforupdate

asifupdate(backTime)

declare@bookid_readvarchar(10)

select@bookid_read=bookidfrominserted

begin

updatetb_booksetremain=remain+1wherebookid=@bookid_read

End

3、罚款触发器,当借阅图书超期时,自动在punishment表中添加罚款记录,记录罚款读者、书名、天数、金额,并且自动将reader表中的ifeffective置为0,是该读者不能再借书。

createtriggert_punish

ontb_borrowforupdate

as

ifupdate(backTime)

begin

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

begin

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

end

4、读者是否有效触发器,当读者借书时,检查reader表中的ifeffective属性,若为0则说明有超期罚款,不能借书。

createtriggert_ifcanborrow

ontb_borrowforinsert

as

declare@readeridvarchar(10),

@ifeffectivetinyint

select@readerid=readeridfrominserted

select@ifeffective=ifeffectivefromtb_readerwherereaderid=@readerid

if@ifeffective=0

begin

print'您有超期罚款!

'

rollbacktransaction

end

四、视图脚本

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

数据库的恢复

usedb_library

go

backupdatabasedb_library

todisk='H:

\LibarySystem\backup\f_db_library'

withinit

Go

数据库差异备份

usedb_library

go

backupdatabasedb_library

todisk='H:

\LibarySystem\backup\d_db_library'

withdifferential

Go

数据库的恢复

usemaster

go

restoredatabasedb_library

fromdisk='H:

\LibarySystem\backup\f_db_library'

withnorecovery

go

restoredatabasedb_library

fromdisk='H:

\LibarySystem\backup\d_db_library'

withreplace

go

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

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

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

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