ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:515.08KB ,
资源ID:20997794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20997794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课设图书管理系统1.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库课设图书管理系统1.docx

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

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

3、数据,数据结构以及数据处理的流程,为后面的具体设计打下基础。在仔细分析调查有关图书馆管理信息需求的基础上,我们主要考虑以下几个方面的需求:1) 用户需求:图书用户要求计算机系统和SQL Server所工作的范围;2) 应用资源:数据库应用的平台包括物理平台和图书等;3) 应用质量和可靠性要求:包括操作人员素质和系统的纠错能力等1.1 项目名称: 图书馆信息管理系统1.2 项目背景和内容概要对图书馆管理信息系统进行详细地分析后,我们将系统分为以下几个模块:借阅管理模块、借书证信息管理模块、图书信息管理模块、系统管理模块。其主要功能如下: 借阅管理模块主要功能如下:1).可以为读者办理,修改,注销

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

5、加用户。 系统备份和数据传输模块主要功能如下:1).备份数据库数据2).恢复数据库数据3).网络数据传输13 数据流图 数据流总体图示图1-1 数据流总体图 办理借书证图1-2 输借书证流图 借书证修改图1-3 借书证修改流图 借书证注销图1-4借书证注销流图 借书系统不能借书的原因图1-5借书系统流图 检索系统图1-6 检索系统流图 还书系统图1-7 还书系统流图 图书档案管理系统图1-8 档案管理流图1.4 数据字典 参数名类型长度取值范围别名意义图书书名字符型11SM图书编号字符型11B1050600000-B1050610000SH作者字符型10YZ出版社字符型20CBS单价数值型8D

6、J借出日期日期型yy-mm-ddJS还书日期日期型yy-mm-ddHS借书证号字符型100501000000-0501100000JSZ姓名字符型20NAME是否归还字符型20YN性别字符型2SEX单位字符型20DW发证日期日期型yy-mm-ddFZ已借书册数字符型2YNC是否允许借书字符型2YNS是或否类别字符型20LB进册数数值型10JC库存量数值型10CZ操作员编号数值型10CB操作员姓名字符型10CNAME操作员密码 字符型15MM表1数据字典2 概念结构设计这一阶段我们将客户的应用需求抽象为信息世界的结构,即对系统的人、物、事和概念进行人为处理,抽取人们所关心的共同特性,同时把这些特

7、性用概念精确的描述。我们首先根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部E-R图,然后合并成初步E-R图,再进行修改与重构。2.1局部E-R图图书信息管理系统主要分为以下几个局部E-R图:1).借书证处理系统ER图:图2-1 借书证处理系统ER图图中各实体属性如下:读者档案:学号,读者姓名,性别,出生日期,借书证号,职业,单位,通讯地址,邮政编码,联系电话借书证:借书证号,姓名,性别,办证日期,借阅范围,最大借书量,照片,身份证号管理员:管理员编号,管理员姓名,登陆密码2).借书系统ER图:图2-2借书系统ER图图中各实体属性如下:读者:身份证号,读者姓名,

8、借书证号借书证:借书证号,姓名,性别,办证日期(借阅范围,最大借书量,照片,身份证号)库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期3).索书系统ER图:图2-3索书系统ER图图中各实体属性如下:读者:读者姓名,借书证号图书档案:图书编号,书号,书名,作者,出版单位,出版日期,单价,藏书册书,类别,入库日期4).还书系统ER图:图2-4 还书系统ER图图中各实体属性如下:读者:学号,读者姓名,借书证号借书证:借书证号,姓名,性别,办证日期库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期管理员:操作员编号,管理员姓名,登陆密码5)图书档案管理系统

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

10、述说明:1、由于读者的信息可以在借书证办理档案中查到所以合并为借书证办理档案 2. 将借出书库和入库清单分别合并到了借书登记表和图书信息表中实体名称借书证数据库表借书证信息表实体说明读者和借书证信息实体属性列表借书证号,姓名,性别,办证日期,最大借书量,学号实体名称管理员数据库表tz_passwd实体说明管理员的信息实体属性列表管理员编号,管理员姓名,登陆密码实体名称读者数据库表借书登记表实体说明图书馆未被借出的图书信息实体属性列表书号,图书编号实体名称读者数据库表还书登记表实体说明图书馆未被借出的图书信息实体属性列表书号,图书编号实体名称图书档案数据库表图书信息表实体说明馆藏图书信息实体属性

