4.4 数据库设计与管理

【考点1】数据库设计概述

(1)数据库设计基本任务

在一定平台制约下,根据用户对象的信息需求、处理需求和数据库的支持环境设计出性能良好的数据模式。

(2)数据库设计的方法

面向数据的方法:以信息需求为主,兼顾处理需求,已成为主流。

面向过程的方法:以处理需求为主,兼顾信息需求

(3)数据库设计的生命周期法

将整个数据库应用系统的开发分解成目标独立的若干阶段。它们分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。

【真题演练】

数据库应用系统中的核心问题是(  )。[2013年3月真题]

A.数据库设计

B.数据库系统设计

C.数据库维护

D.数据库管理员培训

【答案】A

【解析】数据库应用系统是在数据库管理系统(DBMS)支持下建立的计算机应用系统,其核心问题是数据库设计。答案选择A选项。

【考点2】数据库设计的需求分析

(1)需求分析阶段的主要任务

通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅按当前应用需求来设计数据库。

(2)调查的重点是“数据”和“处理”,通过调查要从中获得每个用户对数据库的如下要求:

信息要求

指用户需要从数据库中获得信息的内容与性质。

处理要求

指用户要完成什么处理功能,对处理的响应时间有何要求,处理的方式是批处理还是联机处理。

安全性和完整性的要求

(3)分析和表达用户需求常采用结构化分析方法和面向对象的方法

结构化分析方法

a.用自顶向下、逐层分解的方式分析系统,用数据流图表达了数据和处理过程的关系。

b.数据字典是各类数据描述的集合,它通常包括5个部分:

第一,数据项:是数据的最小单位;

第二,数据结构:是若干数据项有意义的集合;

第三,数据流:可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;

第四,数据存储:处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;

第五,处理过程。

(4)数据库设计在实际开展时应注意以下几点

在需求分析阶段一个重要而困难的任务是收集将来应用所涉及的数据。

必须强调用户的参与,设计人员应该和用户充分合作进行设计,并对设计工作的最后结果承担共同的责任。

【考点3】数据库概念设计

(1)数据库概念设计概述

数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。数据库概念设计的方法有以下两种:

集中式模式设计法

a.根据需求由一个统一机构或人员设计一个综合的全局模式。

b.这种方法设计简单方便,它强调统一与一致,适用于小型或并不复杂的单位或部门,而对大型的或语义关联复杂的单位则并不适合。

视图集成设计法

a.将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成。需对视图作修正,最终形成全局模式。

b.是一种由分散到集中的方法,它的设计过程复杂但它能较好地反映需求,适合于大型与复杂的单位,避免设计的粗糙与不周到,目前此种方法使用较多。

(2)数据库概念设计的过程

选择局部应用

根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,以这一层次的数据流图为出发点,设计分E-R图。

视图设计

视图设计一般有三种设计次序,它们是:

a.自顶向下

先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。

b.由底向上

先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。

c.由内向外

先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其他对象。

在进行设计时,实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。但是,在给定的应用环境中,属性必须是不可分的数据项,属性不能与其他实体发生联系,联系只发生在实体之间。

视图集成

a.视图集成的实质是将所有的局部视图统一与合并成一个完整的数据模式。在进行视图集成时,最重要的工作便是解决局部设计中的冲突。

b.在集成过程中常见冲突有下列几种:

第一,命名冲突

有同名异义和同义异名两种。

第二,概念冲突

同一概念在一处为实体而在另一处为属性或联系。

第三,域冲突

相同的属性在不同视图中有不同的域。

第四,约束冲突

不同的视图可能有不同的约束。

(3)视图合并生产E-R图必须满足以下条件,避免数据冗余和联系冗余

整体概念结构内部必须具有一致性,即不能存在互相矛盾的表达;

整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系;

整体概念结构能满足需求分析阶段所确定的所有要求;

整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。

【考点4】数据库的逻辑设计

(1)从E-R图向关系模式转换

数据库的逻辑设计主要工作是将E-R图转换成指定RDBMS中的关系模式。E-R模型与关系间的转换如表4-2所示。

表4-2 E-R模型与关系间的比较表

