数据库概论课程设计实验报告书.docx

上传人:b****8 文档编号:9197863 上传时间:2023-05-17 格式:DOCX 页数:18 大小:323.15KB
下载 相关 举报
数据库概论课程设计实验报告书.docx_第1页
第1页 / 共18页
数据库概论课程设计实验报告书.docx_第2页
第2页 / 共18页
数据库概论课程设计实验报告书.docx_第3页
第3页 / 共18页
数据库概论课程设计实验报告书.docx_第4页
第4页 / 共18页
数据库概论课程设计实验报告书.docx_第5页
第5页 / 共18页
数据库概论课程设计实验报告书.docx_第6页
第6页 / 共18页
数据库概论课程设计实验报告书.docx_第7页
第7页 / 共18页
数据库概论课程设计实验报告书.docx_第8页
第8页 / 共18页
数据库概论课程设计实验报告书.docx_第9页
第9页 / 共18页
数据库概论课程设计实验报告书.docx_第10页
第10页 / 共18页
数据库概论课程设计实验报告书.docx_第11页
第11页 / 共18页
数据库概论课程设计实验报告书.docx_第12页
第12页 / 共18页
数据库概论课程设计实验报告书.docx_第13页
第13页 / 共18页
数据库概论课程设计实验报告书.docx_第14页
第14页 / 共18页
数据库概论课程设计实验报告书.docx_第15页
第15页 / 共18页
数据库概论课程设计实验报告书.docx_第16页
第16页 / 共18页
数据库概论课程设计实验报告书.docx_第17页
第17页 / 共18页
数据库概论课程设计实验报告书.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库概论课程设计实验报告书.docx

《数据库概论课程设计实验报告书.docx》由会员分享,可在线阅读,更多相关《数据库概论课程设计实验报告书.docx(18页珍藏版)》请在冰点文库上搜索。

数据库概论课程设计实验报告书.docx

数据库概论课程设计实验报告书

《数据库系统概论》课程设计

实验报告书

安徽工业大学计算机学院

 

姓名

汪燕

专业

网络工程

班级

网131

学号

139074268

指导教师

周兵

 

分数

 

2016年6月1日

 

摘要

各个学校、各个城市以及很多企事业单位都建有图书馆,收藏有丰富的图书资料,供广大读者借阅,实现资源共享。

图书馆中的图书信息、读者信息以及图书借阅管理等是一件非常繁琐但又是极其重要的一项工作。

传统的图书馆采用人工管理方式,工作繁琐且效率低下,因此这项工作现在一般都使用数据库系统代替传统的人工管理方式。

图书借阅管理系统可以有效的管理图书资料信息,控制图书资料的借阅流程,对提高图书馆或者阅览室的管理效率有很大的帮助。

关键词:

数据库、管理、图书借阅管理系统

 

 

1绪论

1.1概述

1.1.1问题的提出

如何方便用户借阅查询所需要的图书,并且使得管着更好的对图书借阅进行管理。

1.1.2本课题的意义

主要意义是通过完成这个图书借阅系统,方便管理者的管理以及用户借阅查询所需要的书籍,使大家在尽可能短的时间内完成对所需要图书的借阅,还可以方便管理者对书籍归还情况的查询。

1.2开发环境与工具介绍

开发环境:

windows7

开发语言:

C#

开发工具:

VS2012、SQLSERVER

1.2.1VS简介:

VisualStudio是微软公司推出的开发环境。

是最流行的Windows平台应用程序开发环境。

VisualStudio2012新Logo

2012年9月12日微软在西雅图发布VisualStudio2012。

其实早在8月16日VisualStudio2012和.NETFramework4.5已经可以下载,微软负责VisualStudio部门的公司副总裁JasonZander还发表博客,列举了升级到VisualStudio2012版的12大理由。

当时还主要是分发给MSDN订阅用户。

9月1日批量许可(VL)发布。

而在12号这天面向全球用户上市。

1.2.2SQLSERVER简介:

