首页 理论教育数据库物理结构设计技巧

数据库物理结构设计技巧

【摘要】:②对物理结构进行评价,评价的重点是时间和空间效率。如果评价结果满足原设计要求,则可以进入到数据库实施阶段;否则,需要重新设计或修改物理结构,有时甚至要返回到逻辑设计阶段修改数据模式。通常关系数据库的物理结构设计主要包括如下内容。评价物理结构设计的方法完全依赖于具体的DBMS,主要考虑操作开销,即为使用户获得及时、准确的数据所需的开销和计算机资源的开销。

数据库物理结构设计是对已经确定的数据库逻辑结构,利用数据库管理系统提供的方法、技术,以较优的存储结构、数据存取路径、合理的数据存储位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。

由于不同的数据库管理系统提供的硬件环境和存储结构、存取方法不同,提供给数据库设计者的系统参数以及变化范围不同,因此,物理结构设计一般没有一个通用准则,只能提供一个技术和方法供参考。

数据库的物理结构设计通常分为两步。

①确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。

②对物理结构进行评价,评价的重点是时间和空间效率

如果评价结果满足原设计要求,则可以进入到数据库实施阶段;否则,需要重新设计或修改物理结构,有时甚至要返回到逻辑设计阶段修改数据模式。

1.物理结构设计的内容和方法

物理数据库设计得好,可以使各事务的响应时间短、存储空间利用率高、事务吞吐量大。因此,在设计数据库时首先要对经常用到的查询和对数据进行更新的事务进行详细分析,获得物理结构设计所需的各种参数。其次,要充分了解所使用的DBMS的内部特征,特别是系统提供的存取方法和存储结构。

对于数据查询,需得到如下信息。

·查询所涉及的关系。

·查询条件所涉及的属性。

·连接条件所涉及的属性。

·查询列表中涉及的属性。

对于更新数据的事务,须得到如下信息。

·更新所涉及的关系。

·每个关系上的更新条件所涉及的属性。

·更新操作所涉及的属性。

除此之外,还须了解每个查询或事务在各关系上的运行频率和性能要求。例如,假设某个查询必须在1 s之内完成,则数据的存储方式和存取方式就非常重要。

需要注意的是,在数据库上运行的操作和事务是不断变化的,因此需根据这些操作的变化不断调整数据库的物理结构,以获得最佳的数据库性能。

通常关系数据库的物理结构设计主要包括如下内容。

·确定数据的存取方法。

·确定数据的存储结构。

(1)确定存取方法

存取方法是快速存取数据库中数据的技术,数据库管理系统一般都提供多种存取方法。具体采取哪种存取方法由系统根据数据的存储方式决定,一般用户不能干预。

一般用户可以通过建立索引的方法来加快数据的查询效率,如果建立了索引,系统就可以利用索引查找数据。

索引方法实际上是根据应用要求确定在关系的哪个属性或哪些属性上建立索引,在哪些属性上建立复合索引以及哪些索引要设计为唯一索引,哪些索引要设计为聚簇索引。聚簇索引是将数据按索引列在物理上进行有序排列。

建立索引的一般原则如下。(www.chuimin.cn)

·如果某个(或某些)属性经常作为查询条件,则考虑在这个(或这些)属性上建立索引。

·如果某个(或某些)属性经常作为表的连接条件,则考虑在这个(或这些)属性上建立索引。

·如果某个属性经常作为分组的依据列,则考虑在这个属性上建立索引。

·对经常进行连接操作的表建立索引。

一个表可以建立多个非聚簇索引,但只能建立一个聚簇索引。

需要注意的是,索引一般可以提高数据查询性能,但会降低数据修改性能。因为在进行数据修改时,系统要同时对索引进行维护,使索引与数据保持一致。维护索引需占用相当多的时间,而且存放索引信息也会占用空间资源。因此在决定是否建立索引时,要权衡数据库的操作。如果查询多,并且对查询的性能要求比较高,则可以考虑多建一些索引;如果数据更改多,并且对更改的效率要求比较高,则应该考虑少建一些索引。

(2)确定存储结构

物理结构设计中一个重要的考虑就是确定数据记录的存储方式。常用的存储方式如下。

·顺序存储。这种存储方式的平均查找次数为表中记录数的1/2。

·散列存储。这种存储方式的平均查找次数由散列算法决定。

·聚簇存储。为了提高某个属性(或属性组)的查询速度,可以把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块上,这样的存储方式称为聚簇存储。聚簇存储可以极大提高对聚簇码的查询效率。

一般用户可以通过建立索引的方法来改变数据的存储方式。但其他情况下,数据是采用顺序存储还是散列存储,或其他的存储方式是由数据库管理系统根据数据的具体情况决定的,一般它都会为数据选择一种最合适的存储方式,而用户并不能对此进行干预。

2.物理结构设计的评价

物理结构设计过程中要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计者必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。

评价物理结构设计的方法完全依赖于具体的DBMS,主要考虑操作开销,即为使用户获得及时、准确的数据所需的开销和计算机资源的开销。具体可分为如下几类。

(1)查询和响应时间

响应时间是从查询开始到查询结果开始显示之间所经历的时间。一个好的应用程序设计可以减少CUP时间和Ⅰ/O时间。

(2)更新事务的开销

主要是修改索引、重写物理块或文件以及写校验等方面的开销。

(3)生成报告的开销

主要包括索引、重组、排序和结果显示的开销。

(4)主存储空间的开销

包括程序和数据所占用的空间。对数据库设计者来说,一般可以对缓冲区做适当的控制,如缓冲区个数和大小。

(5)辅助存储空间的开销

辅助存储空间分为数据块和索引块两种,设计者可以控制索引块的大小、索引块的充满度等。

实际上,数据库设计者只能对Ⅰ/O和辅助空间进行有效控制。其他方面都是有限的控制或者根本就不能控制。