由E-R图转换成关系模式时会遇到的一些转换问题。

a.命名与属性域的处理

关系模式中的命名可以用E-R图中原有命名,也可另行命名,但是应尽量避免重名,RDBMS一般只支持有限种数据类型而E-R中的属性域则不受此限制。

b.非原子属性处理

E-R图中允许出现非原子属性,但在关系模式中一般不允许出现非原子属性,非原子属性主要有集合型和元组型。

c.联系的转换

在一般情况下联系可用关系表示,但是在有些情况下联系可归并到相关联的实体中。

(2)逻辑模式规范化及调整、实现

规范化

a.关系数据库设计的关键是关系数据库模式的设计,即确定构造几个关系模式及每一模式各自包含的属性,将相互关联的模式组合成合适的关系模型。其设计必须在关系数据库规范化理论的指导下进行。设计不良的关系模式会有数据冗余、插入异常、删除异常及修改异常等问题。

b.三种范式

第一,第一范式

每个属性都已不能再分为简单项。

第二,第二范式

如果某个关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称其为第二范式模式。第二范式消除了非主属性对主键的部分依赖。

第三,第三范式

如果关系模式R是第二范式,并非每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式,大部分应用中都将关系分解为第三范式。

关系模式进行规范化的目的是使关系结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新等操作。关系模式进行规范化的原则是:遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。规范化的实质就是概念的单一化。

RDBMS

对逻辑模式进行调整以满足RDBMS的性能、存储空间等要求,同时对模式做适应RDBMS限制条件的修改,它们包括如下内容:

a.调整性能以减少连接运算;

b.调整关系大小,使每个关系数量保持在合理水平,从而可以提高存取效率;

c.尽量采用快照(snapshot),因在应用中经常仅需某固定时刻的值,此时可用快照将某时刻值固定,并定期更换,此种方式可以显著提高查询速度。

(3)关系视图设计(外模式设计)

关系视图的作用大致有如下几点:

提供数据逻辑独立性:使应用程序不受逻辑模式变化的影响。

能适应用户对数据的不同需求。

有一定数据保密功能。

【真题演练】

关系数据库管理系统所管理的关系是(  )。[2015年3月真题]

A.若干个二维表

B.一个DBF文件

C.一个DBC文件

D.若干个DBC文件

【答案】A

【解析】在关系数库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。答案选择A选项。

【考点5】数据库的物理设计

数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。

【考点6】数据库管理

数据库管理一般包含以下内容:

(1)数据库的建立

数据库的建立包括两部分内容,数据模式的建立及数据加载。

数据模式建立

由DBA负责建立,DBA利用RDBMS中的DDL语言定义数据库名,定义表及相应属性,定义主关键字、索引、集簇、完整性约束、用户访问权限,申请空间资源,定义分区等,此外还需定义视图。

数据加载

在数据模式定义后即可加载数据,DBA可以编制加载程序将外界数据加载至数据模式内,从而完成数据库的建立。

(2)数据库的调整

在数据库建立并经一段时间运行后往往会产生一些不适应的情况,此时需要对其作调整,数据库的调整一般由DBA完成,调整包括下面一些内容:

调整关系模式与视图使之更能适应用户的需求;

调整索引与集簇使数据库性能与效率更佳;

调整分区、数据库缓冲区大小以及并发度使数据库物理性能更好。

(3)数据库的重组

数据库在运行一段时间后性能会下降,主要是不断修改、删除、插入造成的。由于不断删除造成盘区内废块增多,影响I/O速度,导致数据库性能下降。基于这些原因需要对数据库进行重新整理,调整存储空间,这项工作叫做数据库重组。

(4)数据库安全性控制与完整性控制

数据库是一个单位的重要资源,它的安全性是极端重要的,DBA应采取措施保证数据不受非法盗用与破坏。此外,为保证数据的正确性,使录入库内的数据均能保持正确,需要有数据库的完整性控制。

(5)数据库的故障校复

一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由DBA负责执行故障恢复功能。

(6)数据库监控

DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施,如数据库死锁、对数据库的误操作等;同时还需监视数据库的性能变化,在必要时对数据库作调整。