SQLServer2008在Microsoft的数据平台上发布,可以组织管理任何数据。

可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。

可以对数据进行查询、搜索、同步、报告和分析之类的操作。

数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。

SQLServer2008允许使用Microsoft.NET和VisualStudio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过MicrosoftBizTalkServer进行的业务流程中使用数据。

信息工作人员可以通过日常使用的工具直接访问数据。

2系统需求分析与设计

2.1用户需求分析

图书管理系统需要解决以往手工管理的种种弊端,比如管理员不能及时的更新图书信息,不能及时了解馆藏图书的种类和库存量,也不能掌握读者的借阅情况、超期借阅图书情况等信息。

分析图书管理流程,系统应该实现以下功能:

图书管理员可以维护图书信息,包括增加新书、修改图书信息、办理图书借阅登记、图书归还登记、过期图书处理、丢失图书处理以及读者借阅证件信息的维护等。

而读者可以实现结束、还书、查阅图书信息、查询借书信息等。

具体要求如下。

图书信息管理:

录入各种图书信息、维护图书信息等。

图书信息包括图书编号、图书名称、作者、出版社、价格等,其中图书类型由图书分类号说明,每个图书分类号对应一种图书类型。

读者信息管理:

维护读者信息,并根据实际情况需要修改、跟新、删除读者信息。

读者信息包括证件号、姓名、证件状态(包括有效和失效)、联系方式等。

借阅管理:

包括借书、还书、过期图书归还处理等;借书时登记借书时间,还书时登记归还时间、并检查是否超期,进行处理。

图书馆的图书情况和管理规定,每种类型图书有很多不同的图书;同样的书可以买多本;每本图书可以被多次借阅;每位读者可以借阅多本图书。

每本图书的借阅期限为一个月。

2.2功能模块图及分模块功能描述

2.2.1系统的功能模块图

这个我在这里写作为概念设计:

分析图书借阅管理系统的需求,将现实世界中的图书馆管理中涉及的人、物、事进行抽象,得到系统的实体、实体属性、实体之间的联系以及联系的类型,利用E-R图表示,就可以设计出图书管理系统的概念模型,也就是概念结构设计。

概念结构设计一般分为3个步骤:

确定实体;确定联系;确定实体的属性和键。

可以从上述需求分析中找出的名次有:

图书管理员、图书类型、图书、读者。

因此可以确定的实体有图书类型、图书、读者。

注意这个时候可能不是全部的实体,它只是一个中间产物,但是没有关系,数据库的设计是一个迭代的过程。

从需求中还可以分析得到的联系有:

读者借阅图书,因此读者与图书之间有一种借阅关系,并且一名读者可以借阅多本图书,而一本书也可以被不同的读者借阅,所以读者与图书之间存在着多对多联系即M:

N联系。

另外,从需求分析中可以得出,图书馆的图书都有科学的分类方法,每一种图书属于一种图书类型,而一种图书类型可以包含许多图书,因此可以得到图书类型与图书之间也存在着一种联系,并且这种联系是一种一对多的联系,即图书类型与图书是1:

N的联系。

读者借阅的是图书而不是图书类型,因此读者与图书类型直接没有直接联系。

确定了系统的实体与联系之后,下面进一步确定实体与联系的属性和主键,分析实体图书,图书应该包括下面的属性:

图书编号、图书名称、图书分类号、作者、出版社和价格等。

读者应该包括读者的基本信息:

姓名、证件号、证件的状态是否有效、以及联系方式等;图书类型应该包括图书的分类号、分类名称、也可以加上关于图书的描述信息。

图书类型,包括:

图书分类号、图书分类名称、描述信息,图书分类号是主键;

图书,包括:

图书编号、图书名称、作者、出版社、价格,图书编号是主键;

读者,包括证件号、姓名、证件状态(包括有效和失效)、联系方式等,证件号是主键;

