图书馆管理系统ER图_第1页
图书馆管理系统ER图_第2页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长沙理工大学程序设计实践课程设计报告邹松林院计通学院专级计算机03-05学业计算机科学与技术号27学生姓名邹松林指导教师卢曼莎完成日期2006年9月20号课程成绩图书馆管理系统数据库分析与设计学生姓名:邹松林指导老师:卢曼莎摘要:图书信息管理系统主要由读者信息管理模块,图书信息管理模块,借阅信息管理模块,系统信息管理模块等组成。其中又各自分成读者注册,证件修改,用户注销,图书查询,操作记录等子模块。在设计本系统过程中,我们第一步由自顶而下的需求分析概括设计出系统总模块的数据流图,再设计个子模块的相应数据流图,列出数据流信息及数据字典;第二步概念设计在需求分析基础上用E-R图表示出数据及相互间联

2、系,采用先作子图,再合并成初步E-R图,进行修改和重构后得到基本E-R图;第三步逻辑设计,在SQLServer的设计环境下把图书馆管理系统E-R图转化为成逻辑数据模型表示的逻辑模式,同时实现数据模型的优化和数据模式的规范化;第四步进行物理设计设计数据的内模式,确定数据的存储结构,存取路径,存储空间分配等等,具体形式为表,视图,索引的建立。关键字:数据库,SQL语言,MSSQLServer,图书管理1需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构以及数据处理的流程,为后面的具体设计打下基础。在仔细分析调查有关

3、图书馆管理信息需求的基础上,我们主要考虑以下几个方面的需求:1) 用户需求:图书用户要求计算机系统和SQLServer所工作的范围;2) 应用资源:数据库应用的平台包括物理平台和图书等;3) 应用质量和可靠性要求:包括操作人员素质和系统的纠错能力等项目名称:图书馆信息管理系统项目背景和内容概要对图书馆管理信息系统进行详细地分析后,我们将系统分为以下几个模块:借阅管理模块、借书证信息管理模块、图书信息管理模块、系统管理模块。其主要功能如下:借阅管理模块主要功能如下:1) .可以为读者办理,修改,注销借书证,输入读者借书证基本信息等,定制读者的借阅权限。2) .可以通过借书证查询图书信息、借出图书

4、信息,借阅图书。3) .通过借书证还书,管理员可以通过对借阅信息的管理对到期还未还的书,通过查询读者的借书证信息查询读者联系方式发出催还通知。借书证信息管理模块主要功能如下:1) .读者基本信息的输入,如:读者姓名、性别、单位等。2) .读者信息的修改、注销等功能。3) .添加新的读者及其信息等。图书信息管理模块主要功能如下:1) .定制书籍的各种信息管理,如:书名、作者、出版信息等。2) .书籍信息的修改,新图书的入库管理和图书的注销等。系统管理模块主要功能如下:1) .用户登录。2) .修改密码。3) .添加用户。系统备份和数据传输模块主要功能如下:1).备份数据库数据1.32) .恢复数

5、据库数据3) .网络数据传输数据流图数据流总体图示办理借书证图1-1数据流总体图借书证修改图1-2输借书证流图借书证注销图1-3借书证修改流图借书系统图1-4借书证注销流图图1-6检索系统流图还书系统图书档案管理系统图1-8档案管理流图数据字典参数名类型长度取值范围别名意义图书书名字符型11SM图书编号字符型11SH作者字符型10YZ出版社字符型20CBS单价数值型8DJ借出日期日期型yy-mm-ddJS还书日期日期型yy-mm-ddHS借书证号字符型10JSZ姓名字符型20NAME是否归还字符型20YN性别字符型2SEX单位字符型20DW发证日期日期型yy-mm-ddFZ已借书册数字符型2Y

6、NC是否允许借书字符型2YNS是或否类别字符型20LB进册数数值型10JC库存量数值型10CZ操作员编号数值型10CB操作员姓名字符型10CNAME操作员密码字符型15MM表1数据字典2概念结构设计这一阶段我们将客户的应用需求抽象为信息世界的结构,即对系统的人、物、事和概念进行人为处理,抽取人们所关心的共同特性,同时把这些特性用概念精确的描述。我们首先根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部E-R图,然后合并成初步E-R图,再进行修改与重构。局部E-R图图书信息管理系统主要分为以下几个局部E-R图:1).借书证处理系统ER图:MM图2-1借书证处理系统E

