数据库专周报告Word文档格式.docx

上传人:b****6 文档编号:17249357 上传时间:2022-11-29 格式:DOCX 页数:38 大小:1.73MB
下载 相关 举报
数据库专周报告Word文档格式.docx_第1页
第1页 / 共38页
数据库专周报告Word文档格式.docx_第2页
第2页 / 共38页
数据库专周报告Word文档格式.docx_第3页
第3页 / 共38页
数据库专周报告Word文档格式.docx_第4页
第4页 / 共38页
数据库专周报告Word文档格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

数据库专周报告Word文档格式.docx

《数据库专周报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库专周报告Word文档格式.docx(38页珍藏版)》请在冰豆网上搜索。

数据库专周报告Word文档格式.docx

为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。

系统维护包括对各种表记录的修改、删除、添加等操作。

系统查询及统计:

可以对所有购进图书的分类查询和分类统计,能够按书名、作者等分类查询现有图书的数量。

系统管理:

进行人员管理、数据输入。

报表统计:

包括统计图书信息、读者信息、借阅信息,管理人员信息等。

其它操作:

包括修改密码、添加用户等。

2、数据流图

三、系统设计

1、概念结构设计

画出系统E-R图。

2、逻辑结构设计

将E-R图(或其他概念设计图)转换为具体的DBMS对应的关系模式。

基本表:

借阅者(借阅者编号,姓名,性别,登陆密码,类型,出生日期,系别,图书借阅次数,总罚金)

借阅者类型(类型编号,类型名称,可借总数,借阅天数)

管理者(管理者编号,姓名,性别,登陆密码,出生日期)

图书类型(类型编号,类型名称,库存总量)

图书(图书编号,索引号,书名,类型,作者,出版社,价格,借出次数,购买日期)

图书量(索引号,现存量,库存总量)

借阅信息(借阅者编号,图书编号,借阅日期,应还日期,归还日期,续借次数,状态,罚金,罚金状态)

视图:

Tushu(索引号,书名,类型,作者,出版社,价格,现存量,库存总量,借出次数,购买日期,类型编号)

关系:

借阅者.类型(来自)借阅者类型

图书.类型(来自)图书类型

借阅信息.借阅者编号(来自)借阅者.借阅者编号

借阅信息.图书编号(来自)图书.图书编号

图书量.索引号(来自)图书.索引号

3、系统功能模块图

功能流程图:

系统流程图

四、详细设计

登陆界面:

登陆,退出

借阅者界面:

个人信息,借阅查询,图书检索

管理者界面:

借阅者管理(借阅者档案管理,借阅者类型管理),图书管理(图书类型管理,图书档案管理),管理员档案管理,退出界面

借阅者档案界面:

借阅者增加,借阅者删除,借阅者删除,借阅者退出界面

借阅者类型管理界面:

查看,更改,增加,删除,关闭

图书类型管理界面:

查看,更改,删除,查找,增加,关闭

图书档案管理界面:

查看,删除,修改,增加,关闭

图书其他界面:

类别查找,统计

管理者档案界面:

增加管理者,删除管理者,修改管理者密码,查找,退出界面

五、系统实现与测试

1、开发平台和工具选择

说明选择原因、环境要求等。

2、系统测试

在执行图书档案时候出现这样的错误

发现是存储过程的原因,所以把存储过程改了。

Sql代码:

use图书管理系统

--创建借阅表

CREATETABLE借阅者(

借阅者编号char(5)PRIMARYKEY,

姓名varchar(8)NOTNULL,

性别char

(2)CHECK(性别IN('

男'

'

女'

)),

登陆密码varchar(10)NOTNULL,

类型varchar(8),

出生日期datetime,

系别varchar(40),

图书借阅次数int,

总罚金int

);

--创建借阅者类型表

CREATETABLE借阅者类型(

类型编号char(3)PRIMARYKEY,

类型名称varchar(8)UNIQUENOTNULL,

可借总量smallint,

借阅天数smallint);

--创建管理者表

CREATETABLE管理者(

管理者编号char(5)PRIMARYKEY,

姓名varchar(8)NOTNULL,

性别char

(2)CHECK(性别IN('

)),

登陆密码varchar(10)NOTNULL,

出生日期datetime);

--创建图书类型表

CREATETABLE图书类型(

类型名称varchar(40)UNIQUENOTNULL,

库存总量bigint);

--创建图书表

CREATETABLE图书(

图书编号char(5)PRIMARYKEY,

索引号char(5)NOTNULL,

书名varchar(40)NOTNULL,

类型varchar(40),

作者varchar(8),

出版社varchar(40),

价格int,

借出次数int,

购买日期datetime,

foreignkey(索引号)references图书量(索引号));

--创建图书量

CREATETABLE图书量(

索引号char(5)PRIMARYKEY,

现存量smallint,

库存总量smallint);

--创建借阅信息表