对读者与图书之间的借阅联系进行分析,借阅这种联系是读者借阅图书产生的,是多对多的联系,其属性应该包括借阅日期、应还日期、归还日期以及超期时的罚款金额等。

2.2.2系统功能模块简介

图书信息管理:

录入各种图书信息、维护图书信息等。

图书信息包括图书编号、图书名称、作者、出版社、价格等,其中图书类型由图书分类号说明,每个图书分类号对应一种图书类型。

读者信息管理:

维护读者信息,并根据实际情况需要修改、跟新、删除读者信息。

读者信息包括证件号、姓名、证件状态(包括有效和失效)、联系方式等。

借阅管理:

包括借书、还书、过期图书归还处理等;借书时登记借书时间,还书时登记归还时间、并检查是否超期,进行处理。

2.3数据库设计

2.3.1系统E-R图

将实体的属性加入到初步E-R图中,可以得到图书借阅管理系统的全局E-R图。

这个过程属于概念结构设计的视图集成,需要解决各个分E-R图的冲突问题,这里因为系统规模很小,没用出现冲突。

图书分类号是图书类型实体的主键,图书编号是图书实体的主键,读者证件号是读者实体的主键。

mn

n

 

1

 

图书借阅管理系统全局E-R图

2.3.2数据库逻辑结构设计

数据库的逻辑结构设计是根据概念结构设计的全局E-R图,按照转换规则,将E-R图转换为数据模型的过程。

在关系数据库管理系统,即将所有的实体和联系转化为一系列的关系模式。

E-R图中实体应该单独提取出来作为一个关系模式,其中主键用横线标出,图书借阅管理的关系模式如下:

图书类型(图书分类号,图书分类名称,描述信息)为图书类型实体对应的关系模式,其中“图书分类号”是图书实体的主键。

图书(图书编号,图书名称,图书分类号,作者,出版社,价格)为图书实体对应的关系模式,其中“图书编号”是图书实体的主键;加入“图书分类号”属性是为了实现图书类型与图书之间的一对多联系。

按照转换规则,一对多联系可单独转换为一个关系模式,以多端实体的键作为主键,也可以与多端的实体“图书”合并,即将一端实体“图书类型”的主属性加入到多端实体的关系模式中即可。

实际应用中一般都与多端实体进行合并。

本系统“图书分类号”是“图书类型”实体的主键,被加入到“图书”关系模式中,在图书关系中,“图书分类号”应该设置为外键,参照图书类型中的主键“图书分类号”。

读者(证件号,姓名,证件状态,联系方式)为读者实体对应的关系模式,其中“证件号”是读者实体的主键。

联系“借阅”是一个多对多联系,按照转换规则,必须转换为一个独立的关系模式,其本身的属性包括:

借阅日期、应还日期、归还日期、罚款金额,还应包括与之联系的图书和读者的主键属性,所以借阅联系关系模式如下:

借阅(证件号,图书编号,借阅日期,应还日期,归还日期,罚款金额)。

其中“证件号”和“图书编号”共同构成了借阅关系的主键,另外关于罚款金额的计算方法假定是超过一天罚款0.1元;“归还日期”属性允许为空NULL;规定借书的期限为一个月,因此“应还日期”是在借阅日期的基础上加一个月的日期,但也可以提前还。

 

3系统实施

3.1建立数据库

首先利用图形交互方式建立“图书借阅系统”数据库

//建立图书表

Createtable图书

图书编号char(20)notnullprimarykey,

图书名称varchar(50)notnull,

图书分类号char(20)notnull,

作者char(30)notnull,

出版社char(30),

价格moneyfloatnotnullcheck(价格>0),

Constraintstudent_course_fkflhforeignkey(图书分类号)references图书类型(图书分类号)

//建立图书类型表

Createtable图书类型

图书分类号char(20)notnullprimarykey,

图书分类名称char(20)notnull,

描述信息varchar(50)

//建立读者信息表

Createtable读者

证件号char(15)notnullprimarykey,

姓名char(20)notnull,