11、列表书号,书名,作者,出版单位,出版日期,版次,单价,类别,图书编号,入库日期表2 实体描述2.3 关系描述 (已包含在E-R图中)2.4 实体-关系调整 (实体描述表中已消除冗余实体和关系)2.5 数据项定义1)图书库的数据项定义:名称别名类型长度其他图书书名SM字符型20普通索引书号SH数值型20主索引译者YZ字符型10出版社CBS字符型20单价DJ数值型8出版时间CBSJ日期型8表3 图书库数据项定义2)借、还书库的数据项定义:名称别名类型长度其他姓名XSXM字符型10普通索引借书证号JSZH数值型8主索引图书书名SM字符型20图书编号SH字符型20借书日期JSRQ日期型8还书日期HSR

12、Q日期型8表4借、还书库数据项定义3)借书证库的数据项定义:名称别名类型长度其他姓名JSXM字符型10普通索引借书证号JSGH字符型6主索引性别XB字符型4单位DW字符型8表5借书证库数据项定义4)操作员库的数据项定义:名称别名类型长度其他操作员编号CZYYHH字符型10操作员用户名CZYYHM字符型10口令KL字符型10表6操作员库数据项定义2.6数据表(库)描述图书数据库=图书书名+图书编号+著者+出版社+单价+书号+出版时间借书库=姓名+借书证号+教师姓名+图书名称+借书日期+还书日期教师数据库=姓名+借书证号+单位操作员库=操作员用户名+口令2.7 系统功能模块图软件功能结构图:工商学

13、院图书信息管理系统系统管理基本情况录入借、还书管理查询、统计初始化数据备份操作员管理一般用户登陆新图书登记新期刊登记借书登记还书登记图书库藏查询借书证库查询图书查询借书查询还书查询图2-7 软件功能结构2.8 系统流程图:图书管理系统读者查询系统图书(期刊)库查询图2-8 系统流程图3 逻辑结构设计为了能够用计算机和SQL Server实现用户需求,可将概念结构转化为相应的数据模型,即是设计逻辑结构。即由ER图建立了适当的表,并按不同的范式的定义,对表进行规范化。对规范化的表,更据用户需求建立数据库结构。3.1 确定数据依赖关系名主 要 函 数 依 赖管理员 BCNF管理员编号(管理员姓名,登

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

15、是否容许借书) 满足 BCNF范式(2) 管理员信息:管理员信息(管理员编号,管理员姓名,登陆密码)满足 BCNF 范式(3) 库存信息:库存信息(图书编号,书号) 满足BCNF 范式(4) 借书信息:借书信息(图书编号,借书证号,姓名,书名,借书日期,是否归还)满足 BCNF 范式(5) 还书信息:还书信息(姓名,图书编号,书名,借出日期,还书日期)满足 BCNF 范式(6) 图书信息:图书档案(图书编号,书名,作者,图书类别,单价,出版社,进册书,库存量)均满足 BCNF范式(7) 入库清单:入库清单(图书编号,管理员编号,书名,入库日期)满足 BCNF范式3.2.2关系模式的调整虽然在关

16、系模式的优化中将各种关系满足了BCNF范式的要求,但是对某些数据库的操作却并没有简化,相反导致了数据库查询等数据库操作的效率低下。于是对借书证信息,和图书信息作出了以下调整。(1) 借书证信息:借书证(借书证号,姓名,性别,办证日期,单位,已借书册数,借书许可,)(3NF) (2) 图书信息: 图书档案(图书编号,书名,作者,出版单位,单价,图书类别,进册数,入库量) (2NF)4 代码设计图书管理系统部分源代码图书外借情况查询代码tempstr=allt(thisform.container1.text1.value)tempstr=%+tempstr+%if bo1.text=借书证号se

