数据库实训报告书.docx

上传人:b****6 文档编号:8250300 上传时间:2023-01-30 格式:DOCX 页数:19 大小:200.54KB
下载 相关 举报
数据库实训报告书.docx_第1页
第1页 / 共19页
数据库实训报告书.docx_第2页
第2页 / 共19页
数据库实训报告书.docx_第3页
第3页 / 共19页
数据库实训报告书.docx_第4页
第4页 / 共19页
数据库实训报告书.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库实训报告书.docx

《数据库实训报告书.docx》由会员分享,可在线阅读,更多相关《数据库实训报告书.docx(19页珍藏版)》请在冰豆网上搜索。

数据库实训报告书.docx

数据库实训报告书

课程设计(论文)任务书

一、课程设计(论文)题目

图书馆管理系统

二、课程设计(论文)使用的原始资料(数据)及设计技术要求

1)SQLSERVER2005数据库系统

2)实现权限管理

3)可以在C#、ASP.NET、JAVA、VB.NET等之间任意选择

4)1到2人选一题。

三、课程设计(论文)工作内容及完成时间

12.19~12.20完成需求分析;

12.21~12.21完成数据库设计,创建数据库及表;

12.22~12.26完成编码;

12.27~12.28完成测试;

12.29~12.30完成实训报告。

四、主要参考资料

《计算机网络》清华大学出版社吴功宜

《WindowsSQLServer2005》清华大学出版社

《数据库系统教程》高等教育出版社施伯乐丁宝康汪卫编著

《ASP.NET3.5从入门到精通》清华大学出版社赵晓东张正礼许小荣编著

信息工程学院系09计本专业01班

学生:

日期:

自2011年12月19日至2011年12月30日

指导教师:

助理指导教师(并指出所负责的部分):

 

教研室:

计算机工程教研室教研室主任:

 

目录

 

一、开发背景........................................................2

二、需求分析........................................................2

(1)系统目标...................................................2

(2)需求定义...................................................3

(3)数据流程...................................................4

三、功能描述........................................................4

四、概念模型设计....................................................4

五、逻辑模型设计和优化..............................................6

(1)图书信息表..................................................6

(2)读者信息表.................................................6

(3)管理员信息表...............................................7

(4)借阅表.....................................................7

(5)管理员书籍.................................................7

(6)管理员学生................................................7

六、物理设计和实施..................................................8

(1)建立索引...................................................8

(2)主要代码...................................................9

七、小结............................................................13

八、参考文献.......................................................13

 

1、开发背景

图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。

以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。

数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。

基于这此问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。

2.需求分析

2.1系统目标

图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强.数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

系统开发的总体任务是实现各种信息的系统化,规范化和自动化。

2.2需求定义

图书馆管理系统开发。

系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。

本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。

本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。

图书管理可以浏览图书的信息,可以对图书信息进行维护。

借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。

本系统主要解决的问题是利用关键字对数据库进行查询。

其系统的功能模块图如下:

图2-1系统功能模块图

针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:

读者信息

属性:

读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书

主键:

读者学号

书籍信息

属性:

ISBN,书名,作者,出版社,出版日期,简介

主键:

ISBN

管理员信息

属性:

工作号,姓名,性别,电话,家庭住址

主键:

工作号

2.3数据流程

2.3.1读者

作为学生对图书管理系统的要求有:

1.能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。

2.能够方便地借阅图书、续借图书、归还图书。

3.能够查询自己的基本资料、借阅图书情况。

4.能够熟悉图书管理系统的使用。

2.3.2图书管理员

作为图书管理员,他们对图书管理系统的要求有:

1.能方便的对图书进行录入登记,注销陈旧的书籍。

2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。

3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。

图书管理员工作的流程图为:

2-2图书管理员工作流程图

3.功能描述

系统功能分析是在系统开发的总体任务的基础上完成。

本系统需要完成的功能主要有5部分:

(1)图书基本情况的录入,修改,删除等基本操作。

.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。

.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。

3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。

(2)办理借书卡模块。

.新生办理借书证。

.丢失办理借书证。

(3)实现借书功能。

.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。

.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。

(4)实现还书功能。

.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。

.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。

(5)能方便的对图书进行查询。

对超期的情况能自动给出提示信息

4.概念模型设计

各部分E-R图如下:

(1)读者信息类别实体E-R图

 

4-1读者类别实体E-R图

 

(2)书籍信息类别实体E-R图

 

4-2书籍类别实体E-R图

