您当前的位置:首页 >  考试文档 >  单元测试 > 内容

《SQL-Server-数据库设计》课程设计报告(图书馆管理系统)

无忧文档网    时间: 2020-12-14 21:13:55     阅读:

《SQL Server 数据库设计》 课程设计报告 课题名称:图书馆管理系统_ 班级:_ 软大班____ 学号:_ __ 姓名:___ ___ 完成日期:_2011-X-X_ _ 课程设计报告内容 项目名称 图书馆管理系统数据库设计 姓名 其他参与人员 本人在本 项目中主要完成的工作 系统需求分析 系统功能分析 数据库设计 数据库物理结构设计 数据库安全设计 数据库的实现 系统功能实施需要的语句 完成任务的体会 这次实训最大的体会就是明白到自己之前有多么的懒惰,学过的东西没有去复习和联系。导致这次实训到临时来学习。零时来翻课件学习语句,还好在老师的帮助下,攻克了很多难题。这次最大的收获就是学会了分析一个系统的需要,明白了不管学什么都要用心去练习。这次实训虽然遇到了很多困难,但是我也发现,只要用心的去学,去钻,就一定能弄懂。

目录 一、系统需求分析:
3 系统目标 3 系统的功能需求 4 系统功能描述 4 二、本项目的系统设计 4 系统的功能分析 4 系统的功能模块设计 5 三、数据库设计 5 数据库需求分析:
5 图书馆管理流程图 6 图书馆管理系统实体E-R图 7 数据库的完整性要求 7 四、数据库的物理结构设计:
8 图书信息表 8 借阅表 8 读者信息表 8 读者类别表 9 管理员信息表 9 五、数据库安全设计 9 六、数据库的实现 10 创建图书信息表 10 创建借阅表 10 读者信息表 11 (读者类别表 11 管理员信息表 11 七、系统功能实施需要的语句 12 读者类别表 12 读者信息表 13 管理员信息表 15 借阅表 16 图书信息表 18 视图 19 存储过程 20 触发器 21 一、系统需求分析:
A. 系统目标:本系统将实现用计算机管理图书馆的功能。具体完成图书信息管理、读者信息管理、管理员信息管理及图书借阅管理等功能。

B. 系统的功能需求:本系统用户分为读者用户和管理员用户两类,管理员用户负责系统的维护,包括对图书信息、读者信息、借阅信息的录入、修改、查询、删除等。读者用户只具有查询书籍和自己信息的权限。

C. 系统功能描述:
系统开发的主要目的是实现图书馆信息管理的系统化、规范化和自动化。图书馆信息管理系统主要提供对图书信息的管理及读者信息的管理。需要完成的主要功能有:
1、 有关读者信息的输入、修改和查询;

2、 图书信息的输入、修改和查询;

二、本项目的系统设计 a) 系统的功能分析:
A. 图书信息管理:
图书信息的插入、修改及删除,内容ISBN、书名、作者、价格、出版社、出版日期 、在馆状态、简介、备注 。管理员用户可以对图书信息进行修改等操作。读者用户只可以查询图书信息。

B. 读者信息管理:
读者信息:读者编号、读者姓名、读者性别、读者类别编号、联系电话、生效时间、失效时间、违章状况、已借数目、备注。

管理员对读者信息进行增加、删除、查询及修改等操作。读者只能对读者信息进行查询操作。

C. 管理员信息管理。

管理员信息:管理员工作号、姓名、性别、电话、住址、备注。管理员对管理员信息的添加删除修改等操作。

D. 图书借阅管理。

借阅信息:管理员工作号、ISBN、读者编号、借书日期、还书日期、是否续借、备注。管理员对借出的书籍、借书的人、借书时间、还书时间进行登记,超出时间登记违规情况。

b) 系统的功能模块设计 对上述功能进行集中分析、分块,按照结构化程序设计的要求,得到功能模块图如下:
三、数据库设计 (一) 数据库需求分析:
通过对图书馆管理过程的内容和数据流程分析,设计如下的数据项和数据结构。系统的实体集和实体属性:
图书信息:ISBN、书名、管理员工作号、作者、价格、出版社、出版日期 、在馆状态、简介、备注 。

读者信息:读者编号、读者姓名、读者性别、读者类别编号、联系电话、生效时间、失效时间、违章状况、已借数目、备注。

管理员信息:管理员工作号、姓名、性别、电话、住址、备注。

(二) 图书馆管理流程图 (三) 图书馆管理系统实体E-R图 (四) 数据库的完整性要求 通过各种约束,默认值,规则和触发器实现数据的完整性。由于学生管理系统的重要性和各个数据之间的复杂相关性,保证数据的完整性很重要,不能随便删除、修改数据。

1、通过check约束保证成绩输入的正确性。

2、通过各种外键保证数据的完整性,不能随便删除数据。外键在建表时列出(见后)。

