图书馆管理系统ER图Word文档格式.docx

上传人:b****5 文档编号:20985865 上传时间:2023-01-26 格式:DOCX 页数:28 大小:151.62KB
下载 相关 举报
图书馆管理系统ER图Word文档格式.docx_第1页
第1页 / 共28页
图书馆管理系统ER图Word文档格式.docx_第2页
第2页 / 共28页
图书馆管理系统ER图Word文档格式.docx_第3页
第3页 / 共28页
图书馆管理系统ER图Word文档格式.docx_第4页
第4页 / 共28页
图书馆管理系统ER图Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

图书馆管理系统ER图Word文档格式.docx

《图书馆管理系统ER图Word文档格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统ER图Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

图书馆管理系统ER图Word文档格式.docx

3).添加新的读者及其信息等。

图书信息管理模块主要功能如下:

1).定制书籍的各种信息管理,如:

书名、作者、出版信息等。

2).书籍信息的修改,新图书的入库管理和图书的注销等。

系统管理模块主要功能如下:

1).用户登录。

2).修改密码。

3).添加用户。

系统备份和数据传输模块主要功能如下:

1).备份数据库数据

2).恢复数据库数据

3).网络数据传输

1.3数据流图

数据流总体图示

图1-1数据流总体图

办理借书证

图1-2输借书证流图

借书证修改

图1-3借书证修改流图

借书证注销

图1-4借书证注销流图

借书系统

不能借书的原因

图1-5借书系统流图

检索系统

图1-6检索系统流图

还书系统

图1-7还书系统流图

图书档案管理系统

图1-8档案管理流图

数据字典

参数名

类型

长度

取值范围

别名

意义

图书书名

字符型

11

SM

图书编号

SH

作者

10

YZ

出版社

20

CBS

单价

数值型

8

DJ

借出日期

日期型

yy-mm-dd

JS

还书日期

HS

借书证号

JSZ

姓名

NAME

是否归还

YN

性别

2

SEX

单位

DW

发证日期

FZ

已借书册数

YNC

是否允许借书

YNS

是或否

类别

LB

进册数

JC

库存量

CZ

操作员编号

CB

操作员姓名

CNAME

操作员密码

15

MM

表1数据字典

2概念结构设计

这一阶段我们将客户的应用需求抽象为信息世界的结构,即对系统的人、物、事和概念进行人为处理,抽取人们所关心的共同特性,同时把这些特性用概念精确的描述。

我们首先根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部E-R图,然后合并成初步E-R图,再进行修改与重构。

局部E-R图

图书信息管理系统主要分为以下几个局部E-R图:

1).借书证处理系统ER图:

图2-1借书证处理系统ER图

图中各实体属性如下:

读者档案:

学号,读者姓名,性别,出生日期,借书证号,职业,单位,通讯地址,邮政编码,联系电话

借书证:

借书证号,姓名,性别,办证日期,借阅范围,最大借书量,照片,身份证号

管理员:

管理员编号,管理员姓名,登陆密码

2).借书系统ER图:

图2-2借书系统ER图

读者:

身份证号,读者姓名,借书证号

借书证号,姓名,性别,办证日期(借阅范围,最大借书量,照片,身份证号)

库存信息:

书号,图书编号

借出信息:

图书编号,借书证号,借书日期,归还日期

3).索书系统ER图:

图2-3索书系统ER图

读者姓名,借书证号

图书档案:

图书编号,书号,书名,作者,出版单位,出版日期,单价,藏书册书,类别,入库日期

4).还书系统ER图:

图2-4还书系统ER图

学号,读者姓名,借书证号

借书证号,姓名,性别,办证日期

操作员编号,管理员姓名,登陆密码

5).图书档案管理系统ER图:

图2-5档案管理系统ER图

图书编号,书号,书名,作者,出版单位,出版日期,单价,类别,入库日期

入库清单:

入库日期,图书编号,管理员编号,书名

6).整体E-R图

图2-6整体ER图

学号,读者姓名,性别,借书证号,单位

书号,书名,作者,出版单位,出版日期,单价,类别,藏书册书,图书编号入库日期

实体描述

说明:

1、由于读者的信息可以在借书证办理档案中查到所以合并为借书证办理档案

2.将借出书库和入库清单分别合并到了借书登记表和图书信息表中

实体名称

借书证

数据库表

借书证信息表

实体说明

读者和借书证信息

实体属性列表

借书证号,姓名,性别,办证日期,最大借书量,学号

管理员

tz_passwd