7、R图图中各实体属性如下:读者档案:学号,读者姓名,性别,出生日期,借书证号,职业,单位,通讯地址,邮政编码,联系电话借书证:借书证号,姓名,性别,办证日期,借阅范围,最大借书量,照片,身份证号管理员:管理员编号,管理员姓名,登陆密码2).借书系统ER图:图2-2借书系统ER图图中各实体属性如下:读者:身份证号,读者姓名,借书证号借书证:借书证号,姓名,性别,办证日期(借阅范围,最大借书量,照片,身份证号)库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期3).索书系统ER图:图2-3索书系统ER图图中各实体属性如下:读者:读者姓名,借书证号图书档案:图书编号,书号,书名,

8、作者,出版单位,出版日期,单价,藏书册书,类别,入库日期4).还书系统ER图:N图2-4还书系统ER图图中各实体属性如下:读者:学号,读者姓名,借书证号借书证:借书证号,姓名,性别,办证日期库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期管理员:操作员编号,管理员姓名,登陆密码5).图书档案管理系统ER图:图2-5档案管理系统ER图图中各实体属性如下:管理员:操作员编号,管理员姓名,登陆密码库存信息:书号,图书编号图书档案:图书编号,书号,书名,作者,出版单位,出版日期,单价,类别,入库日期入库清单:入库日期,图书编号,管理员编号,书名6).整体E-R图索书NNP图书管

9、理PMP1证件处理催还NMNM1借书PM库存表1NP1N还书查询已借NM借出书库图书档案管理员读者借书证图2-6整体ER图图中各实体属性如下:读者档案:学号,读者姓名,性别,借书证号,单位借书证:借书证号,姓名,性别,办证日期管理员:操作员编号,管理员姓名,登陆密码库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期图书档案:书号,书名,作者,出版单位,出版日期,单价,类别,藏书册书,图书编号入库日期实体描述说明:1、由于读者的信息可以在借书证办理档案中查到所以合并为借书证办理档案2.将借出书库和入库清单分别合并到了借书登记表和图书信息表中3名称别名类型长度其他图书书名SM

10、字符型20普通索引书号SH数值型20主索引译者YZ字符型10出版社CBS字符型20单价DJ数值型8出版时间CBSJ日期型8表3图书库数据项定义借书证信息表表2实体描述关系描述(已包含在E-R图中)实体-关系调整(实体描述表中已消除冗余实体和关系)数据项定义1)图书库的数据项定义:实体说明实体属性列表实体名称实体说明实体属性列表T.图书馆未被借出的图书信息书号,图书编号、十-4y.读者密码期,最大借书量'借书登记表数据库表还书登记表图书馆未被借出的图书信息书号,图书编号实体名称图书档案数据库表实体说明馆臧图书信息图书信息表实体属性列表书号,书名,作者,出版单位,出版日期,版次,单价,类别

11、-图书编号,入库日期2)借、还书库的数据项定义:名称别名类型长度其他姓名XSXM字符型10普通索引借书证号JSZH数值型8主索引图书书名SM字符型20图书编号SH字符型20借书日期JSRQ日期型8还书日期HSRQ日期型8表4借、还书库数据项定义3)借书证库的数据项定义:名称别名类型长度其他姓名JSXM字符型10普通索引借书证号JSGH字符型6主索引性别XB字符型4单位DW字符型8表5借书证库数据项定义4)操作员库的数据项定义:名称别名类型长度其他操作员编号CZYYHH字符型10操作员用户名CZYYHM字符型10口令KL字符型10表6操作员库数据项定义数据表(库)描述图书数据库=图书书名+图书编

