数据库设计范例图书管理系统.docx

上传人:b****7 文档编号:26153508 上传时间:2023-06-17 格式:DOCX 页数:48 大小:582.23KB
下载 相关 举报
数据库设计范例图书管理系统.docx_第1页
第1页 / 共48页
数据库设计范例图书管理系统.docx_第2页
第2页 / 共48页
数据库设计范例图书管理系统.docx_第3页
第3页 / 共48页
数据库设计范例图书管理系统.docx_第4页
第4页 / 共48页
数据库设计范例图书管理系统.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

数据库设计范例图书管理系统.docx

《数据库设计范例图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库设计范例图书管理系统.docx(48页珍藏版)》请在冰豆网上搜索。

数据库设计范例图书管理系统.docx

数据库设计范例图书管理系统

第10章图书管理系统数据库设计实例

通过前面章节对数据库基础知识的学习,本章将通过一个图书管理系统的数据库设计实例来重点讲述如何设计数据库。

在设计数据库的过程中应该遵循哪些设计原则及技巧。

通过本章的数据库实例设计,要求对数据库的整体过程有个概念性的理解,并能通过所学知识,在具体的开发环境下设计一个较优化数据库并实现设计过程。

10.1数据库设计原则及技巧

10.1.1数据库设计原则

随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。

数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。

因此在软件系统开发中,数据库设计应遵循必要的数据库式理论,以减少冗余、保证数据的完整性与正确性。

只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。

虽然对于小项目或中等规模的项目,开发人员可以很容易地利用式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。

1.设计原则

在设计数据库时,至关重要的工作就是要理解为之建模的业务职能和表示这些业务职能的数据库概念及功能,并能准确地设计数据库,进而建立优化的业务模型。

因为数据库的设计在整个系统中是至关重要的一步,一旦数据库设计完成,在进行修改及优化就需花费大量的时间。

因此,再设计数据库时,应考虑以下事项:

1)规命名。

所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。

2)控制字段的引用。

在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。

采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。

3)库表重复控制。

在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。

通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。

4)并发控制。

设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进行查询。

5)必要的讨论。

数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息。

6)数据小组的审核。

库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。

7)头文件处理。

每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。

2.设计技巧

分类拆分数据量大的表。

对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。

例如,银行的户主账表原来设计成一表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。

如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。

索引设计。

对于大的数据库表,合理的索引能够提高整个数据库的操作效率。

在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。

例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。

因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。

数据操作的优化。

在大型数据库中,如何提高数据操作效率值得关注。

例如,每在数据库流水表中增加一笔业务,就必须从流水控制表中取出流水号,并将其流水号的数值加一。

正常情况下,单笔操作的反应速度尚属正常,但当用它进行批量业务处理时,速度会明显减慢。

经过分析发现,每次对流水控制表中的流水号数值加一时都要锁定该表,而该表却是整个系统操作的核心,有可能在操作时被其他进程锁定,因而使整个事务操作速度变慢。

对这一问题的解决的办法是,根据批量业务的总笔数批量申请流水号,并对流水控制表进行一次更新,即可提高批量业务处理的速度。

数据库参数的调整。

数据库参数的调整是一个经验不断积累的过程,应由有经验的系统管理员完成。

以informion数据库为例,记录锁的数目太少会造成锁表的失败;逻辑日志的文件数目太少会造成插入大表失败等,这些问题都应根据实际情况进行必要的调整。

必要的工具。

在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等,以此提高数据库的设计与开发效率。

避免长事务。

对单个大表的删除或插入操作会带来大事务,解决的办法是对参数进行调整,也可以在插入时对文件进行分割。

对于一个由一系列小事务顺序操作共同构成的长事务(如银行交易系统的日终交易),可以由一系列操作完成整个事务,但其缺点是有可能因整个事务太大而使不能完成,或者,由于偶然的意外而使事务重做所需的时间太长。

较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。

这样,如果其中某个事务不成功,则只需重做该事务,因而既可节约时间,又可避免长事务。

适当超前。

计算机技术发展日新月异,数据库的设计必须具有一定前瞻性,不但要满足当前的应用要求,还要考虑未来的业务发展,同时必须有利于扩展或增加应用系统的处理功能。

总之,相对于中小型数据库,大型数据库的设计与开发要复杂得多,因此在设计、开发过程中,除了要遵循数据库式理论、增加系统的一致性和完整性外,还要在总体上根据具体情况进行分布式设计,紧紧把握集中控制、统一审核的基本原则,保证数据库设计结构紧凑、分布平衡、定位迅速。