证件状态char(10)notnullcheck(证件状态in(‘可用’,’失效’)),

联系方式char(11)notnull

//建立借阅信息表

Createtable借阅

证件号char(15)notnull,

图书编号char(20)notnull,

借阅日期datetimenotnull,

应还日期datetimenotnull,

归还日期datetime,

罚款金moneyfloatnotnulldefault0.0check(罚款金>=0.0),

ConstraintBook_Borrow_Pkzjshprimarykey(证件号,图书编号),

ConstraintBook_Borrow_fkzjhmforeignkey(证件号)references读者(证件号),

ConstraintBook_Borrow_fktsbhmforeignkey(图书编号)references图书(图书编号)

//建立操作员信息表

//在借阅表上建立一个触发器。

以保证向借阅表插入的“证件号”在读者表中存在,如果不存在,就不会向借阅表中插入借阅信息记录。

Createtriggerinsert_借阅on借阅forinsert

As

If(selectcount(*)from读者,insertedwhere读者.证件号=inserted.证件号)=0

Begin

Print‘没有该读者信息’

Rollbacktransaction

End

//在借阅表建立一个跟新触发器,监视借阅表的“借阅日期”列,使其不能手工修改

Createtriggerupdate_借阅on借阅forupdate

As

Ifupdate(借阅日期)

Begin

Print‘不能手工修改借阅日期’

Rollbacktransaction

End

//在读者表建立删除触发器,实现读者表和借阅表的级联删除

Createtriggerdelete_读者on读者fordelete

As

Deletefrom借阅

Where证件号in(select证件号fromdeleted)

//为“计算机类图书”建立视图

Createview计算机图书

As

Select图书.*,图书类型.图书分类名称from图书,图书类型

Where图书.图书分类号=图书类型.图书分类号

and图书类型.图书分类名称like’计算机%’

//建立视图读者借书情况表

Createview读者借书情况表(读者证件号,读者姓名,图书名称,借书日期)

As

Select读者.证件号,读者.姓名,图书.图书名称,借阅.借阅日期

From读者,图书,借阅

Where读者.证件号=借阅.证件号and图书.图书编号=借阅.图书编号

//创建存储过程,在登录验证密码时用到

CREATEPROCEDURESelectOperator

@usernamenchar(10),

@passwordnchar(20)

AS

SELECTusername,password

FROMOperator

WHERE(username=@username)AND(password=@password)

Return

//创建存储过程,用于显示可选择的操作员

CREATEPROCEDURESelectAllUserNameFromOperator

AS

SELECTusername

FROMOperator

return

3.2数据库连接

publicstaticstringConnectionString="DataSource=.;database=图书借阅系统;Integratedsecurity=true";//连接字符串,XX的

publicstaticSqlConnectioncon=newSqlConnection(ConnectionString);

stringsql="SelectAllUserNameFromOperator";//过程名字

SqlCommandcmd=newSqlCommand();//执行对象

cmd.CommandType=CommandType.StoredProcedure;//设置解释方法为存储过程             

cmd.CommandText=sql;//设置执行语句

cmd.Connection=Connection.con;//设置cmd对象依赖的连接对象

Connection.con.Open();//打开数据库

SqlDataReaderreader=cmd.ExecuteReader();//结果集放到reader对象中

3.3主要模块实施

3.3.1登录模块的开发

用户需要输入正确的密码才能进入系统功能选项,如下密码错误,将出现下面的这个对话框:

3.3.2系统功能模块开发

输入密码正确后,可进入系统功能模块选项,操作员可以选择对哪张表进行操作

3.3.3各个表模块开发

进入读者表模块后,可以对读者表的内容进行增删改查功能,这些操作可以通过界面上方的工具栏来实现。

因为其他几张表模块开发与读者表模块开发基本类型故不再阐述。

 

3.4系统测试

3.4.1软件测试的对象

同学

3.4.2软件测试的结果

