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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第10章图书管理系统数据库设计实例通过前面章节对数据库基础知识的学习,本章将通过一个图书管理系统的数据库设计实例来重点讲述如何设计数据库。在设计数据库的过程中应该遵循哪些设计原则及技巧。通过本章的数据库实例设计,要求对数据库的整体过程有个概念性的理解,并能通过所学知识,在具体的开发环境下设计一个较优化数据库并实现设计过程。10.1数据库设计原则及技巧10.1.1数据库设计原则随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。虽然对于小项目或中等规模的项目,开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。1.设计原则在设计数据库时,至关重要的工作就是要理解为之建模的业务职能和表示这些业务职能的数据库概念及功能,并能准确地设计数据库,进而建立优化的业务模型。因为数据库的设计在整个系统中是至关重要的一步,一旦数据库设计完成,在进行修改及优化就需花费大量的时间。因此,再设计数据库时,应考虑以下事项:1)规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。2)控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。3)库表重复控制。在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。4)并发控制。设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进行查询。5)必要的讨论。数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息。6)数据小组的审核。库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。7)头文件处理。每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。2.设计技巧2分类拆分数据量大的表。对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。索引设计。对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。数据操作的优化。在大型数据库中,如何提高数据操作效率值得关注。例如,每在数据库流水表中增加一笔业务,就必须从流水控制表中取出流水号,并将其流水号的数值加一。正常情况下,单笔操作的反应速度尚属正常,但当用它进行批量业务处理时,速度会明显减慢。经过分析发现,每次对流水控制表中的流水号数值加一时都要锁定该表,而该表却是整个系统操作的核心,有可能在操作时被其他进程锁定,因而使整个事务操作速度变慢。对这一问题的解决的办法是,根据批量业务的总笔数批量申请流水号,并对流水控制表进行一次更新,即可提高批量业务处理的速度。数据库参数的调整。数据库参数的调整是一个经验不断积累的过程,应由有经验的系统管理员完成。以informion数据库为例,记录锁的数目太少会造成锁表的失败;逻辑日志的文件数目太少会造成插入大表失败等,这些问题都应根据实际情况进行必要的调整。必要的工具。在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等,以此提高数据库的设计与开发效率。避免长事务。对单个大表的删除或插入操作会带来大事务,解决的办法是对参数进行调整,也可以在插入时对文件进行分割。对于一个由一系列小事务顺序操作共同构成的长事务(如银行交易系统的日终交易),可以由一系列操作完成整个事务,但其缺点是有可能因整个事务太大而使不能完成,或者,由于偶然的意外而使事务重做所需的时间太长。较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。这样,如果其中某个事务不成功,则只需重做该事务,因而既可节约时间,又可避免长事务。适当超前。计算机技术发展日新月异,数据库的设计必须具有一定前瞻性,不但要满足当前的应用要求,还要考虑未来的业务发展,同时必须有利于扩展或增加应用系统的处理功能。总之,相对于中小型数据库,大型数据库的设计与开发要复杂得多,因此在设计、开发过程中,除了要遵循数据库范式理论、增加系统的一致性和完整性外,还要在总体上根据具体情况进行分布式设计,紧紧把握集中控制、统一审核的基本原则,保证数据库设计结构紧凑、分布平衡、定位迅速。在数据库操作上,要采用一定的技巧提高整个应用系统的执行效率,并注意适当超前,以适应不断变化的应用及系统发展的要求。3如图10.1数据库设计的一般过程10.2图书管理系统数据库设计实例设计一个系统的核心是前期的分析设计,如果前期的分析设计没有合理、正确、可预见且清晰的思路,整个系统就无法实现一个优化的高性能系统。那么数据库的设计是整个系统设计的关键。本章重点介绍图书管理系统的数据库设计,而对于数据库应用的什么开发环境设计的系统,本文不再介绍。从数据库的设计过程可知,数据库设计的首要任务就是需求分析,可见如果需求分析做不好,就不可能设计出一个合理、优化的数据库。10.2.1数据库设计过程数据库设计是设计一个数据库管理系统的核心技术,因此,在设计一个系统之前必须设计好数据库,目前数据设计的一般过程分为六个阶段如图10.1所示:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、实施阶段和运行与维护阶段。1、需求分析阶段:需求分析阶段的主要任务是指通过充分调查现实世界要处理的对象,详细了解计算机系统的工作情况,明确用户的各种需求,然后确定系统的各项功能。数据库系统不仅要按照当前的应用要求来设计,而且必须充分考虑今后可能的扩充和改变。2、概念结构设计阶:概念结构设计阶段的主要任务是将需求分析阶段所得到的用户需求抽象为概念模型,而描述概念模型的具体工具主要是E-R模型。3、逻辑结构设计阶段:逻辑结构设计阶段的主要任务是把概念结构设计阶段设计的基本E-R模型转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。具体来说,就是首先将概念结构转换为一般的关系、网状、层次模型,然后将转换来的模型向特定DBMS支持下的数据模型转换,最后对数据模型进行优化。4、物理结构设计阶段:物理结构设计阶段的主要任务是为一个指定的逻辑数据模型选取一个符合应用要求的物理结构。具体来说,就是首先确定数据库的物理结构,即数据库的存取方法和存储结构;然后对数据库的物理结构进行评估,评估的重点是存取时间的长短和存储空间的大小。5、实施阶段:实施阶段的主要任务是用RDBMS提供的数据定义语言和其他实用程序将逻辑结构设计和物理结构设计的结果详细描述出来,成为DBMS可以接受的源代码;再经过系统调试产生目标模式,最后完成数据的载入工作。6、运行与维护:运行与维护阶段的主要任务包括数据库的转储和恢复,数据库完整性和安全性控制,数据库性能改造、分析和监督,数据库的重构造和重组织。10.2.2需求分析阶段10.2.2.1概述进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定需求分析阶段概念结构设计阶段逻辑结构设计阶段物理结构设计阶段实施阶段运行与维护阶段4和选择一个较好的系统方案,从而达到一个合理的优化系统。而需求分析是在于要弄清用户对所开发的数据库应用系统的确切要求。所以,数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。经过对图书管理系统的分析,因图书数量、规模大,管理信息量大,建立图书管理系统是为了解决人工手动管理图书信息在实践的问题。这里把系统的层次划分为了四个部分:图书维护,人员信息管理,图书借阅管理,信息查询。能够实现以下功能:1)进行新书入库、现有图书信息修改以及删除;2)能够实现对读者基本信息的查询和编辑管理;3)能够进行超期罚款功能;4)能够进行借阅信息的查询功能;10.2.2.2需求阶段的目标及任务需求分析的目标及任务就是为了提取有效的信息,概念模型的抽象化,转化为计算机系统能够识别的信息。则通过需求分析所得的信息如下:处理对象读者信息:读者编号,姓名,性别,学号,学院,专业,年级,类型,类别编号,办证日期管理员信息:管理员编号,姓名,性别,权限,登录口令,住址,电话馆藏图书信息:图书编号,索书号,图书名称,作者,出版社,单价,摘要,关键字,副本数,分类,出版日期,状态借阅信息:图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金借阅历史信息:图书编号,读者编号,图书名,作者,借阅日期,还书日期罚款信息:读者编号,图书编号,图书名,作者,借阅日期,应还日期,归还日期,罚款金额,处理状态,管理员编号处理功能及要求用户对图书管理系统的功能及要求如下:1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:a)图书信息的录入、删除及修改。b)图书信息的多关键字检索查询。c)图书的出借、返还及超期罚款或丢失赔偿。2.能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括:a)读者信息的登记、删除及修改。b)管理员信息的增加、删除及修改。c)读者资料的统计与查询。3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。4.对查询、统计的结果能够列表显示。510.2.2.3安全性和完整性要求1)安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2)完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。在系统进行设计时,一定根据第七章所学知识对数据的安全性及完整性进行设计。以保证数据库更为完善。10.2.2.4建立数据业务流程及数据字典系统需求分析主要是通过对本校图书管理员的咨询、请教,了解我校图书馆的管理规则和运行机制,并通过上网搜索有关图书管理系统的知识,了解到了图书管理的现状,以及在管理中的一些问题,然后通过所了解的文字信息,理解数据业务流程及数据字典,为后期数据库设计提供概念基础。图书管理系统业务流程图

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功