3、通过主键保证实体的完整性。外键在建表时列出(见后)。

4、创建触发器,保证在添加借阅信息时,自动将该借阅的书籍在馆状态改为否。

创建触发器,保证在添加借阅信息时,自动将该读者的已借数目累计加1。

也可以通过其他方法保证数据的完整性。

四、数据库的物理结构设计:
一、 图书信息表 列名(字段名) 数据类型与长度 空否 说明 ISBN varchar(12) 否 主键 书名 varchar(50) 否 管理员工作号 varchar(20) 否 外键 作者 varchar(12) 是 价格 int 是 出版社 varchar(50) 是 出版日期 datetime 是 在馆状态 varchar(20) 否 简介 varchar(200) 是 备注 varchar(200) 是 二、 借阅表 列名(字段名) 数据类型与长度 空否 说明 管理员工作号 varchar(20) 否 外键 ISBN varchar(12) 否 外键 读者编号 varchar(12) 否 外键 借书日期 datetime 否 还书日期 daterime 否 是否续借 char(4) 否 备注 varchar(100) 是 三、 读者信息表 列名(字段名) 数据类型与长度 空否 说明 读者编号 varchar(12) 否 主键 读者姓名 varchar(50) 否 读者性别 varchar(2) 否 读者类别编号 varchar(20) 否 外键 联系电话 varchar(50) 是 生效时间 datetime 是 失效时间 datetime 是 违章状况 varchar(2) 是 已借数目 int 否 备注 varchar(100) 是 四、 读者类别表 列名(字段名) 数据类型与长度 空否 说明 读者类别编号 varchar(20) 否 主键 读者类别名称 varchar(50) 否 可借数目 int 否 可借天数 int 否 五、 管理员信息表 列名(字段名) 数据类型与长度 空否 说明 管理员工作号 varchar(20) 否 主键 姓名 varchar(12) 否 性别 varchar(2) 否 电话 varchar(12) 是 住址 varchar(12) 是 备注 varchar(100) 是 五、数据库安全设计 1、 本数据库的角色成员有:管理员(系统管理员、学校及系领导)、读者。