17、lect * from 借书登记表 where 借书登记表.借书证号 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=姓名select * from 借书登记表 where 借书登记表.姓名 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=图书编号select * f

18、rom 借书登记表 where 借书登记表.图书编号 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=书名select * from 借书登记表 where 借书登记表.书名 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=是否归还select * from 借书登记

19、表 where 借书登记表.是否归还 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif thisform.container1.text1.value=图书外借和归还情况查询代码tempstr=allt(thisform.container1.text1.value)tempstr=%+tempstr+%if bo1.text=借书证号select * from 还书登记表 where 还书登记表.借书证号 like tempstr into cursor

20、 tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=姓名select * from 还书登记表 where 还书登记表.姓名 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=图书编号select * from 还书登记表 where 还书登记表.图书编号 like tempstr into cursor tempcur

21、sorthisform.grid1.recordsource=tempcursorthisform.refreshendif if bo1.text=书名select * from 还书登记表 where 还书登记表.书名 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif thisform.container1.text1.value=存储过程代码procedure RIDELETElocal llRetValllRetVal=.t. IF (ISRLOC

22、KED() and !deleted() OR !RLOCK() llRetVal=.F. ELSE IF !deleted() DELETE IF CURSORGETPROP(BUFFERING) 1 =TABLEUPDATE() ENDIF llRetVal=pnerror=0 ENDIF not already deleted ENDIF UNLOCK RECORD (RECNO()RETURN llRetValprocedure RIUPDATElparameters tcFieldName,tcNewValue,tcCascadeParentlocal llRetValllRetVa

23、l=.t. IF ISRLOCKED() OR !RLOCK() llRetVal=.F. ELSE IF EVAL(tcFieldName)tcNewValue PRIVATE pcCascadeParent pcCascadeParent=upper(iif(type(tcCascadeParent)C,tcCascadeParent) REPLACE (tcFieldName) WITH tcNewValue IF CURSORGETPROP(BUFFERING) 1 =TABLEUPDATE() ENDIF llRetVal=pnerror=0 ENDIF values dont al

24、ready match ENDIF its locked already, or I was able to lock it UNLOCK RECORD (RECNO()return llRetValprocedure rierrorparameters tnErrNo,tcMessage,tcCode,tcProgramlocal lnErrorRows,lnXXlnErrorRows=alen(gaErrors,1)if type(gaErrorslnErrorRows,1)L dimension gaErrorslnErrorRows+1,alen(gaErrors,2) lnError

25、Rows=lnErrorRows+1endifgaErrorslnErrorRows,1=tnErrNogaErrorslnErrorRows,2=tcMessagegaErrorslnErrorRows,3=tcCodegaErrorslnErrorRows,4=lnXX=1do while !empty(program(lnXX) gaErrorslnErrorRows,4=gaErrorslnErrorRows,4+,+; program(lnXX) lnXX=lnXX+1enddogaErrorslnErrorRows,5=pcParentDBFgaErrorslnErrorRows,

26、6=pnParentRecgaErrorslnErrorRows,7=pcParentIDgaErrorslnErrorRows,8=pcParentExprgaErrorslnErrorRows,9=pcChildDBFgaErrorslnErrorRows,10=pnChildRecgaErrorslnErrorRows,11=pcChildIDgaErrorslnErrorRows,12=pcChildExprreturn tnErrNoPROCEDURE riopenPARAMETERS tcTable,tcOrderlocal lcCurWkArea,lcNewWkArea,lnIn

27、UseSpotlnInUseSpot=atc(tcTable+*,pcRIcursors)IF lnInUseSpot=0 lcCurWkArea=select() SELECT 0 lcNewWkArea=select() IF NOT EMPTY(tcOrder) USE (tcTable) AGAIN ORDER (tcOrder) ; ALIAS (_ri+LTRIM(STR(SELECT() share ELSE USE (tcTable) AGAIN ALIAS (_ri+LTRIM(STR(SELECT() share ENDIF if pnerror=0 pcRIcursors=pcRIcursors+upper(tcTable)+?+STR(SELECT(

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

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