12、号+着者+出版社+单价+书号+出版时间借书库=姓名+借书证号+教师姓名+图书名称+借书日期+还书日期教师数据库=姓名+借书证号+单位操作员库=操作员用户名+口令系统功能模块图软件功能结构图:图2-7软件功能结构为了能够用计算机和SQLServer实现用户需求,可将概念结构转化为相应的数据模型,即是设计逻辑结构。即由E-R图建立了适当的表,并按不同的范式的定义,对表进行规范化。对规范化的表,更据用户需求建立数据库结构。确定数据依赖系统流程图:图书管理系统读者查询系统图书(期刊)库查询图2-8系统流程图3逻辑结构设计借出信息(图书编号)(借书日期,借书证号,归还日期)BCNF借书证借书证号(借书证

13、号,姓名,性别,单位,发证日期,已借书册书,是否容许借书)2NF以后扩展:身份证号一-(姓名,性别,照片)图书档案图书编号(书号,书名,作者,出版单位,出版日期,版次,单价,内容提要,分类2NF号,索书号,所在书库,入库日期)入库清单图书编号(管理员编号,书名,入库日期)BCNF还书信息借书证号(姓名,图书编号,书名,借出日期,还书日期)BCNF数据依赖的优化与调整3.2.1关系模式的优化(1)借书证信息:借书证(借书证号,姓名,性别,单位,发证日期,已借书册书,是否容许借书)满足BCNF范式管理员信息:管理员信息(管理员编号,管理员姓名,登陆密码)满足BCNF范式库存信息:库存信息(图书编号

14、,书号)满足BCNF范式借书信息:借书信息(图书编号,借书证号,姓名,书名,借书日期,是否归还)满足BCNF范式还书信息:还书信息(姓名,图书编号,书名,借出日期,还书日期)满足BCNF范式(6)图书信息:图书档案(图书编号,书名,作者,图书类别,单价,出版社,进册书,库存量)均满足BCNF范式(7)入库清单:入库清单(图书编号,管理员编号,书名,入库日期)满足BCNF范式3.2.2关系模式的调整虽然在关系模式的优化中将各种关系满足了BCNF范式的要求,但是对某些数据库的操作却并没有简化,相反导致了数据库查询等数据库操作的效率低下。于是对借书证信息',和图书信息'作出了以下调整

15、。(1)借书证信息:借书证(借书证号,姓名,性别,办证日期,单位,已借书册数,借书许可,)(3NF)(2)图书信息:图书档案(图书编号,书名,作者,出版单位,单价,图书类别,进册数,入库量)(2NF)4 代码设计图书管理系统部分源代码图书外借情况查询代码tempstr="%"+tempstr+"%"借书证号"select*from借书登记表where借书登记表.借书证号liketempstrintocursortempcursorendif姓名"select*from借书登记表where借书登记表.姓名liketempstrintoc

16、ursortempcursorendif图书编号"select*from借书登记表where借书登记表.图书编号liketempstrintocursortempcursorendif书名"select*from借书登记表where借书登记表.书名liketempstrintocursortempcursorendif是否归还"select*from借书登记表where借书登记表.是否归还liketempstrintocursortempcursorendif图书外借和归还情况查询代码tempstr="%"+tempstr+"%&qu

17、ot;借书证号"select*from还书登记表where还书登记表.借书证号liketempstrintocursortempcursorendif姓名"select*from还书登记表where还书登记表.姓名liketempstrintocursortempcursorendif图书编号"select*from还书登记表where还书登记表.图书编号liketempstrintocursortempcursorendif书名"select*from还书登记表where还书登记表.书名liketempstrintocursortempcursoren

