SQLServer图书管理系统数据库实训.docx
《SQLServer图书管理系统数据库实训.docx》由会员分享,可在线阅读,更多相关《SQLServer图书管理系统数据库实训.docx(10页珍藏版)》请在冰豆网上搜索。
![SQLServer图书管理系统数据库实训.docx](https://file1.bdocx.com/fileroot1/2023-2/26/8673e778-5bd2-4e68-a1c5-4c8e923a54cd/8673e778-5bd2-4e68-a1c5-4c8e923a54cd1.gif)
SQLServer图书管理系统数据库实训
苏州市职业大学
实习(实训)报告
名称图书管理系统
2012年6月18日至2012年6月22日共1周
院 系
班级
姓名
系 主 任
教研室主任
指导教师
苏州市职业大学
实习(实训)任务书
课程名称:
SQLServer数据库项目实训
起讫时间:
2012.6.18~2012.6.22
院系:
计算机工程系
班 级:
11软件测试
指导教师:
程媛牛丽
系主任:
李金祥
一、实训目的和要求
1.目的
实训的目的是掌握中小型数据库应用程序的开发思路和方法,理解数据库原理中的理论知识,能够熟练对数据库进行需求分析、概念建模、逻辑设计、物理实现、简单应用开发,掌握SQLServer实现数据库及其各种对象的方法,对数据库进行基本维护和管理的编程。
通过实施数据库解决方案,掌握数据库系统的开发、实现和维护。
2.要求
实训要求学生以数据库原理为指导,主要在SQLServer2008中完成数据库应用系统的后台实现部分。
要求学生从信息收集开始,逐步进行系统需求分析、数据库设计、编码及调试、数据库维护等任务。
具体任务如下:
具体要求:
1、收集资料、需求分析、概念设计、逻辑设计。
2、创建和配置数据库,创建表、索引、约束。
3、创建视图、存储过程和触发器。
4、数据库的安全性,不同的登录及用户权限控制。
5、数据库维护,制定完善的备份策略及维护计划。
6、能对程序的设计思路或具体代码作出正确的解释。
7、提供完整的可运行的源程序(电子版)和实训报告(打印稿)。
二、实训内容
常见的数据库应用程序的开发。
例如:
学籍管理系统、人事管理系统、工资管理系统、图书管理系统、设备管理系统、文档管理系统、客房管理系统、试题库管理系统等或经教师同意的自选题。
三、实训方式
√集中□分散√校内□校外
四、实训具体安排
1、6月18日布置实训任务,选题,收集相关资料。
题目的需求分析、数据库概念设计。
2、6月19日数据库的物理设计、表、索引、约束等实现。
3、6月20日视图、存储过程和触发器等对象的实现。
4、6月21安全性管理、备份恢复等管理功能。
5、6月22撰写实训说明书。
6、6月23上交说明书打印稿,刻录光盘。
五、实训报告内容
报告中必须包含:
(1)需求分析、数据建模
(2)数据库各种主要对象的设计
(3)设计中关键技术说明
设计报告按照以下提纲书写:
1)题目介绍
2)需求分析和数据库设计
3)数据库概念结构设计
4)数据库逻辑结构设计
5)各种数据对象及安全性管理功能
6)遇到的主要问题及解决方法
7)总结(心得体会)
一、题目介绍1
1.1开发背景1
二、数据库需求分析及建模1
2.1需求分析1
2.2概念设计1
2.3逻辑设计2
三、数据库及库中各种对象的实现4
3.1存储过程和函数的实现4
3.2触发器的实现4
四、遇到的主要问题及解决方法4
五、实训总结5
六、参考文献6
一、题目介绍
1.1开发背景
随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,图书数量急剧增加,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用SQLServer创建的图书管理系统可以让管理人员方便、更快捷的进行管理、查询、借阅、录入等工作。
图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。
我开发图书管理系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,做到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校、社会服务。
二、数据库需求分析及建模
2.1需求分析
随着学校规模的不断扩大,图书馆规模也不断扩大,图书数量急剧增加,有关图书的信息量也在不断成倍增长。
面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。
通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。
图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。
传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错,大大影响了图书馆的正常管理工作。
通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。
随着科技的飞跃进步,对信息的管理也是越来越规范,越来越精确。
不仅让信息合理规范的管理,同时也方便管理者方便的快速查询,提高了管理的效率。
对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务的需要,有利于管理效率的提高。
2.2概念设计
2.3逻辑设计
我分别在5张表中分别把readerno,booktypeno,bookid,borrowno设为主键,把这6张表紧密联系到一起。
后台数据库通过对实体和关系的分析建立我们分别创建了5个表,为了存储数据库相应的数据,这5张表内容如下所示:
readertype
(typenovarchar(4)notnull,
typenamevarchar(20)notnull,
booknumbernumericnull,
bookdaynumericnull,
userfullliftnumericnull,
memotext)
books
(bookidvarchar(13)notnull,
booknamevarchar(30)notnull,
booktypevarchar(4)notnull,
bookauthorvarchar(8)notnull,
bookpubvarchar(30)null,
bookpubdatedatetimenull,
bookpagesnumericnull,
bookkeywordvarchar(20)null,
bookindatedatetimenull,
putupvarchar
(2)null,
bookmemotext)
borrowinfo
(borrownovarchar(4)notnull,
readeridvarchar(8)notnull,
readernamevarchar(4)notnull,
bookidvarchar(13)null,
booknamevarchar(30)null,
borrowdatedatetimenull,
returndatedatetimenull,
memotext)
readers
(readernovarchar(8)notnull,
readernamevarchar(20)notnull,
readersexvarchar(4)notnull,
readertypevarchar(4)null,
readerdepvarchar(30)null,
addressvarchar(40)null,
readertelvarchar(13)null,
Emailvarchar(30)null,
checkdatedatetimenull,
readermemovarchar(400)null)
booktype
(booktypenovarchar(4)notnull,
typenamevarchar(20)notnull,
keywordtextnotnull)
三、数据库及库中各种对象的实现
3.1存储过程和函数的实现
createprocedurebook_borrow(@booknamevarchar(30))
as
begin
select*frombookswherebookid
in(selectbookidfromborrowinfowherereaderid
in(selectreaderidfromborrowinfowherebookname=@bookname))
andbookname<>@bookname
end
3.2触发器的实现
createtriggernot_delete_table
ondatabase
fordrop_table
as
print‘sorryyoucannotdeletetable'
rollback
go
数据库需要其完整性,不能随意就会被破坏,因为每个用户都需要看到正确的信息,管理者更需要数据的正确性。
如果数据可以随意被修改,可想而知,数据都是错误的,图书馆会乱成一团。
为了维持数据库不被破坏,这就需要有相应的代码来实现这一功能,该触发器是就是为了防止数据库表结构被随意修改。
四、遇到的主要问题及解决方法
在本次实训过程中,并不是一帆风顺的,还是遇到了不少问题的,但都被一一解决了。
其中,遇到的最主要的问题就是写好了代码,可是调试运行的时候,却出现了不少问题。
针对这一情况,我逐一的找错误,当自己实在找不出来的时候,我会借助参考书,如果还是找不出来的话,我就会
请教身边的同学。
在图书管理系统的安全设计上,我费的功夫最大,因为在老师讲解这个知识点的时候,我没有认真地听课,所以,对这个知识点很陌生。
翻阅了好多资料后,才对它有所了解,然后,我成功的把它做对了。
grantselectondbo.t_studenttobook_user
execsp_addlogin'guanxianfei','111111','book'
usebook
grantselectondbo.books
toguanxianfei
虽然只是几行简单的代码,但对于我来说,还是非常不容易的。
经过这次实训,我深刻体会到,不听课的后果,是非常严重的。
五、实训总结
一周的数据库系统项目实训,让我在各方面都有了一定的提高。
通过本次试验我更加熟悉掌握了SQLSever数据库的创建、查询、创建、存储过程。
基本达到了要求的技能目标。
能熟练使用SQLSever完成基本操作;掌握SQLSever企业管理器与查询分析器的使用;能完成较复杂的查询操作,培养自己的自学能力,培养自己的解决问题的能力。
存储过程补充知识点的学习,给了我一个拓展知识的空间。
通过实训,我从单一,片面的学习进入了全面,系统的学习。
并在实训中加深了对数据库的理解并积累了经验。
通过项目设计,我加深了对SQLServer2005数据库知识的学习和理解。
以前的学习中,我不太注意知识的回顾和总结;但现在为了使设计的项目更加完整,科学,在项目设计开始前我便把所有知识和设计要点复习了一遍,并进行了总结,这样在项目设计的时候便能够得心应手。
项目设计后,实践又加深了我对知识的理解。
这次实训使我学到了很多书上没有的知识,同时也使我清楚地认识到自己优点和缺点,自己存在的不足。
所以,我会努力学习,尽快地提高自己的能力。
此外,这次实训让我知道,做什么事情,都要对认真,既然是该你做的事,肯定是你应该有这个能力,即使能力不够,也是应该借这个机会来培养。
所以放心大胆地做,对自己有信心,就有动力。
有人说,世上的事就怕认真二字。
确实,做什么,只是认真地去做,踏踏实实,戒躁戒躁,静静地思考,慢慢地进步,真的是天下无难事。
这就是我这次课程设计中得到的最大的体会,受益匪浅。
六、参考文献
[1]李岩,张瑞雪.SQLServer2005实用教程(第二版).清华大学出版社.2011,3.