(3)图书借阅实体E-R图:

4-3图书借阅实体E-R

4-5实体之间关系的E-R图

借阅关系(读者、管理员、书籍三元关系)

图4-6CDM图

5.逻辑模型设计和优化

从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:

借阅关系

属性:

工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。

主键:

工作号,读者学号,ISBN

管理员_书籍关系

属性:

工作号,ISBN,添加时间,是否在馆

主键:

工作号,ISBN

管理员_学生关系

属性:

工作号,读者学号,确认借还

主键:

工作号,读者学号

通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图

PDM图

5.1图书信息表

列名

数据类型

可否为空

ISBN

varchar

书名

varchar

作者

varchar

出版社

varchar

出版日期

datetime

简介

varchar

5.2读者信息表

列名

数据类型

可否为空

读者学号

varchar

读者姓名

varchar

读者性别

varchar

联系电话

varchar

所在院系

varchar

5.3管理员信息表

列名

数据类型

可否为空

工作号

varchar

姓名

varchar

性别

varchar

电话

varchar

家庭住址

varchar

5.4借阅表

列名

数据类型

可否为空

工作号

char

ISBN

char

读者学号

char

借阅日期

datetime

还书日期

datetime

是否续借

char

 5.5管理员_书籍

列名

数据类型

可否为空

工作号

char

ISBN

char

添加时间

datatime

是否在馆

char

5.6管理员_学生

列名

数据类型

可否为空

工作号

char

读者学号

char

借还确认

char

6.物理设计和实施

从理论‘关系模型’到实现\实施‘数据库建立’,物理文件的安排和建立索引

6.1建立索引

为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:

(1)读者信息(读者学号)

(2)书籍信息(ISBN)

(3)管理员信息(工作号)

(4)借阅(工作号,读者学号,ISBN)

(5)管理员_书籍(工作号,ISBN)

(6)管理员_学生(工作号,读者学号)

6.2

主要代码如下:

1、借书模块

voidCBookBorrowDlg:

:

OnOK()

{

UpdateData();

if(!

IsValidCard(m_strCardNum))

{

CDialog:

:

OnOK();

return;

}

if(AnyBookExpired(m_strCardNum))

{

CDialog:

:

OnOK();

return;

}

if(!

AllowedToBorrow(m_strBookNum))

{

CDialog:

:

OnOK();

return;

}

if(BorrowBook(m_strCardNum,m_strBookNum))

{

AfxMessageBox("借书成功");

}

else

{

AfxMessageBox("借书失败");

}

CDialog:

:

OnOK();

}

boolCBookBorrowDlg:

:

BorrowBook(constCString&cardNum,constCString&bookNum)

{

CTimeSpanspan(30,0,0,0);

CTimenextMonth=CTime:

:

GetCurrentTime()+span;

if(!

m_storeBookSet.IsOpen())

{

m_storeBookSet.Open();

}

m_storeBookSet.m_strFilter.Format("bno=%s",bookNum);

m_storeBookSet.Requery();

m_storeBookSet.Edit();

m_storeBookSet.m_status="out";

m_storeBookSet.m_due_date=nextMonth;

m_storeBookSet.Update();

if(!

m_bookSet.IsOpen())

{

m_bookSet.Open();

}

m_bookSet.m_strFilter.Format("ISBN='%s'",m_storeBookSet.m_ISBN);

m_bookSet.Requery();

m_bookSet.Edit();

m_bookSet.m_stocked_num=m_bookSet.m_stocked_num-1;

m_bookSet.Update();

if(!

m_borrowSet.IsOpen())

{

m_borrowSet.Open();

}

m_borrowSet.AddNew();

m_borrowSet.m_bno=bookNum;

m_borrowSet.m_cno=cardNum;

m_borrowSet.m_borrow_date=CTime:

:

GetCurrentTime();

m_borrowSet.Update();

m_borrowSet.Requery();

returntrue;

}

2、还书模块

voidCBookReturnDlg:

:

OnOK()