在数据库操作上,要采用一定的技巧提高整个应用系统的执行效率,并注意适当超前,以适应不断变化的应用及系统发展的要求。

10.2图书管理系统数据库设计实例

设计一个系统的核心是前期的分析设计,如果前期的分析设计没有合理、正确、可预见且清晰的思路,整个系统就无法实现一个优化的高性能系统。

那么数据库的设计是整个系统设计的关键。

本章重点介绍图书管理系统的数据库设计,而对于数据库应用的什么开发环境设计的系统,本文不再介绍。

从数据库的设计过程可知,数据库设计的首要任务就是需求分析,可见如果需求分析做不好,就不可能设计出一个合理、优化的数据库。

10.2.1数据库设计过程

数据库设计是设计一个数据库管理系统的核心技术,因此,在设计一个系统之前必须设计好数据库,目前数据设计的一般过程分为六个阶段如图10.1所示:

需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、实施阶段和运行与维护阶段。

1、需求分析阶段:

需求分析阶段的主要任务是指通过充分调查现实世界要处理的对象,详细了解计算机系统的工作情况,明确用户的各种需求,然后确定系统的各项功能。

数据库系统不仅要按照当前的应用要求来设计,而且必须充分考虑今后可能的扩充和改变。

2、概念结构设计阶:

概念结构设计阶段的主要任务是将需求分析阶段所得到的用户需求抽象为概念模型,而描述概念模型的具体工具主要是E-R模型。

如图10.1数据库设计的一般过程

3、逻辑结构设计阶段:

逻辑结构设计阶段的主要任务是把概念结构设计阶段设计的基本E-R模型转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。

具体来说,就是首先将概念结构转换为一般的关系、网状、层次模型,然后将转换来的模型向特定DBMS支持下的数据模型转换,最后对数据模型进行优化。

4、物理结构设计阶段:

物理结构设计阶段的主要任务是为一个指定的逻辑数据模型选取一个符合应用要求的物理结构。

具体来说,就是首先确定数据库的物理结构,即数据库的存取方法和存储结构;然后对数据库的物理结构进行评估,评估的重点是存取时间的长短和存储空间的大小。

5、实施阶段:

实施阶段的主要任务是用RDBMS提供的数据定义语言和其他实用程序将逻辑结构设计和物理结构设计的结果详细描述出来,成为DBMS可以接受的源代码;再经过系统调试产生目标模式,最后完成数据的载入工作。

6、运行与维护:

运行与维护阶段的主要任务包括数据库的转储和恢复,数据库完整性和安全性控制,数据库性能改造、分析和监督,数据库的重构造和重组织。

10.2.2需求分析阶段

10.2.2.1概述

进行系统设计,首先要对系统的现状进行分析。

根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。

而需求分析是在于要弄清用户对所开发的数据库应用系统的确切要求。

所以,数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。

明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。

在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。

这样,就把一个大的系统分解成了几个小系统。

经过对图书管理系统的分析,因图书数量、规模大,管理信息量大,建立图书管理系统是为了解决人工手动管理图书信息在实践的问题。

这里把系统的层次划分为了四个部分:

图书维护,人员信息管理,图书借阅管理,信息查询。

能够实现以下功能:

1)进行新书入库、现有图书信息修改以及删除;

2)能够实现对读者基本信息的查询和编辑管理;

3)能够进行超期罚款功能;

4)能够进行借阅信息的查询功能;

10.2.2.2需求阶段的目标及任务

需求分析的目标及任务就是为了提取有效的信息,概念模型的抽象化,转化为计算机系统能够识别的信息。

则通过需求分析所得的信息如下:

●处理对象

读者信息:

读者编号,,性别,学号,学院,专业,年级,类型,类别编号,办证日期

管理员信息:

管理员编号,,性别,权限,登录口令,住址,

馆藏图书信息:

图书编号,索书号,图书名称,作者,,单价,摘要,关键字,副本数,分类,出版日期,状态

借阅信息:

图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金

借阅历史信息:

图书编号,读者编号,图书名,作者,借阅日期,还书日期

罚款信息:

读者编号,图书编号,图书名,作者,借阅日期,应还日期,归还日期,罚款金额,处理状态,管理员编号

●处理功能及要求

用户对图书管理系统的功能及要求如下:

1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:

a)图书信息的录入、删除及修改。

b)图书信息的多关键字检索查询。