能实现单个表的增删改查,但不能同时在两个表中插入数据,故新同学无法直接借书,无法同时对借阅表和读者表进行操作。

4系统说明

4.1开发环境

本系统的是在.NET平台下开发的,系统的后台数据库为SQLSERVER数据库;因此在使用本系统前,应先安装.NET框架和SQLSERVER数据库,否则该系统无法运行。

4.2系统安装、配置与发布应用程序的步骤

系统的原文件直接复制到机器上后,在数据库管理系统上建立一个名为图书借阅系统的数据库后,系统便可以运行。

总结

这次的数据库课程设计我在搭建数据库时并没用花费太多的时间,但花了大概一个下午的时间整理、思考图书借阅管理系统涉及的实体以及各个实体之间的属性等。

最后决定用C#写前台也是因为比较简单。

在写前台的过程中,我深刻的认识到了自己代码能力的薄弱,一个很简单的地方往往也要XX很久才能找到解决的办法。

本系统还存在一些问题,比如无法实现对多个表的同时处理,仅能实现对单个表的增删改查功能,这无疑是一个比较重大的缺陷。

其实只要把系统功能那里不再针对单个表处理这个问题也就解决了。

但最近比较繁忙,考试比较多,虽然中间有些问题比较烂,但是也不打算再进行修改。

本次课程设计,使我加深了对软件开发流程的深入理解。

这是第一次严格的按照软件工程开发的标准开发项目。

在课程设计过程中,认真编写软件开发文档和程序代码。

代码编写完后,再认真测试,检查系统的不足之处。

由于之前开发系统都没有编写软件开发文档的习惯,因此,在编写软件开发文档的过程中遇到了一些问题,但是通过查阅资料等途径解决了。

通过本次课程设计,深刻体会到软件工程文档编写的重要性,软件工程文档是指导我们进行项目开发的指挥棒。

编写好一份高效可行的软件工程文档对软件开发非常重要。

还有,对系统的需求分析非常重要,需求的变成直接影响项目的开发进度。

这次课程设计首先对系统的需求理解不透彻,走了一点弯路,浪费了一些时间。

在以后的软件开发过程中尽量吸取本次课程设计的经验教训,提高项目开发效率。

因为本次课程设计中间出了一点问题,虽然我在报告里面没有很好的表现出来,但是如果演示的话,您就会发现有个大问题,所以我不打算在老师您面前演示了,算是侥幸偷懒一下吧,希望老师不要责怪我没有演示。

老师检查这么多课程设计也辛苦了,谢谢老师*_*。

 

参考文献

[1]VisualStudio2012高级编程(第四版):

清华大学出版社,2014年1月

[2]数据库系统设计、实现与管理:

电子工业出版社,2004年3月

[3]SQLServer数据库教程:

清华大学出版社,2014年1月

江北.场论.北京:

科学技术出版社,2000年2月.

附录:

部分源代码

//创建存储过程,在登录验证密码时用到

CREATEPROCEDURESelectOperator

@usernamenchar(10),

@passwordnchar(20)

AS

SELECTusername,password

FROMOperator

WHERE(username=@username)AND(password=@password)

Return

//创建存储过程,用于显示可选择的操作员

CREATEPROCEDURESelectAllUserNameFromOperator

AS

SELECTusername

FROMOperator

Return

数据库连接:

publicstaticstringConnectionString="DataSource=.;database=图书借阅系统;Integratedsecurity=true";//连接字符串,XX的

publicstaticSqlConnectioncon=newSqlConnection(ConnectionString);

stringsql="SelectAllUserNameFromOperator";//过程名字

SqlCommandcmd=newSqlCommand();//执行对象

cmd.CommandType=CommandType.StoredProcedure;//设置解释方法为存储过程             

cmd.CommandText=sql;//设置执行语句

cmd.Connection=Connection.con;//设置cmd对象依赖的连接对象

Connection.con.Open();//打开数据库

SqlDataReaderreader=cmd.ExecuteReader();//结果集放到reader对象中

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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