第 5章 数据库设计学习要点
1、数据库设计方法及步骤
2、调查、分析用户活动,分析系统数据
3、建立局部、总体概念结构
4,E-R图向关系模型的转换
5、物理设计的要求和内容
6、数据载入、数据库的运行及维护
7、安全性、完整性、并发控制和恢复第 5章 数据库设计
5.1 设计过程概述
5.2 需求分析
5.3 概念结构设计
5.4 逻辑结构设计
5.5 数据库物理设计
5.6 数据库的实施和维护
5.7 数据库保护习题及参考答案第 5章 数据库设计
5.1 设计过程概述
5.1.1 数据库和信息系统对使用者来说,信息系统是提供信息,辅助人们对环境进行控制和决策的系统 。 数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,提供存储,
维护,检索数据的功能,使信息系统可以方便,
及时,准确地从数据库中获得所需的信息 。
5.1.1 数据库和信息系统一个信息系统的各个部分能否紧密地结合在一起以及如何结合,关键在数据库 。 因此只有对数据库进行合理地逻辑设计和有效地物理设计才能开发出完善而高效的信息系统 。 所以数据库设计是信息系统开发和建设的重要组成部分 。
5.1.2 数据库设计方法简述人们经过探索提出了各种数据库设计方法,
这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法 。 基于 E-R模型的数据库设计方法,基于 3NF( 第三范式 ) 的设计方法,基于抽象语法规范的设计方法等等,是在数据库设计的不同阶段上支持实现的具体技术和方法,是常用的规范设计法 。
5.1.3 数据库设计步骤按规范设计方法可将数据库设计分为以下阶段:
1,需求分析阶段
2,概念设计阶段
3,逻辑设计阶段
4,物理设计阶段
5,数据库实施阶段
6,数据库运行,维护阶段
5.2 需求分析需求收集和分析是数据库设计的第一个阶段 。 该阶段收集和分析用户对系统的要求,确定系统的工作范围,并产生,用户活动图,和,数据流程图,。
准确而无遗漏地弄清用户需求,是数据库设计取得成功的重要前提 。 从数据库设计的角度考虑,需求分析阶段的目标是:对现实世界要处理的对象 ( 组织,
部门,企业等 ) 进行详细调查,在了解原系统的概况确定新系统功能的过程中,收集支持系统目标的基础数据及其处理 。
5.2 需求分析调查的重点是,数据,和,处理,。 通过调查要从中获得每个用户对数据库的如下要求:
( 1) 信息要求 。
( 2) 处理要求 。
( 3) 安全性和完整性的要求 。
5.2 需求分析获得用户对数据库要求的具体做法是:
( 1) 了解组织机构情况 。
( 2) 了解各部门的业务活动情况 。
( 3) 确定新系统的边界 。
5.2.1 调查,分析用户活动一个大的用户通常包含许多职能部门 。 在收集和分析用户的各种业务活动时,要从数据管理的角度出发,按部门查清数据的处理过程和流向 。 为了便于研究问题,通常把分析的结果画成,用户活动图,。
5.2.1 调查,分析用户活动
5.2.2 确定系统边界画出用户活动图后,要区分哪些活动由计算机来完成,哪些活动仍由人工处理,确定系统的处理范围 。 通常都直接在用户活动图上标出系统的边界 。 虚线部分表明,编制零件生产计划和编制材料订货计划两项工作不属于系统处理范围,仍由人工完成 。
5.2.3 分析系统数据按照用户活动图包含的每一种应用,弄清所涉及数据的性质,流向和所需的处理 。 分析要逐个应用分别进行,并深入到每一个数据项 。
在这一步结束时,要产生各个应用的,数据流程图,和,数据字典,,前者表明数据的流向与数据接受加工的过程,后者是进行详细的数据收集和数据分析所获得的主要结果 。
5.2.3 分析系统数据数据字典是各类数据描述的集合,它通常包括以下五个部分:
数据项,是数据的最小单位 。
数据结构,是若干数据项有意义的集合 。
数据流,可以是数据项,也可以是数据结构 。
数据存储,处理过程中存取的数据 。
处理过程 。
5.2.3 分析系统数据图 5-3 数据流程图
5.3 概念结构设计概念结构独立于数据库逻辑结构,独立于支持数据库的 DBMS,其主要特点是:
( 1) 能充分地反映现实世界,包括实体和实体之间的联系,能满足用户对数据处理的要求,是现实世界的一个真实模型 。
( 2) 易于理解 。
( 3) 易于更改 。 当现实世界改变时容易修改和扩充 。
( 4) 易于向关系,网状或层次等各种数据模型转换 。
5.3.1 建立局部概念结构按照需求分析阶段得到的部门用户活动图和数据流程图,就可建立起对应于每一部门 ( 或应用 ) 的局部 E-R模型 。 这里最关键的步骤是确定实体和属性,。
前者应有,产品名,和,价格,两个属性,后者有,材料名,,,价格,与,库存量,三个属性 。 实体确定后,再确定实体之间的联系 。 在本例中,,产品,与,材料,是通过,使用,互相联系的,故可把
,使用,定为联系,而,用量,是它的属性,把这些用 E-R图来表示,就可得到供应部门的局部 E-R模型 。
5.3.1 建立局部概念结构图 5-4 供应部门的 E-R模型图 5-5 生产部门的 E-R模型
5.3.1 建立局部概念结构图 5-6 修改后的供应部门的 E-R模型
5.3.2 建立总体概念结构综合各个部门 ( 或应用 ) 的局部概念结构 ( 亦称为分 E-R模型 ) 就可得到系统的总体概念结构 ( 总 E-R模型 ) 。
图 5-7 供应 -生产综合 E-R模型
5.3.2 建立总体概念结构图 5-8 改进后的供应 -生产综合 E-R模型
5.4 逻辑结构设计概念结构是独立于任何一种数据模型的信息结构,而逻辑结构设计的任务是把概念结构转换为与选用的 DBMS所支持的数据模型相符合的过程 。 通常,逻辑结构设计包括初步设计和优化设计两个步骤 。 所谓初步设计,就是按照 E-R图向数据模型转换的规则将已经建立的概念结构转换为 DBMS所支持的数据模型 。 所谓优化设计,就是从提高系统效率出发,对结构进行修改,调整和改良 。
5.4.1 E-R图向关系模型的转换关系模型的特点,就是把实体和联系都表示为关系 。
( 1) 把每一实体转换为一个关系首先要分析实体的属性,从中找出主键和属性间的依赖关系,然后将实体用关系 R〈 U,F〉 或其简化形式来表示 。 例如图 5-9的 E— R模型中有三个实体,可分别转换成以下三个关系:
实体名:产品对应关系:产品 ( 产品名,价格,主要性能 )
实体名:零件对应关系:零件 ( 零件号,零件名 )
5.4.1 E-R图向关系模型的转换实体名:材料对应关系:材料 ( 材料名,价格,库存量 )
以上是用简化的形式表示的,也可以写成标准的形式,例如:
实体名:产品对应关系,R=产品
U= { 产品名,价格,主要性能 }
F= { 产品名 → 价格,产品名 → 主要性能 }
5.4.1 E-R图向关系模型的转换
( 2) 把每一个联系也转换为关系在这类关系的属性集 U中,一般应包含由它联系的各个实体中的主键,以及它本身的属性,以图 5-9中的联系,组成,为例,其转换步骤为:
联系名:组成所联系的实体及其主键:
产品 (主键为,产品名,)
零件 (主键为,零件号,)
5.4.1 E-R图向关系模型的转换对应的新关系:
R=产品零件一览表
U= { 产品名,零件号,零件数量 }
F= { (产品名,零件号 )→ 零件数量 }
用类似的方法,可将图中另一联系,消耗,转换成以下对应关系:
零件用料表 ( 零件号,材料号,定额 )
5.4.2 不同情况处理示例在实际的 E-R图中,实体与联系有各种不同的情况,转换时需要按实际情况灵活处理 。
【 例 5-1】 不带属性的联系 。
5.4.2 不同情况处理示例
【 例 5-2】 带属性的一对多联系 。
5.4.2 不同情况处理示例
【 例 5-3】 没有对应关系的联系 。
【 例 5-4】 存在于三个实体之间的联系 。
【 例 5-5】 单元关系的处理 。
5.4.3 性能预测和优化初步逻辑设计完成后,应对所得到的逻辑结构进行优化 。
优化是在性能预测的基础上进行的 。 下面介绍一种常用的预测方法,即 LRAA( Logical
Record Access Approach) 方法 。
( 1) LRAA方法
LRAA方法是用 LRA,TV和 SS三项指标作为衡量数据库性能的标准 。
5.4.3 性能预测和优化
LRA( Logical Record Access) 指单位时间内所访问的逻辑记录个数 。
TV( Transport Volume) 是指单位时间内传输的数据量字节数 。
SS( Storage Space) 是指存储空间的占用量 。
经过计算之后,如果 LRA,TV和 SS都比较小,即所谓性能,好,。
5.4.3 性能预测和优化由于数据库的逻辑结构与物理结构存在着差别,
LRA,TV和 SS这三项指标并不能精确地估计数据库的物理性能,只能用来比较几个逻辑模式的相对性能
( 假定这几个模式的存储结构,存取方法相同 ) 。 它们的值越小,则认为这个模式的性能越好 。
在用三项指标预测系统性能时,首先应注意日平均 LRA与 TV值特别大的那些应用 。 因为降低了这些应用的指标,整个系统的指标才会明显下降 。 我们把这样的应用称为,主应用,。 结构的优化围绕主应用进行才能取得较好的效果 。
5.4.3 性能预测和优化
( 2) 模式的优化优化的目标就是尽可能减小系统的上述三项指标 。
一种最常用,最重要的优化方法,就是对记录进行垂直分割 ( 在关系模式中称为关系分解 ) 。 规范化理论和关系分解方法为进行垂直分割提供了指导原则 。
5.4.3 性能预测和优化
[例 5-6] 设有记载职工情况的关系
EMP(工号,姓名,性别,年龄,职务,工资,工龄,住址,电话 )
如果经常查询的仅是前六项,后三项使用较少,就可将该关系分解成两个关系,即
EMP (工号,姓名,性别,年龄,职务,工资 )
EMP (工号,工龄,住址,电话 )
以便减小单位时间内的 TV,凡在同一记录中,同时存在经常查询项和非经常查询项,都可采用这种分解方法。
5.4.3 性能预测和优化
[例 5-7] 现有记载飞行员情况的关系:
PILOT(工号,姓名,性别,年龄,技术等级,可驾机型,
飞行年数 )
若每一飞行员都能驾驶多种飞机,则在关系中每一飞行员将占有多个记录,分别记载他可驾驶的机型及在该机型上的飞行年数 。 在姓名,性别,年龄等字段上将出现许多冗余信息 。 优化的方法,是将这一关系分解为以下两个关系:
PILOT1 (工号,姓名,性别,年龄,技术等级 )
PILOT2 (工号,可驾机型,飞行年数 )
以减小 TV和 SV。
5.4.3 性能预测和优化
[例 5-8] 某大学记载学生情况的关系,包括本科生,硕士生与博士生三类学生 。 如果多数查询一次只涉及其中的一类学生,就应把整个学生关系,水平分割,为本科生,硕士生,博士生三个关系,以便减小整个系统的 LRA。
以上仅举了少量的例子 。 读者可举一反三,在实际应用中灵活处理 。 还需指出,LRA,TV与 SS三项指标是相互制约的,
有时为了减小 TV,可能增大 LRA;减小了 LRA,又可能增大 SS,
优化时必须按具体情况权衡,然后作出选择 。
还应指出,垂直分割和水平分割与本书前面所说的投影和选取貌似相同,其实这是两回事,分割是把一个关系分割成数个关系,借以减小查询时的工作量,而投影与选取并不改变关系的结构,当然也不会降低三项指标 。 前者说的是优化设计,后者说的是关系运算 。
5.5 数据库物理设计对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程称为数据库的物理设计 。 所谓数据库的物理结构主要指数据库在物理设备上的存储结构和存取方法 。 它完全依赖于给定的计算机系统 。
5.5 数据库物理设计物理设计可分两步 。 第一步是确定数据库的物理结构,然后对物理结构进行评价 。 评价的重点是时间和空间效率 。 如果评价结果满足原设计要求则转向物理实施,否则,就重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型 。
5.5.1 物理设计的要求和内容为了进行物理设计,设计人员必须了解以下几方面的问题:
( 1) 全面了解给定的 DBMS的功能 。
( 2) 了解应用环境 。
( 3) 了解外存设备的特性 。
5.5.1 物理设计的要求和内容物理设计的内容主要包括:
( 1) 确定数据的存储结构 。
( 2) 存取路径的选择和调整 。
( 3) 确定数据存放位置 。
( 4) 确定存储分布 。
5.5.2 评价物理设计过程需要对时间,空间效率,维护代价和各种用户要求进行权衡,其结果可以产生多种方案 。 在实施数据库前对这些方案进行细致地评价,以选择一个较优的方案是十分必要的 。
5.6 数据库的实施和维护对数据库的物理设计初步评价完成后,就可建立数据库了 。 数据库的实施相应于软件工程的编码,调试阶段 。 设计人员运用 DBMS提供的数据定义语言将逻辑设计和物理设计的结果严格地描述出来,成为 DBMS可接受的源代码 。 经过调试产生目标模式,然后组织数据入库 。 组织数据入库是数据库实施阶段最主要的工作 。
5.6.1 数据库数据的载入由于需存入数据库的数据量一般都很大,并且数据来源于该组织的各个部门,分散在各种数据文件原始凭证中 。 数据的结构和格式通常不符合数据库的要求,必须进行转换 。 因此组织数据入库是一件耗费大量人力,物力的工作 。
目前的 DBMS没有提供通用的软件来完成数据的转换工作 。 其困难在于应用环境千差万别,源数据也各不相同,因而不存在通用的转换规则 。
5.6.1 数据库数据的载入数据的转换和组织对于小系统可以用人工方法完成 。 但是,人工转换效率低,质量差,一般来说,应设计一个数据输入子系统让计算机完成这个工作 。 输入子系统的主要功能是:原始数据的输入,抽取,校验,分类,转换和综合,最终把数据组织成符合数据库结构的形式,然后把数据存入数据库中 。 数据的转换,分类和综合常常要经过多次才能完成,因而输入子系统的设计和实施亦是比较复杂的,要编写许多应用程序 。 输入子系统的设计不能等物理设计完成后才开始,应该和数据库设计工作并行 。
5.6.2 数据库的试运行在完成上述工作之后,便可进入数据库的试运行阶段,或者称联合调试阶段 。 这阶段的主要工作是:
( 1) 实际运行应用程序,执行对数据库的各种操作,测试应用程序的功能 。
5.6.2 数据库的试运行
( 2) 测量系统的性能指标,分析是否符合设计目标 。 虽然已在物理设计过程中进行了性能预测,但是仅仅估价是粗糙的并可能失真,
必须在试运行阶段进行实际测量和评价 。 有些参数的最佳值往往是经过运行调试后才找到的 。
如果实际结果不符合设计目标,则需返回物理设计阶段,调整物理结构,修改参数 。 有时,
也许还需要返回逻辑设计阶段,调整逻辑结构 。
5.6.3 数据库的运行和维护数据库投入运行标志着开发任务的基本完成和维护工作的开始,但并不意味着设计过程已经结束 。 任何数据库只要它存在一天,对它的设计就得不断地进行评价,调整,修改甚至完全改变 。 因此数据库的维护不仅是维护其正常活动而且是设计工作的继续和提高 。
5.6.3 数据库的运行和维护维护阶段的主要工作是:
( 1) 数据库的安全性,完整性控制及系统的转储和恢复 。
( 2) 性能的监督,分析和改进 。
( 3) 数据库的重组织和重构造 。
5.7 数据库保护为了保证数据库的安全可靠和正确有效,
DBMS必须提供统一的数据库保护功能 。 数据库保护也称数据控制,主要包括数据的安全性,
完整性,并发控制和数据库恢复 。
5.7.1 安全性安全性是评价数据库系统的一个重要指标,
它标志程序和数据等信息的安全程度 。 一个完善的数据库系统应防止非法用户访问或使用数据库系 统中的程序和数据 。 数据安全性
( Data Security) 指数据库的数据不被破坏和泄漏以及不被非法修改 。
5.7.1 安全性
( 1) 用户标识和鉴定系统提供一定的方式让用户标识自己的名字或身份,系统进行核实,通过鉴定后才提供机器使用权 。
5.7.1 安全性常用的方法有:
① 用一个用户名或者用户标识符来标明用户身份 。
② 口令 ( Password) 。 为了进一步核实用户,
系统常常要求用户输入口令 。
③ 系统提供一个随机数,用户根据事先约定好的某一过程或者函数进行计算,系统根据用户计算结果是否正确来进一步确定用户身份 。
5.7.1 安全性
( 2) 存取控制获得上机权的用户不一定存取数据库中的任何数据 。 对用户要分类,对不同的用户授予不同的存取权限,系统要执行存取控制 。 用户权限是指不同的用户对不同的数据对象允许执行的不同类型操作的权限 。 一般地,对不同的用户提供数据库的不同的子集,对数据库的操作类型也是可以不一样的 。
5.7.1 安全性
① 一般数据库都有子模式一级,一个用户只能跟自己有关的子模式所描述的数据打交道,只能存取跟自己有关的子模式中所描述的数据 。
② 还要规定允许操作的类型 。 对自己子模式中定义的数据,还要按照规定的操作类型进行操作 。
系统只执行合法操作,拒绝执行非法操作 。 操作类型有多种,如检索,插入,删除,修改等 。
③ 还可以规定数据项值的存取限制,只允许某用户存取某一范围的值 。
5.7.2 完整性完整性是指数据库中的数据的正确性和相容性,
它反映了现实世界中实体的本来面貌 。 数据库系统要提供一种功能来保护数据的完整性 。 系统用一定的机制来检查数据库中的数据是否满足完整性约束条件 。
完整性约束条件作为模式的一部分来定义 。
数据库管理系统要执行完整性约束,完整性约束有数据值的完整性约束,结构上的完整性约束等 。
5.7.3 并发控制数据库是一个共享资源,为多用户服务,可以有多个用户同时操作和使用 。 在多用户环境下不止一个程序同时运行 。 如果使用户的应用程序一个一个地串行执行,就使数据库系统大量时间处于闲置状态,大大降低了数据库系统的效率 。 为了充分利用数据库资源,提高数据库系统效率,应当把数据库系统设计变成能使多个用户同时运行应用程序并行存取同一个数据的情况 。 如果对数据库的并发操作不加控制,就会产生存取不正确的数据,破坏数据库的一致性 。 因此,
数据库应提供并发控制功能 。
5.7.4 恢复在数据库系统中,不但要有各种各样的检验和控制,以减少出错的可能性,还得有相当的措施来实现出错后的恢复 。 因为即使有种种检验和控制措施,出错仍然是难免的 。 因此,
系统必须有恢复功能 。
数据库恢复的基本原理是,冗余,方法,
就是说,根据冗余把存储在系统另外地方的信息来重建数据库中受破坏的不正确部分 。
5.7.4 恢复其方法有:
( 1) 周期性地把整个数据库复制 ( 或转存 ) 到存档存储器上 。
( 2) 每次变更数据库时,在叫做运行记载 ( Log)
的特殊的数据集中写入一个记录,在这个记录中包含变更项目的旧值和新值 。
( 3)如果出现故障,或装入最新的存档备份,或利用运行记载撤销所有不可靠的变更到某一正确状态。
习 题
1,选择题
( 1) __________是提供信息,辅助人们对环境进行控制与决策的系统 。
A,软件系统 B,关系系统 C,程序系统 D,信息系统
( 2) 按照一定的设计规程,用 __________设计数据库是目前技术条件下最实用的方法 。
A,程序化方法 B,工程化方法 C,规范设计法 D,结构化方法
( 3) __________是评价数据库系统的一个重要指标,它标志程序和数据等信息的安全程度 。
A.统一性 B,可靠性 C,可维护性 D,安全性习 题
( 4) __________是指数据库中正确性和相容性,它反映了现实世界中实体的本来面貌 。
A,可靠性 B,安全性 C,完整性 D,可维护性
( 5) __________是以正确的方式执行并发操作,避免数据库的不一致性,使用户事务的执行不受其他事务的干扰 。
A,并发控制 B,恢复 C,安全性 D,物理设计习 题
2,填空题
( 1) __________是信息系统的核心和基础,使信息系统可以方便,及时,
准确地获得所需信息 。
( 2) __________是信息系统开发和建设的重要组成部分 。
( 3) 数据库设计的不同阶段,支持实现的具体规范设计方法有三种,它们是 __________,__________和 __________。
( 4) __________的基本思想是过程迭代和逐步求精 。
( 5) 按规范化设计方法将数据库设计分为 __________,__________、
__________,__________,__________和 __________等六个阶段 。
( 6) 对于一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程称为数据库的 ________。
习 题
( 7) 调查的重点是 __________和 __________。
( 8) 用户对数据库的要求有 __________,__________和
__________等三个主要要求 。
( 9) 概念结构设计通常可分为 __________和 __________
两个步骤 。
( 10) __________的任务是把概念结构转化为可选用的
DBMS所支持的数据模型相符合的过程 。
( 11) 关系模型的特点是把 __________和 __________都表示为关系 。
( 12 ) 预 测 方 法 是 以 __________,__________ 和
__________等三项指标作为衡量数据库性能的标准 。
参考答案
1( 1) D( 2) B( 3) D( 4) C( 5) A
2( 1)数据库 ( 2)数据库设计
( 3)基于 E-R模型的数据库设计方法基于 3NF的设计方法基于抽象语法规范的设计方法
( 4)规范设计法
( 5)需求分析阶段、概念设计阶段逻辑设计阶段、物理设计阶段数据库实施阶段、数据库运行、维护阶段参考答案
( 6)需求收集、分析
( 7),数据,,处理,
( 8)信息需求、处理要求、安全性和完整性的要求
( 9)局部结构设计、总体结构设计
( 10)逻辑结构设计
( 11)实体、联系( 12) LRA,TV,SS