{

UpdateData(true);

if(!

m_borrowSet.IsOpen())

{

m_borrowSet.Open();

}

m_borrowSet.m_strFilter.Format("bno='%s'andReturn_dateisnull",m_strBookNum);

m_borrowSet.Requery();

if(m_borrowSet.IsEOF())

{

AfxMessageBox("该书不存在或已经还了");

CDialog:

:

OnOK();

return;

}

CTimetoday=CTime:

:

GetCurrentTime();

CTimeSpandiffDays=today-m_borrowSet.m_borrow_date;

if(diffDays>30)

{

AfxMessageBox("该书过期了");

CDialog:

:

OnOK();

return;

}

m_borrowSet.Edit();

m_borrowSet.m_return_date=today;

m_borrowSet.Update();

if(!

m_storeBookSet.IsOpen())

{

m_storeBookSet.Open();

}

m_storeBookSet.m_strFilter.Format("bno='%s'",m_strBookNum);

m_storeBookSet.Requery();

CStringisbn=m_storeBookSet.m_ISBN;

m_storeBookSet.Edit();

m_storeBookSet.m_status="in";

m_storeBookSet.Update();

if(!

m_bookSet.IsOpen())

{

m_bookSet.Open();

}

m_bookSet.m_strFilter.Format("ISBN='%s'",isbn);

m_bookSet.Requery();

m_bookSet.Edit();

m_bookSet.m_stocked_num=m_bookSet.m_stocked_num+1;

m_bookSet.Update();

AfxMessageBox("还书成功");

CDialog:

:

OnOK();

}

3、查询模块

voidCQueryBasicDlg:

:

OnQuery()

{

UpdateData();

m_listResult.ResetContent();

if(!

m_bookSet.IsOpen())

{

m_bookSet.Open();

}

m_bookSet.m_strFilter="tilelike%"+m_strKeyWord+"%";

m_bookSet.Requery();

if(m_bookSet.IsEOF())

{

AfxMessageBox("此书不存在");

return;

}

while(!

m_bookSet.IsEOF())

{

m_listResult.AddString(m_bookSet.m_title);

m_bookSet.MoveNext();

}

}

voidCQueryBasicDlg:

:

OnSelchangeListResult()

{

CStringaColCaption[5];

aColCaption[0]="书号:

";

aColCaption[1]="书名:

";

aColCaption[2]="作者:

";

aColCaption[3]="出版社:

";

aColCaption[4]="当前库存量:

";

m_listDetail.ResetContent();

intcurSel;

CStringstrDetail;

CStringstrLine;

curSel=m_listResult.GetCurSel();

m_bookSet.SetAbsolutePosition(curSel+1);

for(inti=0;i

{

m_bookSet.GetFieldValue(i,strDetail);

strLine.Empty();

strLine+=aColCaption[i];

strLine+=strDetail;

m_listDetail.AddString(strLine);

}

}

4、申请借书卡模块

voidCCardNewDlg:

:

OnOK()

{

UpdateData();

if(!

m_cardSet.IsOpen())

{

m_cardSet.Open();

}

if(!

m_readerSet.IsOpen())

{

m_readerSet.Open();

}

m_cardSet.AddNew();

m_cardSet.m_cno=m_cardNum;

m_cardSet.m_PID=m_pid;

m_cardSet.Update();

m_readerSet.AddNew();

m_readerSet.m_sex=m_gender;

m_readerSet.m_name=m_name;

m_readerSet.m_PID=m_pid;

m_readerSet.Update();

AfxMessageBox("申请成功!

");

CDialog:

:

OnOK();

}

7、

小结

在整个课程设计的实践中,我学到很多有用的知识,也积累了不少宝贵的开发经验。

比如用ADO操作数据库,SQL语句的应用等。

本设计通过自己的努力,基本满足了图书管理的基本需要,实现了用户使用的方便以及管理员管理的方便,在界面上力求做到简单实用,在操作方面尽量做到满足用户使用的习惯,但由于自己的水平有限和时间的不足,在很多方面还不完善,有些功能没有在全局上把握好,比如一些功能函数可以在一个文件中定义,具体页面需要用到再直接引用,SQL语句的执行效果也存在效率不高的问题,关于图书管理的所有操作集中在一个页面实现,出现了一些混淆,程序更改,测试时很不好等。

在今后的学习当中将继续完善此系统,使其功能更加强大,满足用户的更多需求。

 

8、参考文献:

【1】王珊萨师煊著《数据库系统概论(第四版)》高等教育出版社

【2】陈根才孙建伶林怀忠周波著《数据库课程设计》浙江大学出版社

【3】钱能著《C++程序设计教程(第二版)》清华大学出版社

【4】任哲著《MFCWindows应用程序设计》清华大学出版社

【5】刘意成著《SQL实战演练[M]》西安电子科技大学出版社

【6】李存斌著《数据库应用技术》中国水利水电出版

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

当前位置:首页 > 小学教育 > 语文

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

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