18、dif存储过程代码procedurerideletelocalllretvalllretval=.t.if(isrlocked()and!deleted()or!rlock()llretval=.f.elseif!deleted()deleteifcursorgetprop('buffering')>1=tableupdate()endifllretval=pnerror=0endifnotalreadydeletedendifunlockrecord(recno()returnllretvalprocedureriupdatelparameterstcfieldname

19、,tcnewvalue,tccascadeparentlocalllretvalllretval=.t.ifisrlocked()or!rlock()llretval=.f.elseifeval(tcfieldname)<>tcnewvalueprivatepccascadeparentpccascadeparent=upper(iif(type("tccascadeparent")<>"c","",tccascadeparent)replace(tcfieldname)withtcnewvalueifcurs

20、orgetprop('buffering')>1=tableupdate()endifllretval=pnerror=0endifvaluesdon'talreadymatchendifit'slockedalready,oriwasabletolockitunlockrecord(recno()returnllretvalprocedurerierrorparameterstnerrno,tcmessage,tccode,tcprogramlocallnerrorrows,lnxxlnerrorrows=alen(gaerrors,1)iftype(&

21、#39;gaerrorslnerrorrows,1')<>"l"dimensiongaerrorslnerrorrows+1,alen(gaerrors,2)lnerrorrows=lnerrorrows+1endifgaerrorslnerrorrows,1=tnerrnogaerrorslnerrorrows,2=tcmessagegaerrorslnerrorrows,3=tccodegaerrorslnerrorrows,4=""lnxx=1dowhile!empty(program(lnxx)gaerrorslnerrorr

22、ows,4=gaerrorslnerrorrows,4+","+;program(lnxx)lnxx=lnxx+1enddogaerrorslnerrorrows,5=pcparentdbfgaerrorslnerrorrows,6=pnparentrecgaerrorslnerrorrows,7=pcparentidgaerrorslnerrorrows,8=pcparentexprgaerrorslnerrorrows,9=pcchilddbfgaerrorslnerrorrows,10=pnchildrecgaerrorslnerrorrows,11=pcchildi

23、dgaerrorslnerrorrows,12=pcchildexprreturntnerrnoprocedureriopenparameterstctable,tcorderlocallccurwkarea,lcnewwkarea,lninusespotlninusespot=atc(tctable+"*",pcricursors)iflninusespot=0lccurwkarea=select()select0lcnewwkarea=select()ifnotempty(tcorder)use(tctable)againorder(tcorder);alias(&qu

24、ot;_ri"+ltrim(str(select()shareelseuse(tctable)againalias("_ri"+ltrim(str(select()shareendififpnerror=0pcricursors=pcricursors+upper(tctable)+"?"+str(select(),5)elselcnewwkarea=0endifsomethingbadhappenedwhileattemptingtoopenthefileelselcnewwkarea=val(substr(pcricursors,lninu

25、sespot+len(tctable)+1,5)pcricursors=strtran(pcricursors,upper(tctable)+"*"+str(lcnewwkarea,5),;upper(tctable)+"?"+str(lcnewwkarea,5)ifnotempty(tcorder)setorderto(tcorder)in(lcnewwkarea)endifsentanorderifpnerror<>0lcnewwkarea=0endifsomethingbadhappenedwhilesettingorderendifr

26、eturn(lcnewwkarea)procedureriendparameterstlsuccesslocallnxx,lnspot,lcworkareaiftlsuccessendtransactionelsesetdeletedoffrollbacksetdeletedonendififempty(pcriolderror)onerrorelseonerror&pcriolderror.endifforlnxx=1tooccurs("*",pcricursors)lnspot=atc("*",pcricursors,lnxx)+1usein

27、(val(substr(pcricursors,lnspot,5)endforifpcoldcompat="on"setcompatibleonendififpcolddele="off"setdeletedoffendififpcoldexact="on"setexactonendififpcoldtalk="on"settalkonendifdocasecaseempty(pcolddbc)setdatatocasepcolddbc<>dbc()setdatato(pcolddbc)endcaser

28、cedurerireuse*parameterstctablename,tcwkareapcricursors=strtran(pcricursors,upper(tctablename)+"?"+str(tcwkarea,5),;upper(tctablename)+"*"+str(tcwkarea,5)return.t.*"参照完整性删除触发器"借书证信息表procedure_ri_delete_借书证信息表localllretvalllretval=.t.privatepcparentdbf,pnparen

29、trec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivatepcparentexpr,pcchildexprstore""topcparentdbf,pcchilddbf,pcparentid,pcchildid,pcparentexpr,pcchildexprstore0topnparentrec,pnchildrecif_triggerlevel=1begintransactionprivatepcricursors,pcriwkareas,pcriolderror,pnerror,;pcolddele,pcoldexac

30、t,pcoldtalk,pcoldcompat,pcolddbcpcoldtalk=set("talk")settalkoffpcolddele=set("deleted")pcoldexact=set("exact")pcoldcompat=set("compatible")setcompatibleoffsetdeletedonsetexactoffpcricursors=""pcriwkareas=""pcriolderror=on("error")

31、pnerror=0onerrorpnerror=rierror(error(),message(),message(1),program()iftype('gaerrors(1)')<>"u"releasegaerrorsendifpublicgaerrors(1,12)pcolddbc=dbc()setdatato("tsglxt")endiffirsttriggerlocallcparentid&&parent'svaluetobesoughtinchildlocallcchildwkarea&am

32、p;&childworkareahandlereturnedbyriopenlocallcparentwkarealocallldelheaderarealcstartarea=select()llretval=.t.lcparentwkarea=select()select(lcparentwkarea)pcparentdbf=dbf()pnparentrec=recno()store借书证号tolcparentid,pcparentidpcparentexpr="借书证号"lcchildwkarea=riopen("还书登记表","

33、借书证号")iflcchildwkarea<=0if_triggerlevel=1doriendwith.f.endifattheendofthehighesttriggerlevelreturn.f.endifnotabletoopenthechildworkareapcchilddbf=dbf(lcchildwkarea)llretval=!seek(lcparentid,lcchildwkarea)select(lcchildwkarea)pnchildrec=recno()pcchildid=借书证号pcchildexpr="借书证号"if!llre

34、tvaldorierrorwith-1,"违反删除限制规则。","",""endif=rireuse("还书登记表",lcchildwkarea)ifnotllretvalif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretvalendifif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttr

35、iggerlevelselect(lcstartarea)returnllretval*"结束参照完整性删除触发器"借书证信息表procedureri_update_借书证信息表*"参照完整性更新触发器"借书证信息表localllretvalllretval=.t.privatepcparentdbf,pnparentrec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivatepcparentexpr,pcchildexprstore""topcparentdbf,pcchilddbf,p

36、cparentid,pcchildid,pcparentexpr,pcchildexprstore0topnparentrec,pnchildrecif_triggerlevel=1begintransactionprivatepcricursors,pcriwkareas,pcriolderror,pnerror,;pcolddele,pcoldexact,pcoldtalk,pcoldcompat,pcolddbcpcoldtalk=set("talk")settalkoffpcolddele=set("deleted")pcoldexact=set

37、("exact")pcoldcompat=set("compatible")setcompatibleoffsetdeletedonsetexactoffpcricursors=""pcriwkareas=""pcriolderror=on("error")pnerror=0onerrorpnerror=rierror(error(),message(),message(1),program()iftype('gaerrors(1)')<>"u"r

38、eleasegaerrorsendifpublicgaerrors(1,12)pcolddbc=dbc()setdatato("tsglxt")endiffirsttriggerlocallcparentid&&parent'svaluetobesoughtinchildlocallcoldparentid&&previousparentidvaluelocallcchildwkarea&&childworkareahandlereturnedbyriopenlocallcchildid&&child&

39、#39;svaluetobesoughtinparentlocallcoldchildid&&oldchildidvaluelocallcparentwkarea&&parentworkareahandlereturnedbyriopenlocallcstartarealcstartarea=select()llretval=.t.lcparentwkarea=select()select(lcparentwkarea)pcparentdbf=dbf()pnparentrec=recno()Icoldparentid=oldval("借书证号"

40、;)pcparentid=lcoldparentidpcparentexpr="借书证号"Icparentid=借书证号iflcparentid<>lcoldparentidlcchildwkarea=riopen("还书登记表")iflcchildwkarea<=0if_triggerlevel=1doriendwith.f.endifattheendofthehighesttriggerlevelselect(lcstartarea)return.f.endifnotabletoopenthechildworkareapcchild

41、dbf=dbf(lcchildwkarea)select(lcchildwkarea)scanfor借书证号=Icoldparentidpnchildrec=recno()pcchildid=借书证号pcchildexpr="借书证号"ifnotllretvalexitendif&&notllretvalllretval=riupdate("借书证号",lcparentid,"借书证信息表")endscangetallofthe还书登记表records=rireuse("还书登记表",lcchild

42、wkarea)ifnotllretvalif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretvalendifendifthisparentidchangedif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretval*"结束参照完整性更新触发器"借书证信息表5 数据库系统性

43、能评价在需求分析部分,我认真阅读了图书管理系统的功能简述,在此基础上把整个系统按处理功能分解成若干模块,进行数据分解,画出了总系统和各模块的数据流图、数据项表、数据结构表、数据流表等。得到的需求分析的主要结果,基本反映了用户的需求。在概念结构设计时,采用自底向上的设计方法。将数据流程图中的子图抽象为E-R图,然后再合并各个分E-R图。设计出的整体概念结构内部具有一致性,不但能满足需求分析阶段确定的所有要求,而且能准确反映原来的每个子视图的结构。并且给出了各个实体的描述,对实体和关系进行了调整,消除了冗余实体和冗余关系。在逻辑结构设计时,选择SQLServer所支持的数据模型,适于描述和表达概念

44、结构的。我们遵循一定原则进行实体、属性和联系的转换。优化了关系数据模型,根据具体的应用确定范式和关系模式的分解与合并。确定了外模式和数据视图。在物理结构设计时,设计的存储结构和存储方法考虑到了用户的应用环境情况,为了缩短响应时间优化数据库的访问,建立了经常查询的属性的索引。并且对数据库表进行了存储空间分配和划分了用户角色及每个角色的权限,系统安全性提高。最后在数据库实施设计阶段,在具体的DBMS下创建库,表,视图,建索引,授权及完整性约束。通过不断修改完善,我们所设计的图书管理数据库系统,符合关系数据库的基本体系结构,达到关系数据库的标准。本软件对录入的数据进行较高的数据精度限制且本软件响应时间较稳定,能帮助用户建立稳定的工作节奏,足够满足用户的需求。6 结束语数据库系统评价分析在需求分析部分,我们认真阅读了图书管理系统的功能简述,在此基础上把整个系统按处理功能分解成若干模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论