数据库课程设计图书借阅管理系统设计解析.docx
《数据库课程设计图书借阅管理系统设计解析.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书借阅管理系统设计解析.docx(17页珍藏版)》请在冰豆网上搜索。
数据库课程设计图书借阅管理系统设计解析
摘要1
一、问题描述与要求2
二、系统分析2
三、系统数据库设计3
1.数据库概念结构设计3
2.数据库逻辑结构设计5
四、系统设计与实现6
1.系统体系结构及实现方法6
2.系统工作环境及支撑软件6
五、系统集成测试6
1.登录界面6
2.数据库后台关系图7
六、附录8
1.数据库创建代码8
2.网站后台部分代码10
总结与致谢16
参考文献17
摘要
明确了图书馆工作由图书管理、读者管理、借书服务和还书服务4部分组成。
根据学生图书借阅管理系统的需求分析,我们可以先得到3个实体:
书、学生、管理员。
将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
管理员,书,读者。
图书馆管理系统采用B/S(浏览器/服务器)结构。
服务器主要任务是承担网络监听和实现客户端链接、数据库管理、数据存取和数据传输功能。
浏览器面向用户,承担着图书馆管理系统的管理和服务工作。
关键词:
书;读者;管理员;数据库
一、问题描述和要求
该系统是一个专门为学校图书管理而设计的系统。
学生从图书馆借书,对图书馆来说,学生好像书籍一样,都是先被注册到系统中的。
图书馆需要处理新买的图书,包括添加和删除等,图书管理员是图书馆的雇员,所有图书登记、读者注册的工作由图书管理员完成,他们负责和学生交互,该系统支持他们的工作。
图书馆要求系统能方便的建立、更新和删除存在该系统中有关书名、读者等信息,也能方便的登记图书的借出与归还等信息。
二、系统分析
通过对现行图书馆业务的调查,明确了图书馆工作由图书管理、读者管理、借书服务和还书服务4部分组成。
对现有系统功能的描述如下:
1、图书管理
1)对馆内的所有图书按类别统一编码;对各类图书建立图书登记卡,登记图书的主要信息。
2)新购的图书要编码和建卡,对遗失的图书要注销其图书登记卡。
2、读者管理
1)建立读者信息表,对读者统一编号。
2)对新加盟的读者,将其信息加入到读者信息表中;对某些特定的读者,将其信息从读者信息表中删除。
3)当读者情况变化时,修改读者信息表中相应的记录。
3、借书服务
1)未借出的图书要按类别上架,供读者查看。
2)建立借书登记卡,卡上记录着书号、读者姓名和编号、借书日期;将借书登记卡按读者单位、读者编号集中保管。
3)读者提出借书请求时,先查看该读者的借书卡,统计读者已借书的数量。
如果该读者无借书超期或超量情况,则办理借书手续。
4)办理借书手续的方法是:
填写借书登记卡,管理员核实后读者可将图书带走。
4、还书服务
1)读者提出还书要求时,先对照相应的借书卡,确认书号和书名无误后可办理还书手续。
2)办理还书手续的方法是:
在借书卡上填写还书时间,管理员签名;将已还的借书卡集中保管;收回图书。
3)将收回的图书上架,供读者查看和借阅。
三、系统数据库设计
1.数据库概念结构设计
根据学生图书借阅管理系统的需求分析,我们可以先得到3个实体:
书、学生、管理员。
再分析他们之间的关系,管理员与书之间存在着一对多的联系,将该联系命名为登记,一个管理员可以登记多本图书,联系如图所示:
管理员与学生(也就是读者)之间也存在着一对多的联系,该联系命名为注册,一个管理员可以注册多名学生,联系如图所示:
管理员、书、学生(读者)之间存在着多对多的借阅联系,一个学生可以借阅多本图书,一个管理员可以办理多次借阅与归还,一本书可以被多名学生借阅,
因此3个实体与他们之间的联系如图所示:
根据系统需求分析,对每个实体我们分析相应的属性,图书管理员的属性有:
职工号、姓名、性别,读者的属性只有:
借书证号、姓名、性别、系别,书的属性只有:
书号、书名、作者、出版社、分类号。
将上述实体、属性、联系等集成,得到学生图书借阅管理系统完整的E-R模型图如下图所示:
2.数据库逻辑结构设计
将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
管理员(职工号,姓名,性别,权限级别),
书(书号,书名,作者,出版社,分类号),
读者(借书证号,姓名,性别,系别),
根据1:
n联系的转换规则,我们把联系“登记”的属性即“读者权限”和管理员关系的主键即职工号加入到读者关系中,得到读者改进后的关系:
读者(借书证号,姓名,性别,系别,职工号),
这里职工号是外键。
根据1:
n联系的转换规则,我们把联系“注册”的属性即“入库时间”和管理员关系的主键即职工号加入到读者关系中,得到书改进后的关系:
书(书号,书名,作者,出版社,分类号,入库时间,职工号),
这里职工号也是外键。
将一个三元关系管理员、书、读者之间的借阅关系转换为一个关系:
借阅(职工号,借书证号,书号,借出日期,归还日期)。
所以最终得到的关系模型为:
管理员(职工号,姓名,性别,权限级别),
书(书号,书名,作者,出版社,分类号,入库时间,职工号),
读者(借书证号,姓名,性别,系别,职工号),
借阅(职工号,借书证号,书号,借出日期,归还日期)。
用英文命名的关系模式为:
Administrator(Ano,Aname,Asex,Aprivilege),
BOOK(Bno,Bname,Bauthor,Bpublisher,BTPno,Indate,Ano),
READER(Rno,Rname,Rsex,Rdept,Ano),
Borrow(Ano,Rno,Bno,Bdate,Rdata)。
四、系统设计与实现
1.系统体系结构及实现方法
图书馆管理系统采用B/S(浏览器/服务器)结构。
服务器主要任务是承担网络监听和实现客户端链接、数据库管理、数据存取和数据传输功能。
浏览器面向用户,承担着图书馆管理系统的管理和服务工作。
2.系统工作环境及支撑软件
(1)服务器端的工作环境要求及支撑软件
操作系统:
WindowsXP或与之兼容的系统
数据库管理系统:
SQLServer2000企业版
数据库应用系统开发软件:
MicrosoftVisualStudio2008
(2)客户机的工作环境要求及支撑软件
操作系统:
Windows98或更高与之兼容的系统
数据库应用系统开发软件:
MicrosoftVisualStudio2008
五、系统集成测试
1.登录界面
2.数据库后台关系图
六、附录
1.数据库创建代码
CREATEDATABASEBOOKmanage
useBOOKmanage
go
createtableAdministrator
(
Anochar(10)primarykey,
Anamenvarchar(30)notnull,
Asexchar
(2),
Aprivilegechar(20)
)
go
createtableBOOK
(
Bnochar(10)primarykey,
Bnamenvarchar(30)notnull,
Bauthornvarchar(30),
Bpublishernvarchar(50),
BTPnochar(10),
Indatadatetime,
Anochar(10)
)
go
createtableREADER
(
Rnochar(10)primarykey,
Rnamenvarchar(30)notnull,
Rsexchar
(2),
Rdeptchar(20),
Anochar(10)
)
go
createtableBorrow
(
Anochar(10),
Rnochar(10),
Bnochar(10),
Bdatedatetime,
Rtimedatetime,
PRIMARYKEY(Ano,Rno,Bno),
foreignkey(Ano)referencesAdministrator(Ano),
foreignkey(Rno)referencesREADER(Rno),
foreignkey(Bno)referencesBOOK(Bno)
)
Go
2.网站后台部分代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Text;
usingSystem.Collections;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Web.UI.HtmlControls;
usingSystem.Configuration;
publicpartialclassAdministrator:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
//gridviewdiv.Style.Add("display","none");
gridviewdiv.Disabled=true;
gridviewdiv.EnableViewState=false;
}
///
///查询读者个人信息
///
///
///
protectedvoidbtqueryREADERinfo_Click(objectsender,EventArgse)
{
if(tbRnumber.Text=="")
{
Response.Write("alert('请输入要查询的借书证号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringRno=tbRnumber.Text.ToString();
stringcmdstr="selectRnoas借书证号,Rnameas姓名,Rsexas性别,Rdeptas系别fromREADERwhere
Rno=@number";
SqlParametersqlpara=newSqlParameter("@Rnumber",SqlDbType.Char);
sqlpara.Value=tbRno.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///查询图书信息
///
///
///
protectedvoidbtquerybook_Click(objectsender,EventArgse)
{
if(tbBnumber.Text=="")
{
Response.Write("alert('请输入要查询的书号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringBno=tbBnumber.Text.ToString();
stringcmdstr="selectBnoas书号,Bnameas书名,Bauthoras作者,Bpublisheras出版社BTPnoas分类
号,Indateas入库时间,Anoas职工号fromBOOKwhereBno=@Bnumber";
SqlParametersqlpara=newSqlParameter("@Bnumber",SqlDbType.Char);
sqlpara.Value=tbBnumber.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///查询读者借阅情况
///
///
///
protectedvoidbtqueryBorrow_Click(objectsender,EventArgse)
{
if(tbRnoBorrow.Text=="")
{
Response.Write("alert('请输入要查询的读者借书证号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringBnumber=tbRnoBorrow.Text.ToString();
stringcmdstr="selectRnoas学号,BOOK.Bnoas书号,Bnameas书名,Btimeas借出时间,Rtimeas归还时间
fromBorrow,BOOKwhereRno=@RnumberandBowwer.Bno=BOOK.Bno";
SqlParametersqlpara=newSqlParameter("@Rnumber",SqlDbType.Char);
sqlpara.Value=tbRnoBorrow.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///修改读者个人信息或添加新读者
///
///
///
protectedvoidbtchangeREADERinfo_Click(objectsender,EventArgse)
{
Buttonbt=(Button)sender;
if(bt.ID=="bttuinfoedit")
{
if(tbRno.Text.ToString()!
="")
{
stringRnumber=tbRno.Text.ToString().TrimEnd();
stringurl="READERinfoedit.aspx?
Rno="+snumber;
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的读者借书证号');");
return;
}
}
else
{
stringurl="READERinfoedit.aspx?
Rno=addnew";
Response.Redirect(url);
}
}
protectedvoidbtBOOKedit_Click(objectsender,EventArgse)
{
Buttonbt=senderasButton;
if(bt.Text=="修改图书信息")
{
if(tbBnumber.Text!
="")
{
stringBnumber=tbBnumber.Text;
stringurl="BOOK.aspx?
cno="+Bnumber+"&btxiugai=xg";
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的书号');");
return;
}
}
else
{
stringurl="BOOK.aspx?
btxiugai=btadd";
Response.Redirect(url);
}
}
protectedvoidbtBorrowedit_Click(objectsender,EventArgse)
{
if(tbRnoBorrow.Text!
="")
{
stringRnumber=tbRnoBorrow.Text;
stringurl="Browwer.aspx?
Rno="+Rnumber+"&btxiugai=xg";
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的读者借书证号');");
return;
}
}
protectedvoidbtqueryallREADER_Click(objectsender,EventArgse)
{
stringconn=MySql.ConnectionStringLocalTransaction;
stringRno=tbRno.Text.ToString();
stringcmdstr="selectRnoas学号,Rnameas姓名,Rsexas性别,Rdeptas系别,Anoas职工号fromREADER";
SqlParameter[]cmdparas={};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
protectedvoidbtqueryallbook_Click(objectsender,EventArgse)
{
stringconn=MySql.ConnectionStringLocalTransaction;
stringcnumber=tbBnunber.Text.ToString();
stringcmdstr="selectBnoas书号,Bnameas书名,Bpublisheras出版社,Bauthoras作者,BTPnoas分类号,Indateas入库时间,Anoas职工号fromBOOK";
SqlParameter[]cmdparas={};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
}
总结与致谢
通过本次课程设计,我对数据库的应用有了更深刻的体会。
网络系统都是离不开数据库的支持的。
数据库设计的是否合理,直接影响到系统的性能。
数据库理论对于实际应用有很大的指导意义。
此次图书管理系统的设计让我对数据库的了解更深入,可以把它同实际相结合,同时,又让我学会了一个新的应用软件。
在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。
而且,经历这次的课程设计,我们也学会了自学和分工协作。
我觉得每一次的设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。
感谢杨老师和张老师的指导,让我此次课程设计有了突出的认识。
本次的图书管理系统,在功能上仅实现了图书,用户,图书类别和订单信息的管理,只是一些非常基础的功能,没有设计添加图书的功能。
此外,该系统原先计划设计的一些功能也没有实现。
系统完全实现的功能实现图书信息的删除、更改和查看等。
尽管还是有许多的不完善之处,但是总的说来收获颇多。