管理员的信息

读者

借书登记表

图书馆未被借出的图书信息

还书登记表

图书档案

图书信息表

馆藏图书信息

书号,书名,作者,出版单位,出版日期,版次,单价,类别,图书编号,入库日期

表2实体描述

关系描述(已包含在E-R图中)

实体--关系调整(实体描述表中已消除冗余实体和关系)

数据项定义

1).图书库的数据项定义:

名称

其他

普通索引

书号

主索引

译者

出版时间

CBSJ

表3图书库数据项定义

2).借、还书库的数据项定义:

XSXM

JSZH

借书日期

JSRQ

HSRQ

表4借、还书库数据项定义

3).借书证库的数据项定义:

JSXM

JSGH

6

XB

4

表5借书证库数据项定义

4).操作员库的数据项定义:

CZYYHH

操作员用户名

CZYYHM

口令

KL

表6操作员库数据项定义

数据表(库)描述

图书数据库=图书书名+图书编号+着者+出版社+单价+书号+出版时间

借书库=姓名+借书证号++教师姓名+图书名称+借书日期+还书日期

教师数据库=姓名+借书证号+单位

操作员库=操作员用户名+口令

系统功能模块图

软件功能结构图:

工商学院图书信息管理系统

系统管理

基本情况录入

借、还书管理

查询、统计

初始化

数据备份

操作员管理

一般用户登陆

新图书登记

新期刊登记

借书登记

还书登记

图书库藏查询

借书证库查询

图书查询

借书查询

还书查询

图2-7软件功能结构

系统流程图:

图书管理系统

读者查询系统

图书(期刊)库

查询

图2-8系统流程图

3逻辑结构设计

为了能够用计算机和SQLServer实现用户需求,可将概念结构转化为相应的数据模型,即是设计逻辑结构。

即由E-R图建立了适当的表,并按不同的范式的定义,对表进行规范化。

对规范化的表,更据用户需求建立数据库结构。

确定数据依赖

关系名

主要函数依赖

管理员

BCNF

管理员编号—→(管理员姓名,登陆密码)

库存信息

BCNF

图书编号—→书名等

借出信息

(图书编号)—→(借书日期,借书证号,归还日期)

2NF

借书证号—→(借书证号,姓名,性别,单位,发证日期,已借书册书,是否容许借书)

以后扩展:

身份证号—→(姓名,性别,照片)

图书编号—→(书号,书名,作者,出版单位,出版日期,版次,单价,内容提要,分类号,索书号,所在书库,入库日期)

入库清单

图书编号—→(管理员编号,书名,入库日期)

还书信息

借书证号—→(姓名,图书编号,书名,借出日期,还书日期)

数据依赖的优化与调整

3.2.1关系模式的优化

(1)借书证信息:

借书证(借书证号,姓名,性别,单位,发证日期,已借书册书,是否容许借书)满足BCNF范式

(2)管理员信息:

管理员信息(管理员编号,管理员姓名,登陆密码)满足BCNF范式

(3)库存信息:

库存信息(图书编号,书号)满足BCNF范式

(4)借书信息:

借书信息(图书编号,借书证号,姓名,书名,借书日期,是否归还)满足BCNF范式

(5)还书信息:

还书信息(姓名,图书编号,书名,借出日期,还书日期)满足BCNF范式

(6)图书信息:

图书档案(图书编号,书名,作者,图书类别,单价,出版社,进册书,库存量)均满足BCNF范式

(7)入库清单:

入库清单(图书编号,管理员编号,书名,入库日期)满足BCNF范式

3.2.2关系模式的调整

虽然在关系模式的优化中将各种关系满足了BCNF范式的要求,但是对某些数据库的操作却并没有简化,相反导致了数据库查询等数据库操作的效率低下。

于是对‘借书证信息’,和‘图书信息’作出了以下调整。

借书证(借书证号,姓名,性别,办证日期,单位,已借书册数,借书许可,)(3NF)

(2)图书信息:

图书档案(图书编号,书名,作者,出版单位,单价,图书类别,进册数,入库量)(2NF)

4代码设计

图书管理系统部分源代码

[图书外借情况查询代码]

tempstr="

%"

+tempstr+"

借书证号"

select*from借书登记表where借书登记表.借书证号liketempstrintocursortempcursor

endif

姓名"

select*from借书登记表where借书登记表.姓名liketempstrintocursortempcursor

endif

图书编号"

select*from借书登记表where借书登记表.图书编号liketempstrintocursortempcursor

书名"

