《数据库设计与应用开发实践第一章》由会员分享,可在线阅读,更多相关《数据库设计与应用开发实践第一章(84页珍藏版)》请在金锄头文库上搜索。
1、数据库设计与应用开发实践,(第一版) 陆慧娟 主编 陆慧娟 高波涌 刘丽娟 翁文勇 关伟 编著,中国计量学院信息工程学院China Jiliang University2014 清华大学出版社,数据库设计与应用开发实践,第一章数据库应用系统案例剖析,1.1 数据库应用系统开发过程1.2 数据库系统的组成1.3 图书管理系统功能剖析,概述,数据库应用系统是在数据库管理系统(Database Management System ,DBMS)支持下建立的计算机软件系统。例如,以数据库为基础的财务管理系统、人事管理系统、图书管理系统等等。,概述,本章将介绍数据库应用系统的一般开发过程,以此引出后续章节
2、内容:数据库逻辑结构设计(数据建模)数据库物理结构设计(以提高系统性能为目的,进行数据库优化设计)数据库业务逻辑设计(将部分应用程序的功能移植到数据库中,进行业务层数据库设计优化)数据库应用程序设计开发语言和架构;并简单介绍数据库系统的组成,帮助读者理解数据库系统的基本组成以及DBMS在应用系统中的地位;最后以图书管理系统为例,分析其功能实现形式,帮助读者建立数据库应用系统基本概念、掌握数据库设计与应用开发实践的基本技巧,从而能开发实际的数据库应用系统。,1.1 数据库应用系统开发过程,1.1.1 需求分析,在软件工程中,需求分析指在建立一个新的或改变一个现存的计算机系统时描写新系统的目的、范
3、围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师要确定用户的需求,这样才能够分析和寻求新系统的解决方法。假如在需求分析时未能正确地认识到用户需要,那么最后的软件实际上不可能满足用户的需要,或者软件无法在规定的时间里完工。,1.1 数据库应用系统开发过程,以图书管理系统开发为例,假设在需求分析阶段没有考虑读者需要按类别进行管理,那么,在数据库设计阶段就不会设计读者类别这种实体;在程序设计阶段,编写读者管理模块时,也不会涉及读者类别这种对象。如果在编码完成后,发现需要设计读者类别这种对象,那么不仅要修改数据库的结构,编写独立的读者类别管理模
4、块,还需要修改读者管理等模块的代码。,1.1 数据库应用系统开发过程,通过具体的需求分析,图书管理系统应具备的功能如下: 合理的用户权限管理。用户总体分为三类:读者用户、图书管理员和系统管理员,不同用户具有各自相应的操作权限。 批量增加用户功能。 批量图书上架,下架功能。 书籍借阅和归还登记。 高效的图书搜索功能。 书籍与用户信息分类管理。 数据备份及恢复功能。,1.1 数据库应用系统开发过程,对于大型的开发项目,需求分析的结果应当以需求说明书的形式保存下来,作为接下来系统开发的基础和依据。需求说明书除了必要的文字说明,还应当有直观的流程图表。以下是数据库系统开发过程中常见的流程图表:业务流程
5、图分析用户活动时产生。系统范围图用于确定系统范围。数据流图用于分析用户活动涉及的数据。数据字典详细描述系统中的全部数据。,1.1 数据库应用系统开发过程,1.业务流程图业务流程图是一种描述系统内各用户、单位之间业务关系、作业顺序和管理信息流向的图表,它的作用是帮助了解用户当前的业务活动和职能,理清其处理流程,把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚。业务流程图描述的是完整的业务流程,以业务处理过程为中心,一般没有数据的概念。以图书管理系统中的借阅过程为例,在画业务流程图之前,要对现行系统进行详细调查,并写出现行系统业务流程总结:借阅审核:读取读者借书证信息,验证借书证是否可
6、用。图书查询:查询图书表中当前要借阅的图书信息,验证当前图书是否可借。借阅登记:如图书可借,则管理员登记读者资料及借阅图书,完成借阅过程。,1.1 数据库应用系统开发过程,图1-1 借阅业务流程图,1.1 数据库应用系统开发过程,实际情况中,一个业务流程中往往包含了更多的处理过程,流程图更复杂。前期一个完整的业务流程图对数据库系统设计具有重要的意义:制作流程图的过程是全面了解业务处理的过程,是进行系统分析的依据。流程图是系统分析员、管理人员、业务操作人员相互交流思想的工具。系统分析员可直接在业务流程图上画出可以实现计算机处理的部分。用它可分析出业务流程的合理性。,1.1 数据库应用系统开发过程
7、,2.系统范围图 在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。,1.1 数据库应用系统开发过程,3.数据流图深入分析用户的业务处理,以数据流图(Data Flow Diagram,简称DFD)的形式表示出数据的流向和对数据所进行的加工。数据流图有四个基本成分:数据流、加工或处理、文件、外部实体。数据流图可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。数据流是一组数据。在数据流图中数据流用带箭头的线表示,在旁边标注着数据流名称。在数据流图中应该描绘所有可能的数据流向,而不应该描绘
8、出现某个数据流的条件。加工或处理在数据流图中用圆圈表示,圆圈内写有加工或处理名称。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。,1.1 数据库应用系统开发过程,(1)分层数据流图分层数据流图根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图从零开始编号。 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。 中层数据流图是对顶层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。 底层数据流图是指其
9、加工不能再分解的数据流图,其加工成为“原子加工”。,1.1 数据库应用系统开发过程,(2)数据流图的一般画法: 确定系统的输入输出 由于系统究竟包括哪些功能可能一时难以弄清楚,可以使其范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。 由外向里画顶层数据流图 首先,将系统的输入数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工;接着,给各个加工命名;然后,给加工之间的数据命名;最后,给文件命名。 自顶向下逐层分解,绘出分层数据流图,1.1 数据库应用系
10、统开发过程,对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。以图书管理系统为例,说明画数据流图的过程。首先根据系统的输入输出,先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。顶层数据流图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。图书管理系统顶层数据流图见图1-2所示,包含了一个名为“图书管理系统”的加工,“读者”与“图书管理员”作为数据的源点和终点,并且包含了多条数据流。,图1-2 顶层数据流图,1.1 数据库应用系统开发过程,然
11、后根据系统内部功能,画下层数据流图。不再分解的加工称为基本加工。一般采用自顶向下,由外向内的原则将层号从0开始编号。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。 图书管理系统0层数据流图见图1-3所示,它包含4个子系统和两个数据存储。,1.1 数据库应用系统开发过程,图1-3 0层数据流图,1.1 数据库应用系统开发过程,0层数据流图画好以后,继续对0层的加工进行分解,得到1层数据流图。1层数据流图加工的编号用1.1、1.2、1.3、2.1、2.2来分别表示各个0层加工的子加工。 图书管理系统1层数据流图中的查询系统和借阅系统见图1-4和图1-5所示
12、。,图1-4 查询系统1层数据流图,1.1 数据库应用系统开发过程,图1-5 借阅系统1层数据流图,1.1 数据库应用系统开发过程,查询系统可以分解为“查询信息识别”、“分类查询”、“图书信息查询”和“关键字查询”。 借阅系统分解为“读者验证”、“欠费结算”和“图书确认”三个加工。接着再进行第2、3层的分解,层数的多少视系统复杂程度而定。实际的系统功能会更加复杂,数据流图的加工数量会比较多,以上只举了一些典型功能来讲解数据流图的画法及过程。,1.1 数据库应用系统开发过程,命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。画数据流而不是控制流。数据流反映系统“做什么”,不反映
13、“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父层数据流图,直接下层图为子数据流图,子数据流图及其所有的加工都应编号。,1.1 数据库应用系统开发过程,父层数据流图与子数据流图的平衡。子图的输入输出数据流同父层数据流图相应加工的输入输出数据流必须一致。局部数据存储。当某层数据流图中的数据存储不是父层数据流图中相应
14、加工的外部接口,而只是该图中某些加工之间的数据接口时,称这些数据存储为局部数据存储。提高数据流图的易懂性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。,1.1 数据库应用系统开发过程,4. 数据字典 仅仅有数据流图并不能构成需求说明书,数据流图只表示出系统由哪几部分组成和各个部分之间的关系,并没有说明各个成分的含义。数据字典(Data Dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录,是对系统中数据的详尽描述,是各类数据属性的清单,它的功能是存储和检索各种数据描述(元数据Metadata
15、),数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要地位。数据字典有主动和被动之分:主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典;被动数据字典是指修改时必须手工更新其内容的数据字典。,1.1 数据库应用系统开发过程,数据词典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。(1)数据项:数据项是最基本的数据元素,是有意义的最小数据单元,在数据字典中,定义数据项的描述包括:数据项的名称、编号、别名、说明、长度、取值范围、与其他数据项的逻辑关系等。表1-1用以表示读者数据项。,1.1 数据库应用系统开发过程,(2) 数据结构
16、:数据项是不能分解的数据,而数据结构是可以进一步分解的数据包,是若干数据项有意义的集合。一个数据结构可以由若干个数据元素组成,也可以由若干个数据结构组成,还可以由若干个数据元素和数据结构组成。数据结构的描述一般有: 数据结构名,编号、说明、组成等。表1-2用以表示读者信息数据结构。,1.1 数据库应用系统开发过程,(3)数据流:数据流由一个或一组固定的数据项(即数据结构)组成。定义数据流时,不仅要说明数据流的名称、编号、说明、组成等,还应指明它的来源、去向和数据流量等,其中“来源”是说明该数据流来自哪个过程,“去向”是说明该数据流将到那个过程去。“流量”是指在单位时间(每天、每周、每月等)里的传输次数,如果需要,还可以有“高峰期流量”,指明在高峰时期的数据流量。表1-3表示读者注册申请的数据流。,