c)图书的出借、返还及超期罚款或丢失赔偿。

2.能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括:

a)读者信息的登记、删除及修改。

b)管理员信息的增加、删除及修改。

c)读者资料的统计与查询。

3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。

4.对查询、统计的结果能够列表显示。

10.2.2.3安全性和完整性要求

1)安全性要求

系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。

安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。

2)完整性要求

系统完整性要求系统中数据的正确性以及相容性。

可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。

在系统进行设计时,一定根据第七章所学知识对数据的安全性及完整性进行设计。

以保证数据库更为完善。

10.2.2.4建立数据业务流程及数据字典

系统需求分析主要是通过对本校图书管理员的咨询、请教,了解我校图书馆的管理规则和运行机制,并通过上网搜索有关图书管理系统的知识,了解到了图书管理的现状,以及在管理中的一些问题,然后通过所了解的文字信息,理解数据业务流程及数据字典,为后期数据库设计提供概念基础。

●图书管理系统业务流程图

本文的业务流程是从读者角度考虑的业务流程图:

●图书管理系统数据流程图

(一)

顶层数据流图:

(二)第2层数据流图:

(读者借阅,读者还书,读者查询,管理员查询,管理员修改)

图10.4第2层数据流图

(三)第3层数据流图:

(读者借阅)

图10.5读者借阅数据流图

(四)第3层数据流图:

(读者还书)

图10.6读者还书数据流图

(五)第3层数据流图:

(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)

图10.7管理员、读者查询数据流图

(六)第3层数据流图:

(管理员添加、删除、修改图书信息)

图10.8图书的维护数据流图

(七)第3层数据流图:

(管理员添加、删除、修改读者信息)

图10.9更改读者信息的数据流图

(八)第3层数据流图:

(管理员添加、删除、修改管理员信息)

 

图10.10更改管理员信息的数据流图

●图书管理系统数据字典

(a)数据项:

系统涉及的数据项有44项

表1.1数据项列表

数据项编号

数据项名

数据项含义

与其它数据项的关系

存储结构

别名

DI-1

BookID

图书条码号

char(9)

条码号

DI-2

BookNo

图书索书号

char(10)

索书号

DI-3

BookName

图书名

char(20)

书名

DI-4

BookWriter

图书作者

char(8)

作者

DI-5

BookPublish

图书

char(20)

DI-6

BookPrice

图书单价

char(7)

单价

DI-7

BookDate

图书出版日期

Date

出版日期

DI-8

BookClass

图书分类

char(20)

类别

DI-9

BookMain

图书摘要

char(200)

摘要

DI-10

BookPrim

图书关键字

char(30)

关键字

DI-11

BookCopy

图书副本数

char(5)

副本数

DI-12

BookState

图书是否可借

char(10)

状态

DI-13

BookRNo

所属馆室号

同RoomNo

char(5)

馆室号

DI-14

ReaID

读者条码号

char(9)

条码号

DI-15

ReaName

读者

char(10)

DI-16

ReaSex

读者性别

char

(2)

性别

DI-17

ReaNo

读者学号

char(9)

学号

DI-18

ReaLBID

读者类别编号

同LBID

char(5)

类别编号

DI-19

ReaType

读者类型(职务)

char(20)

类型

DI-20

ReaDep

读者所在学院

char(20)

学院

DI-21

ReaGrade

读者所属年级

char(5)

年级

DI-22

ReaPre

读者所读专业

char(20)

专业

DI-23

ReaDate

读者办证时间

Date

办证时间

DI-24

OutDate

借阅日期

Date

借阅时间

DI-25

InDate

归还日期

Date

归还时间

DI-26

YHDate

应还日期

Date

应还时间

DI-27

Fine

罚款金额

char(3)

罚款金额

DI-28

CLState

是否交纳罚金

char(8)

处理状态

DI-29

LBID

类别编号

同ReaLBID

char(5)

类别编号

DI-30

LBName

读者类别名

char(20)

类别名

DI-31

LBnum

允许最多借书数量

char(5)

借阅数量

DI-32

LBbqx

允许最长持有时间

char(4)

借阅期限

DI-33

LBqx

借阅卡有效期

char(3)

有效期限

DI-34

MID

管理员编号

同RoomMID

char(10)

编号

DI-35

MName

管理员

char(10)

DI-36

MSex

管理员性别

char

(2)

性别

DI-37

Mpwd

管理员口令

char(8)

口令

DI-38