select*from借书登记表where借书登记表.书名liketempstrintocursortempcursor

是否归还"

select*from借书登记表where借书登记表.是否归还liketempstrintocursortempcursor

[图书外借和归还情况查询代码]

select*from还书登记表where还书登记表.借书证号liketempstrintocursortempcursor

select*from还书登记表where还书登记表.姓名liketempstrintocursortempcursor

select*from还书登记表where还书登记表.图书编号liketempstrintocursortempcursor

select*from还书登记表where还书登记表.书名liketempstrintocursortempcursor

[存储过程代码]

procedureridelete

localllretval

llretval=.t.

if(isrlocked()and!

deleted())or!

rlock()

llretval=.f.

else

if!

deleted()

delete

ifcursorgetprop('

buffering'

)>

1

=tableupdate()

endif

llretval=pnerror=0

endifnotalreadydeleted

unlockrecord(recno())

returnllretval

procedureriupdate

lparameterstcfieldname,tcnewvalue,tccascadeparent

ifisrlocked()or!

ifeval(tcfieldname)<

>

tcnewvalue

privatepccascadeparent

pccascadeparent=upper(iif(type("

tccascadeparent"

)<

"

c"

"

tccascadeparent))

replace(tcfieldname)withtcnewvalue

endifvaluesdon'

talreadymatch

endifit'

slockedalready,oriwasabletolockit

procedurerierror

parameterstnerrno,tcmessage,tccode,tcprogram

locallnerrorrows,lnxx

lnerrorrows=alen(gaerrors,1)

iftype('

gaerrors[lnerrorrows,1]'

l"

dimensiongaerrors[lnerrorrows+1,alen(gaerrors,2)]

lnerrorrows=lnerrorrows+1

gaerrors[lnerrorrows,1]=tnerrno

gaerrors[lnerrorrows,2]=tcmessage

gaerrors[lnerrorrows,3]=tccode

gaerrors[lnerrorrows,4]="

lnxx=1

dowhile!

empty(program(lnxx))

gaerrors[lnerrorrows,4]=gaerrors[lnerrorrows,4]+"

+;

program(lnxx)

lnxx=lnxx+1

enddo

gaerrors[lnerrorrows,5]=pcparentdbf

gaerrors[lnerrorrows,6]=pnparentrec

gaerrors[lnerrorrows,7]=pcparentid

gaerrors[lnerrorrows,8]=pcparentexpr

gaerrors[lnerrorrows,9]=pcchilddbf

gaerrors[lnerrorrows,10]=pnchildrec

gaerrors[lnerrorrows,11]=pcchildid

gaerrors[lnerrorrows,12]=pcchildexpr

returntnerrno

procedureriopen

parameterstctable,tcorder

locallccurwkarea,lcnewwkarea,lninusespot

lninusespot=atc(tctable+"

*"

pcricursors)

iflninusespot=0

lccurwkarea=select()

select0

lcnewwkarea=select()

ifnotempty(tcorder)

use(tctable)againorder(tcorder);

alias("

__ri"

+ltrim(str(select())))share

use(tctable)againalias("

ifpnerror=0

pcricursors=pcricursors+upper(tctable)+"

+str(select(),5)

lcnewwkarea=0

endifsomethingbadhappenedwhileattemptingtoopenthefile

else

lcnewwkarea=val(substr(pcricursors,lninusespot+len(tctable)+1,5))

pcricursors=strtran(pcricursors,upper(tctable)+"

+str(lcnewwkarea,5),;

upper(tctable)+"

+str(lcnewwkarea,5))

setorderto(tcorder)in(lcnewwkarea)

endifsentanorder

ifpnerror<

endifsomethingbadhappenedwhilesettingorder

return(lcnewwkarea)

procedureriend

parameterstlsuccess

locallnxx,lnspot,lcworkarea

iftlsuccess

endtransaction

setdeletedoff

rollback

setdeletedon

ifempty(pcriolderror)

onerror

onerror&

pcriolderror.

forlnxx=1tooccurs("

lnspot=atc("

pcricursors,lnxx)+1

usein(val(substr(pcricursors,lnspot,5)))

endfor

ifpcoldcompat="

on"

setcompatibleon

ifpcolddele="

off"

ifpcoldexact="

setexacton

ifpcoldtalk="

settalkon

docase

caseempty(pcolddbc)

setdatato

casepcolddbc<

dbc()

setdatato(pcolddbc)

endcas

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

当前位置:首页 > 高等教育 > 历史学

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

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