CREATETABLE借阅信息(

借阅者编号char(5),

图书编号char(5),

借阅日期datetime,

应还日期datetime,

归还日期datetime,

续借次数smallint,

状态char(4)CHECK(状态IN('

未还'

已还'

罚金int,

罚金状态char(4)CHECK(罚金状态IN('

未结'

已结'

FOREIGNKEY(借阅者编号)REFERENCES借阅者(借阅者编号),

FOREIGNKEY(图书编号)REFERENCES图书(图书编号),

PRIMARYKEY(借阅者编号,图书编号,借阅日期));

--创建图书检索视图

CREATEVIEWtushu

AS

SELECTDISTINCT图书.索引号,书名,类型,作者,出版社,价格,现存量,图书量.库存总量,借出次数,购买日期,类型编号

FROM图书,图书量,图书类型

WHERE图书.索引号=图书量.索引号and图书.类型=图书类型.类型名称

--创建增加图书的触发器

CREATETRIGGERtushu_add

ON图书

FORINSERT

DECLARE@索引号char(5),@类型varchar(40)

SELECT@索引号=索引号FROMinserted

SELECT@类型=类型FROMinserted

IF@索引号IN(SELECT索引号FROM图书量)

UPDATE图书量SET库存总量=库存总量+1,现存量=现存量+1WHERE索引号=@索引号

ELSE

INSERTINTO图书量VALUES(@索引号,1,1)

UPDATE图书类型SET库存总量=库存总量+1WHERE类型名称IN(SELECT类型FROM图书WHERE索引号=@索引号)

GO

--创建删除图书的触发器

CREATETRIGGERtushu_del

FORDELETE

SELECT@索引号=索引号FROMdeleted

SELECT@类型=类型FROMdeleted

UPDATE图书类型SET库存总量=库存总量-1WHERE类型名称IN(SELECT类型FROM图书WHERE索引号=@索引号)

UPDATE图书量SET库存总量=库存总量-1,现存量=现存量-1WHERE索引号=@索引号

IF0=(SELECT库存总量FROM图书量WHERE索引号=@索引号)

DELETEFROM图书量WHERE索引号=@索引号

--创建求借阅者总罚金的存储过程

CREATEPROCzongfajin

@achar(5),@bchar(5),@cintoutput

SELECT@c=SUM(ABS(DATEDIFF(DAY,GETDATE(),应还日期)))

FROM借阅信息

WHERE借阅者编号=@aand状态='

and图书编号<

>

@bandDATEDIFF(DAY,GETDATE(),应还日期)<

--创建图书借阅的触发器

CREATETRIGGERjieyue_add

ON借阅信息

DECLARE@借阅者编号char(5),@图书编号char(5),@索引号char(5),@借阅天数smallint,@状态char(4),@总罚金int

SELECT@借阅者编号=借阅者编号FROMinserted

SELECT@图书编号=图书编号FROMinserted

SELECT@状态=状态FROMinserted

SELECT@索引号=(SELECT索引号FROM图书WHERE图书编号=@图书编号)

SELECT@借阅天数=(SELECT借阅天数FROM借阅者类型WHERE类型名称IN(SELECT类型FROM借阅者WHERE借阅者编号=@借阅者编号))

BEGIN

EXECzongfajin@借阅者编号,@图书编号,@总罚金output

IF(@总罚金<

NULL)

BEGIN

PRINT'

该用户欠款,不能借阅!

'

ROLLBACKTRANSACTION

END

ELSE

IF1>

(SELECT现存量FROM图书量WHERE索引号=@索引号)

BEGIN

PRINT'

该图书不存在,借阅失败!

ROLLBACKTRANSACTION

END

ELSE

UPDATE借阅者SET图书借阅次数=图书借阅次数+1WHERE借阅者编号=@借阅者编号

UPDATE图书SET借出次数=借出次数+1WHERE图书编号=@图书编号

UPDATE图书量SET现存量=现存量-1WHERE索引号=@索引号

借阅成功!

END

--创建借阅信息删除的触发器

CREATETRIGGERjieyue_del

DECLARE@借阅者编号char(5),@图书编号char(5),@借阅日期datetime,@应还日期datetime,@归还日期datetime,@续借次数smallint,@罚金int

SELECT@借阅者编号=借阅者编号FROMdeleted

SELECT@图书编号=图书编号FROMdeleted

SELECT@借阅日期=借阅日期FROMdeleted

SELECT@应还日期=应还日期FROMdeleted

SELECT@归还日期=归还日期FROMdeleted

SELECT@续借次数=续借次数FROMdeleted

SELECT@罚金=罚金FROMdeleted

INSERTINTO历史借阅信息

VALUES(@借阅者编号,@图书编号,@借阅日期,@应还日期,@归还日期,@续借次数,@罚金)

--创建更改借阅信息的触发器

CREATETRIGGERjieyue_update

FORUPDATE

DECLARE@借阅者编号char(5),@图书编号char(5),@借阅日期datetime,@索引号char(5),@借阅天数smallint,@总罚金int,@状态char(4),@状态char(4),@续借smallint,@续借smallint

SELECT@借阅日期=借阅日期FROMinserted

SELECT@状态=状态FROMdeleted

SELECT@续借=续借次数FROMdeleted

SELECT@续借=续借次数FROMinserted

IF(@续借=1and@续借=2)

该图书已续借过,不能再次续借!

IF(@续借=0and@续借=1)

IF0<

(SELECTDATEDIFF(DAY,GETDATE(),应还日期)FROM借阅信息WHERE借阅者编号=@借阅者编号and图书编号=@图书编号and借阅日期=@借阅日期)

BEGIN

UPDATE借阅信息SET应还日期=应还日期+@借阅天数FROM借阅信息WHERE借阅者编号=@借阅者编号and图书编号=@图书编号and借阅日期=@借阅日期

PRINT'

续借成功!

END

ELSE

图书超期,请先结账!

结账成功!

UPDATE借阅信息SET罚金=(SELECTABS(DATEDIFF(DAY,GETDATE(),应还日期))FROM借阅信息WHERE借阅者编号=@借阅者编号and图书编号=@图书编号and借阅日期=@借阅日期)

END

IF(@状态='

and@状态='

IF0<

BEGIN

UPDATE借阅信息SET罚金状态='

FROM借阅信息WHERE借阅者编号=@借阅者编号and图书编号=@图书编号and借阅日期=@借阅日期

UPDATE图书量SET现存量=现存量+1WHERE索引号=@索引号

PRINT'

归还成功!

END

ELSE

管理者:

借阅者管理:

--借阅者类型管理

--借阅者类型查找的存储过程

createprocjieyuezheleixing_chazhao

@achar(3),@bvarchar(8)

as

select*

from借阅者类型

where类型编号=@aor类型名称=@b

go

--删除借阅者类型的存储过程

createprocjieyuezheleixing_del

deletefrom借阅者类型

where类型编号=@aor类型名称=@a

select*from借阅者类型

--更改借阅者类型的存储过程

createprocjieyuezheleixing_genggai

@achar(3),@bvarchar(8),@csmallint,@dsmallint

update借阅者类型

set类型名称=@b,可借总量=@c,借阅天数=@d

where类型编号=@a

select*from借阅者类型where类型编号=@a

--增加借阅者类型的存储过程

createprocjieyuezheleixing_add

insertinto借阅者类型

values(@a,@b,@c,@d)

--借阅者档案管理

--查找借阅者的存储过程

createprocjieyuezhe_chazhao

@achar(5)

from借阅者

where借阅者编号=@a

--删除借阅者的存储过程

createprocjieyuezhe_del

deletefrom借阅者

--更改借阅者的存储过程

createprocjieyuezhe_genggai

@achar(5),@bvarchar(8),@cchar

(2),@dvarchar(10),@evarchar(8),@fdatetime,@gvarchar(40),@hint,@iint

update借阅者

set姓名=@b,性别=@c,登陆密码=@d,类型=@e,出生日期=@f,系别=@g,图书借阅次数=@h,总罚金=@i

select*from借阅者where借阅者编号=@a

--增加借阅者的存储过程

createprocjieyuezhe_add

@achar(5),@bvarchar(8),@cchar

(2),@dvarchar(10),@evarchar(8),@fdatetime,@gvarchar(40)--,@hint,@iint

insertinto借阅者

values(@a,@b,@c,@d,@e,@f,@g,0,0)

select*from借阅者

图书管理:

--图书类型管理

--图书类型查找的存储过程

createproctushuleixing_chazhao

@achar(3),@bvarchar(40)

from图书类型

--删除图书类型的存储过程

createproctushuleixing_del

deletefrom图书类型

select*from图书类型

--更改图书类型的存储过程

createproctushuleixing_genggai

@achar(3),@bvarchar(40),@cbigint

update图书类型

set类型名称=@b,库存总量=@c

select*from图书类型where类型编号=@a

--增加图书类型的存储过程

createproctushuleixing_add

@achar(3),@bvarchar(40)--,@cbigint

insertinto图书类型

values(@a,@b,0)

--图书档案管理

--查找图书的存储过程

createproctushu_chazhao

@achar(5),@bchar(5),@cvarchar(40)

from图书

where图书编号=@aor索引号=@bor书名=@c

--删除图书的存储过程

createproctushu_shanchu

deletefrom图书

where图书编号=@a

select*from图书

--更改图书的存储过程

createproctushu_genggai

@achar(5),@bchar(5),@cvarchar(40),@dvarchar(40),@evarchar(8),@fvarchar(40),@gint,@kint,@jdatetime

update图书

set索引号=@b,书名=@c,类型=@d,作者=@e,出版社=@f,价格=@g,借出次数=@k,购买日期=@j

select*from图书where图书编号=@a

--增加图书的存储过程

createproctushu_zengjia

@achar(5),@bchar(5),@cvarchar(40),@dvarchar(40),@evarchar(

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

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1