MAuth

管理员权限级别

char(4)

权限级别

DI-39

MTeleph

管理员

char(15)

DI-40

MAddre

管理员地址

char(30)

住址

DI-41

RoomNo

馆室号

同BookRNo

char(5)

馆室号

DI-42

RoomMID

馆室管理员编号

同MID

char(10)

编号

DI-43

RoomNum

馆室图书数目

char(5)

数量

DI-44

RoomAddre

馆室地址

char(20)

地址

(b)数据结构:

表1.2数据结构列表

数据结

构编号

数据结构名

数据结构

含义

组成

DS-1

Book

馆藏图书信息

BookID,BookNo,BookName,BookWriter,

BookPublish,BookPrice,BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,

BookRNo

DS-2

Reader

读者信息

ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType,ReaDep,ReaGrade,ReaPref,ReaDate,

DS-3

Borrow

借阅信息

BookID,ReaID,BookName,BookWriter,Outdate,YHdate

DS-4

History

借阅历史

BookID,ReaID,BookName,BookWriter,Outdate,Indate

DS-5

Fine

罚款信息

BookID,ReaID,BookName,Outdate,Indate,Fine,CLState,MID

DS-6

ReaderType

读者类别

LBID,LBName,LBnum,LBbqx,LBqx

DS-7

Maneger

管理员信息

MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre

DS-8

Room

馆室信息

RoomNO,RoomMID,RoomNum,RoomAddre

(c)处理逻辑描述

表1.3处理逻辑列表

处理编号

处理功能

处理过程

PR-1

判断读者查询涉及的功能模块

馆藏图书信息模块、读者信息模块、读者类别信息模块、借阅信息模块、借阅历史信息模块、罚款信息模块、管理员模块、馆室信息模块:

先确定查询所涉及的功能模块;然后,根据要查询的容,确定查询数据流向;最后显示查询结果。

PR-2

判断图书、读者修改要涉及的模块,同时把相应的修改数据传到相应的模块之中

馆藏图书信息模块、读者信息模块、读者类别信息模块、管理员信息模块、馆室信息模块:

先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作。

10.2.3概念分析阶段

概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。

本图书管理系统的主要任务及目标如下:

(1)选择中层数据流为切入点,通常选择实际系统中的子系统;

(2)设计分E-R图,即各子模块的E-R图;

(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;

(4)生成全局E-R图,通过消除冲突等方面。

在本图书管理系统中,从第3层数据流程图下手。

分析各3层数据流图和数据字典,知道整个系统功能围绕“读者”、“管理员”和“图书”的处理。

根据实体与属性间的两条准则:

①作为“属性”,不能再具有需要描述的性质。

②“属性”不能与其他实体具有联系。

数据流程图10.5、图10.6、图10.7可综合成借阅子系统的分E-R图10.11,数据流程图10.8可抽象为分E-R图10.12,数据流程图10.9可抽象为分E-R图10.13,数据流程图10.10可抽象为分E-R图10.14。

然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图10.15。

其各个E-R图如下:

(1)根据不同的对象,从第3层数据流程图入手,分别画出各分E-R图:

(a)从数据流程图10.5、图10.6、图10.7抽象出的分E-R图:

图10.11分E-R图

(b)从数据流程图10.8可抽象为分E-R图:

图10.12分E-R图

(c)从数据流程图10.9抽象出的分E-R图:

图10.13分E-R图

(d)从数据流程图10.10抽象出的分E-R图:

图10.14分E-R图

(2)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图如下所示:

图10.15分E-R图

 

(3)各E-R图各实体的属性如下所示:

图书:

Book(BookID,BookNo,BookName,BookWriter,BookPublish,BookPrice,BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,BookRN)

读者:

Reader(ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType,ReaDep,ReaGrade,ReaPref,ReaDate)

管理员:

Maneger(MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre)

馆室:

Room(RoomNo,RoomMID,RoomNum,RoomAddre)

读者类别:

ReaderTpye(LBID,LBName,LBnum,LBbqx,LBqx)

各E-R图中联系的属性如下所示:

借阅信息:

Borrow(BookID,ReaderID,BookName,BookWriter,Outdate,YHdate)

借阅历史:

History(BookID,ReaderID,BookName,BookWriter,Outdate,Indate)

罚款信息:

Fine(BookID,ReaderID,BookName,Outdate,Indate,Fine,CLState,MID)

10.2.4逻辑设计阶段

以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。

具体容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、

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

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

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

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