2、 管理员将授予数据库的所有权限,读者只有查询本人信息绩的权限和查询图书信息权限, 六、数据库的实现 (1.)创建图书信息表 create table 图书信息表 (ISBN varchar(12) Not null primary key , 书名 varchar(50) Not null , 管理员工作号 varchar(20) Not null , 作者 varchar(12) null , 价格 int null , 出版社 varchar(50) null , 出版日期 datetime null , 在馆状态 varchar(20) Not null , 简介 varchar(200) null , 备注 varchar(200) null ;) (2.)创建借阅表 create table 借阅表 (管理员工作号 varchar(20) Not null , ISBN varchar(12) Not null, 读者编号 varchar(12) Not null , 借书日期 datetime Not null , 还书日期 daterime Not null, nullNot null续借 char(4) Not null , 备注 varchar(100) null) (3.)读者信息表 create table 读者信息表 (读者编号 varchar(12) Not null primary key , 读者姓名 varchar(50) Not null, 读者性别 varchar(2) Not null , 读者类别编号 varchar(20) Not null , 联系电话 varchar(50) null , 生效时间 datetime null , 失效时间 datetime null , 违章状况 varchar(2) null , 已借数目 int Not null, 备注 varchar(100) null ) (4.) 读者类别表 create table读者类别表 (读者类别编号 varchar(20) Not null primary key , 读者类别名称 varchar(50) Not null , 可借数目 int Not null , 可借天数 int Not null ) (5.) 管理员信息表 create table 管理员信息表 (管理员工作号 varchar(20) Not null primary key , 姓名 varchar(12) Not null , 性别 varchar(2) Not null , 电话 varchar(12) null , 住址 varchar(12) null , 备注 varchar(100) null ) 七、系统功能实施需要的语句 /*读者类别表*/ /*添加记录*/ insert into 读者类别表(读者类别编号,读者类别名称,可借数目,可借天数) values('01','学生',5,30) insert into 读者类别表(读者类别编号,读者类别名称,可借数目,可借天数) values('02','老师',10,100) insert into 读者类别表(读者类别编号,读者类别名称,可借数目,可借天数) values('03','领导',10,100) /*修改记录*/ update 读者类别表 set 读者类别名称='领导或老师' where 读者类别名称='老师' /*删除记录*/ delete from 读者类别表 where 读者类别编号='03' /*查询记录*/ select * from 读者类别表 /*读者信息表*/ /*添加记录*/ insert into 读者信息表(读者编号,读者姓名,读者性别,读者类别编号,联系电话,生效时间,失效时间,违章状况,已借数目,备注) values('201002040104','周书婷','女','01','18711857424','2010-09-06','2013-05-06','无',0,'10软大一班') insert into 读者信息表(读者编号,读者姓名,读者性别,读者类别编号,联系电话,生效时间,失效时间,违章状况,已借数目,备注) values('201002040101','张洋','男 ','01','13707380514','2010-09-06','2013-05-06','无',0,'10软大一班') insert into 读者信息表(读者编号,读者姓名,读者性别,读者类别编号,联系电话,生效时间,失效时间,违章状况,已借数目,备注) values('201002040102','周力','男','01','15173847305','2010-09-06','2013-05-06','无',0,'10软大一班') insert into 读者信息表(读者编号,读者姓名,读者性别,读者类别编号,联系电话,生效时间,失效时间,违章状况,已借数目,备注) values('201002040103','蒋翔','男','01','18711697851','2010-09-06','2013-05-06','无',0,'10软大一班') /*修改记录*/ update 读者信息表 set 联系电话='18711843992' where 读者姓名='周书婷' /*删除记录*/ delete from 读者信息表 where 读者编号='201002040103' /*查询记录*/ select * from 读者信息表 /*管理员信息表*/ /*添加记录*/ insert into 管理员信息表(管理员工作号,姓名,性别,电话,住址,备注) values('1001','张删','男',02885965551,'湖南省娄底市','借阅管理') insert into 管理员信息表(管理员工作号,姓名,性别,电话,住址,备注) values('1002','李志文','男',02885965552,'湖南省娄底市','借阅管理') /*修改记录*/ update 管理员信息表 set 电话='02885964442' where 管理员工作号='1002' /*删除记录*/ delete from 管理员信息表 where 管理员工作号='1001' /*查询记录*/ select * from 管理员信息表 /*借阅表*/ /*添加记录*/ insert into 借阅表(管理员工作号,ISBN,读者编号,借书日期,还书日期,是否续借,备注) values('1001','978788111','201002040104','2011-6-11','2011-6-11','否','无') insert into 借阅表(管理员工作号,ISBN,读者编号,借书日期,还书日期,是否续借,备注) values('1001','978750118','201002040104','2011-6-11','2011-6-17','否','无') /*修改记录*/ update 借阅表 set 还书日期='2010-6-14' where ISBN='978780098' /*删除记录*/ delete from 借阅表 where ISBN='978780098' /*查询记录*/ select * from 借阅表 /*图书信息表*/ /*添加记录*/ insert into 图书信息表 (ISBN,书名,管理员工作号,作者,价格,出版社,出版日期,在馆状态,简介,备注) values('978780098','入党教材','1001','中共中央组织部组织局',12,'党建读物出版社','2008-06','在','入党教材','入党培训书籍') insert into 图书信息表 (ISBN,书名,管理员工作号,作者,价格,出版社,出版日期,在馆状态) values('978788111','应用数学','1001','湖南中华职业教育社',25,'湖南出版社','2010-07','在') insert into 图书信息表 (ISBN,书名,管理员工作号,作者,价格,出版社,出版日期,在馆状态) values('978750118','我的大学','1002','卢婷婷,赵琼',25,'新华出版社','2010-6','在') /*修改记录*/ update 图书信息表 set 出版社='湖南大学出版社' where ISBN='978788111' /*删除记录*/ delete from 图书信息表 where ISBN='978788111' /*查询记录*/ select * from 图书信息表 /*视图*/ create view 读者查询 as select 读者姓名,联系电话,生效时间 from 读者信息表 where 违章状况='无' /*存储过程*/ create procedure 借阅信息查询 as select 管理员工作号,ISBN,读者编号,借书日期,还书日期,是否续借,备注 from 借阅表 create procedure 图书信息查询 as select ISBN,书名,管理员工作号,作者,价格,出版社,出版日期,在馆状态 from 图书信息表 /*触发器*/ create trigger 图书在馆状态更改 on 借阅表 after insert as begin declare @H varchar(12),@D varchar(12),@L varchar(20),@k int,@y int select @H= ISBN,@D= 读者编号 from inserted if exists(select * from 图书信息表 where ISBN=@H) and exists(select * from 读者信息表 where 读者编号=@D) begin update 图书信息表 set 在馆状态='否' where ISBN=@H select @L=读者类别编号 from 读者信息表 where 读者编号=@D select @k=可借数目 from 读者类别表 Where 读者类别编号=@L select @Y=已借数目 from 读者信息表 where 读者编号=@D if(@Y<@K) update 读者信息表 set 已借数目=已借数目+1 where 读者编号=@D else begin rollBack print('已经达到了可借数目,不能再借书了') end end else begin rollBack print('不存在该读者或图书,不能借书') end end go

《《SQL-Server-数据库设计》课程设计报告(图书馆管理系统).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

相关热搜

《《SQL-Server-数据库设计》课程设计报告(图书馆管理系统).doc》

VIP请直接点击按钮下载本文的Word文档下载到电脑,请使用最新版的WORD和WPS软件打开,如发现文档不全可以联系客服申请处理。

文档下载
VIP免费下载文档

浏览记录