题目:图书管理系统。
一、 实训目的:
本次实训的目的是培养对所学知识的系统总结和知识综合运用能力的训练。在实践过程中,进一步理解并掌握所学的理论知识;掌握数据库的设计方法及范式的运用;接触并了解数据库应用程序的开发过程;由于实训中还需要教科书以外的知识,因此通过此次实训还可以培养一定的自学能力。
二、实习(实训)的理论基础:
程序设计基础数据库sql server2008知识与应用技巧。
三、实习(实训)内容的要求:
1、数据库及表设计合理,符合规范化要求。
2、表要合理建立相应的约束、参照完整性、触发器。
3、合理利用存储过程或自定义函数,进行有参数查询。
4、有相应的视图输出窗口。
四、数据库结构。
本系统名称:图书管理系统。
包含的数据库对象:(1)图书表。
触发器:tri_insert
存储过程:proc_all
约束:数量。
2)读者表。
存储过程:tri_del
dzcharu
约束:性别。
3)读者类别表。
4)借阅记录表。
存储过程;proc_jilu
outdate
jieshu
huanshu
5)图书类别表。
五,功能分析。
随着学校规模的不断扩大,图书馆规模也不断扩大,图书数量急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。
图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错,大大影响了图书馆的正常管理工作。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。
随着科技的飞跃进步,对信息的管理也是越来越规范,越来越精确。不仅让信息合理规范的管理,同时也方便管理者方便的快速查询,提高了管理的效率。对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务的需要,有利于管理效率的提高。
六、主要程序**。
1)创建存储过程proc_jilu,用于查询指定读者的借书记录。
create proc proc_jilu
读者编号 char(9)
asbegin
select * from 借阅记录表。
where 读者编号=@读者编号。
end2)创建存储过程,用于统计到期没有还书的读者姓名,**。
create proc outdate
asbegin
select 读者表。读者姓名,**。
from 借阅记录表
join 读者表。
on 读者表。读者编号=借阅记录表。读者编号。
join 读者分类表
on 读者表。类别编号 =读者分类表。类别编号。
where 借阅记录表。还入日期
is nyll and
getdate ()借出日期)>读者分类表。借书期限。
end3)创建存储过程proc_wxk查询借书的读者的姓名,编号
create proc proc_wxk
asselect 读者编号,读者姓名。
from 读者表。
where 读者编号。
in(select 读者编号 from 借阅记录表)
4)创建存储过程proc_all 查询所有图书的图书编号,名称,作者等信息。
create proc proc_all
asselect 图书编号,图书名称,作者,**
from 图书表。
5)建立存储过程,借书时将图书表中图书当前数量减少1(默认一本书借一本),并在借阅记录表中添加一条记录,以当前时间为借书时间。
create procedure jieshu
dzid char (9),@bkid char (13),@jlbh char (10)
asbegin
if ((select count(*)from 读者表 where 读者编号= @dzid)=1 ) and((select count(*)from 图书表 where 图书编号= @bkid)=1 ))
beginupdate 图书表。
set 当前数量=当前数量-1
where 图书编号=@bkid
insert
into 借阅记录表(记录编号,读者编号,图书编号,借出日期,状态)
values(@jlbh,@dzid,@bkid,getdate(),借出')
declare @dzxm nchar(10),@bkname nchar(10)
select @dzxm=读者姓名 from 读者表 where 读者编号=@dzid
select @bkname=图书名称 from 图书表 where 图书编号=@bkid
select '编号'+@dzid+'姓名'+@dzxm+'借出<<'bkname+'>
as 读者借书信息。
endelse
print '借书失败'
end6)建立存储过程,还书时将图书数量加1,并更新借阅记录表信息。
create procedure huanshu
dzid char (9),@bkid char (13),@jlbh char (10)
asbegin
if ((select count(*)from 借阅记录表 where 读者编号=@dzid and 图书编号=@bkid)<0)
beginprint'对不起,您没有借阅此书,无法进行还书'
endelse
beginupdate 图书表。
set 当前数量=当前数量+1
where 图书编号=@bkid
select *
from 借阅记录表。
where 读者编号=@dzid and 图书编号=@bkid
declare @dzxm nchar(10),@bkname nchar(10)
--select @dzxm=读者姓名from 读者表where 读者编号=@dzid
--select @bkname=图书名称from 图书表where 图书编号=@bkid
update 借阅记录表 set 状态 ='还入',还入日期=getdate()
where 读者编号=@dzid and 图书编号=@bkid
select '编号'+@dzid+'姓名'+@dzxm+'归还<<'bkname+'>一书'
as 读者还书成功信息。
endend
7)创建触发器tri_del删除读者表的读者信息时,借阅记录表相应的读者信息也删除。
create trigger tri_del
on 读者表 after delete
asbegin
delete from 借阅记录表 where 读者编号=
select 读者编号 from deleted)
end8)创建触发器tri_insert给图书表添加图书。
create trigger tri_insert
on 图书表 after insert
asif (select count(*)from 图书表,inserted where 图书表。图书编号=inserted.图书编号)=0
beginprint '此书不存在'
rollback tran
end添加图书;
begin transaction
insert 图书表(图书编号,图书名称,作者,**)
values ('9787302179498','计算机英语使用教程','张**'23.0')
9)创建触发器dzcharu给读者表添加读者。
create procedure dzcharu
读者编号 char(9),@读者姓名 nchar(10),@类别编号 char(1),@生日 date,@性别 char(2),@住址 nchar(10),@** char(13),@备注 nchar(10)
asbegin
insert into 读者表(读者编号,读者姓名,类别编号,生日,性别,住址,**,注册日期,备注)
values(@读者编号,@读者姓名,@类别编号,@生日,@性别,@住址,@**,getdate(),备注)
end 10)为图书表建立约束,使新插入图书默认为10本。
alter table 图书表。
add constraint 数量 default ('10')for 当前数量。
11)为读者表建立约束,使新插入读者信息性别默认为男。
alter table 读者表。
add constraint 性别 default ('男')for 性别。
七、完成情况。
初期建表考虑到各种情况,如读者信息的修改,添加、删减读者,图书信息的修改,添加、删减图书,以及借阅图书后到期还书提醒,未还书添加记录并要求赔偿,对各个级别的读者分类管理等,建立了比较全面的信息登记表,基本包含了以上内容所需信息,建立了良好的开端;在后期操作过程中,只是实现了一部分功能,并未实现预想的数据库自动处理数据,自动管理的目的,在以后的时间里,还可以继续提高,进一步完善。
八、总结。对于本次实训,我们发现了自身的不足,虽然课程已经学习完,但应用能力还有待提高,不能灵活运用,本次的数据库系统项目实训,让我在各方面都有了一定的提高。 通过本次试验我更加熟悉掌握了 sql sever 数据库的创建、查询、存储过程。
基本达到了要求。能熟练使用 sql sever 完成基本操作;能完成较复杂的查询操作,培养自己的自学能力,培养自己的解决问题的能力。存储过程补充知识点的学习,给了我一个拓展知识的空间。
通过实训,我从单一,片面的学习进入了全面,系统的学习。并在实训中加深了对数据库的理解并积累了经验。通过项目设计,我加深了对 sql server 2008 数据库知识的学习和理解。
以前的学习中,我不太注意知识的回顾和总结;但现在为了使设计的项目更加完整,科学,在项目设计开始前我便把所有知识和设计要点复习了一遍,并进行了总结,这样在项目设计的时候便能够得心应手。项目设计后,实践又加深了我对知识的理解。这次实训使我学到了很多书上没有的知识,同时也使我清楚地认识到自己优点和缺点,自己存在的不足。
所以,我会努力学习,尽快地提高自己的能力。
数据库库课程设计
目录。引言11 开发环境1 1.1 硬件环境1 1.2 软件环境1 1.2.1 sql server 2005 delphi7简单介绍2 2 需求分析3 2.1 信息需求3 2.2 功能需求3 2.3 安全性与完整性要求3 3 概念结构设计3 4 逻辑结构设计4 5 数据库实现6 5.1 创建数据库...
数据库课程设计总结数据库课程设计个人总结
数据库课程设计个人总结 4班6组赵 王婆卖瓜时间过了,言归正传吧。凡是都要有个总结,以下便是我在这个课程设计中的一点心得。首先我分析一下我们组任务顺利完成的成功之处并总结一些经验,供以后反省参考用。凡事预则备,不预则废。这是我的座右铭,也是我深有感悟的几句古语之一。在这个项目的开始阶段,老师便让我们...
数据库课程设计
简单pos系统。班级 计科二班 姓名 韩田田 学号 201010510237 目录。前言。销售管理作为零售企业现代化管理不可缺少的组成部分,日益受到人们的重视。传统销售模式以及销售管理体系和机制,已经越来越难以适应零售企业现代化管理的需求。pos point of sales,销售终端的英文缩写 是...