过程论述
3.3 数据库设计
3.3.1
数据库介绍
数据库是指自描述的完整记录的集合。数据库是自描述的:它除了包含用户的源数据外,还包含关于它本身结构的描述。数据库的自描述特点,它提高了程序/数据独立性,它使得检查数据库本身就确定数据库的结构和内容成为可能。数据库包含用户数据文件和其他内容,数据库在元数据中包含关于自身的描述。另外,数据库还包含用来表示数据之间的关系和提高数据库应用的性能的索引。最后,数据库还包含关于使用数据库的应用程序的数据。
设计一个数据库需要我们耐心收集和分析数据,仔细理清数据间的关系,消除对数据库应用不利的隐患等等。在整个设计过程中,我们必须按步骤认真完成。一个数据库的设计好坏将直接影响将来基于该数据库的应用。
另外,数据库也不是独立存在的,它总是与具体的应用相关的,为具体的应用而建立的。因此在设计数据库之前我们必须明确应用的目的,在设计数据库的时候也应时刻考虑用户需求,数据库与具体应用之间是相辅相成的关系。
数据库的设计过程一般包括以下几个步骤: ⑴ 确定建立数据库的目的和收集数据
数据库设计过程的第一个阶段是确定建立数据库的目的和收集数据。通常,我们也把确定建立数据库的目的称为需求分析。需求分析的任务就是通过详细调查要处理的对象来明确用户的各种需求。并且通过调查、收集和分析信息,以了解在数据库中需要存储哪些数据,要完成什么样的数据处理功能。这一过程是数据库设计的起点,它将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
确定目的之后就需要根据目的收集有用的数据。在着手收集数据之前最重要的就是要调查用户的实际需求,然后分析与表达这些需求。调查用户需求的方法有很多,如查阅记录、访谈、开调查会、设计调查表请用户填写或回答相关问题等。其中比较有效的方法是访谈,我们可以借助一些设计合理的调查表来与用户直接交流。通过充分交流,可以了解他们平时是如何使用数据库的,以及对当前信息的要求,进而设计满足用户需求的字段,并根据设计的字段收集数据。
⑵ 建立概念模型
第21页(共38页)
航空订票系统的设计与实现
确定建立数据库的目的以及完成数据收集后,就进入数据库设计过程的第二阶段——建立概念模型。概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。这一阶段是整个数据库设计的关键。设计时,一般先根据应用的需求,画出能反映每个应用需求的E-R图,其中包括确定实体、属性和联系的类型。然后优化初始的E-R图,消除冗余和可能存在的矛盾。概念模型是队用户需求的客观反映,并不涉及具体的计算机软、硬件环境。因此,在这一阶段中我们必须将注意力集中在怎样表达出用户对信息的需求,而不考虑具体实现问题。
⑶ 建立数据模型
完成上一阶段后,我们得到了一个与具体计算机软、硬件无关的概念模型。接着我们就可以着手建立数据库模型了,这是数据库设计过程的第三个阶段。在这一阶段中我们要将概念模型中得到的E-R图转换成具体的数据模型。数据模型是表示实体与实体间的联系的模型。数据模型一般分为层次、网状、关系和面向对象模型等,主要是用于DBMS的实现。目前比较常用的是关系数据模型,我们通常将E-R图转换成关系数据模型,实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。
⑷ 实施与维护数据库
最后一个阶段是实施与维护数据库。完成数据模型的建立后,我们就必须对字段进行命名,确定字段的类型和宽度,并利用数据库管理系统或数据库语言创建数据库结构、输入数据和运行等,因此数据库的实施是数据库设计过程的“最终实现”。如果数据库运行很成功,则表明数据库设计任务基本结束,以后的重点就是数据库的维护工作,包括做好备份工作、数据库的安全性和完整性调整、改善数据库性能等。
数据库的设计在数据库应用系统的开发中占有很重要的地位。只有设计出合理的数据库,才能为建立在数据库上的应用提供方便。不过数据库的设计过程从来都不会有真正的结束,因为随着用户需求和具体应用的变化和扩大,数据库的结构也可能会随之变化。 3.3.2
系统E-R图
概念模型是对信息世界建模,所以概念模型能够方便、准确地表示出信息世界中的常用概念。概念模型的表示方法很多,其中最为著名最为常用的是P.P.S.Chen于
第22页(共38页)
过程论述
1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。
E-R模型的关键元素是实体、属性和联系。实体是可以从用户的工作环境中标识出的事物,是用户想要跟踪的某个事物。实体在E-R图中,用矩形表示,矩形框内写明实体名。实体具有属性,有时也称作性质,是用来描述实体的特征的。属性可以是组合的或者多值的。在E-R图中,属性用椭圆形表示,并用无向边将其与相应的实体连接起来。实体可以通过联系相互关联。在一般的联系中,使用二元联系居多,二元联系主要有三种类型,1:1,1:n,m:n。在1:1(读做“1对1”)联系中,一种类型的单个实体实例与另一个类型的单个实体实例关联。在1:n(读做“1对N”或者“1对多”)联系中,一个类型的单个实体实例与另一个类型的多个实体实例相关联。在m:n(读做“N对M”或者“多对多”)联系中,一个类型的单个实例与另一个类型的多个实体实例相关联,同时地,后一类型的单个实体实例与前一类型的多个实体实例相关联。在E-R图中,联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或者m:n)。
在本系统中,主要有以下的实体:旅客、航班信息等。 其中旅客实体E-R图
姓名 证件 证件号 航班号 座舱类型 保险 客户号 机票价格 旅客 图3.3.2.1 旅客实体E-R图
第23页(共38页)
航空订票系统的设计与实现
航班信息E-R图
机型 出发时间 到达时间 商务舱数 头等舱数 经济舱数
航班信息 图3.3.2.2 航班信息E-R图
航班号 餐饮
总体E-R图
机票预定管理系统主要以机票为核心,这个系统中各个实体之间的关系,基本上都是以机票为基础的。一位旅客可以订票多个机票,一个机票只能为一个旅客预定,一个航班有多个机票,一个机票对应一个航班。
根据这些信息,由此得到了机票预定管理系统的实体及其联系如图所示:
1 旅客 预定 M 机票 M 飞行 1 航班
图3.3.2.3 总体E-R图
第24页(共38页)