数据库设计之物理结构设计

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。

一、数据库的物理设计

  1. 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。
  2. 对物理结构进行评价,评价的重点是时间和空间效率。
    如果评价结构满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
二、数据库物理设计的内容和方法

不同的数据库产品所提供的物理环境、存取方法和存储结构有很大差别,能供设计人员使用的设计变量、参数范围也很不相同,隐藏没有通用的物理设计方法可遵循,只能给出一般的设计内容和原则。
数据库上运行的各种事务响应时间小、存储空间利用率高、事务吞吐率大,首先对要进行的事务进行详细分析,获得选择物理数据库设计所需要的参数;其次,要充分了解所用关系数据库管理系统的内部特征,特别是系统所提供的存取方法和存取结构。
以下是确定关系的存取方法的依据:
1. 对于数据库查询事务,需要得到:查询的关系,查询条件所涉及的属性,连接条件所涉及的属性,查询的投影属性。
2. 对于数据更新事务,需要得到:被更新的关系,每个关系上的更新操作条件所涉及的属性,修改操作要改变的属性值。
3. 除此之外,还需要制定每个事务在各关系上运行的频率和性能要求。
通常关系数据库物理设计的内容主要包括为关系模式选择存取方法,以及设计关系、索引等数据库文件的物理存储结构。

三、关系模式存取方法选择

数据库系统是多用户共享的系统,对同一个关系要简历多条存取路径才能满足多用户的多种应用要求。物理结构设计的任务之一是根据关系数据库管理系统支持的存取方法确定选择哪些存取方法。
存取方法是快速存取数据库中数据的技术。数据库管理系统一般提供索引方法和聚簇方法。

1. B+树索引和hash索引
  1. B+树索引存取方法的选择
    所谓选择索引存取方法,实际上就是根据应用要求确定对关系的那些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计唯一索引。
    1)如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引)。
    2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。
    3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引。
  2. hash索引存取方法的选择
    选择hash存取方法的规则:如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择条件中,而且满足下列两个条件之一,则此关系可以选择hash存取方法。
    1)一个关系的大小可预知,而且不变。
    2)关系的大小动态改变,但数据库管理系统提供了动态hash存取方法。
2. 聚簇存取方法的选择

为了提高某个属性(或属性组)的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。该属性(或属性组)称为聚簇码。
聚簇功能可以大大提高按聚簇码进行查询的效率。
聚簇功能不单适用于单个关系,也适用于经常进行连接操作的多个关系。即把多个连接关系的元组按连接属性值聚集存放。这就相当于把多个关系按“预连接”的形式存放,从而大大提高连接操作的效率。
一个数据库可以连接多个聚簇,一个关系只能加入一个聚簇。这样聚簇存取方法,即确定要建立多少个聚簇,每个聚簇中包括哪些关系。

首先设计候选聚簇,一般来说:
  1. 对经常在一起进行连接操作的关系可以建立聚簇。
  2. 如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇。
  3. 如果一个关系的一个(或一组)属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不能太少,太少则聚簇的效果不明显。
然后检查候选聚簇中的关系,取消其中不必要的关系
  1. 从聚簇中删除经常进行全表扫描的关系。
  2. 从聚簇中删除更新操作远多于连接操作的关系。
  3. 不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇。要从这多个聚簇方案(包括不建立聚簇)中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。

聚簇只能提高某些应用的性能,而且能建立与维护聚簇的开销是相当大的。对已有关系简历聚簇将导致关系中元组移动其物理存储位置,并使此关系上原来建立的所有索引无效,必须重建。当一个元组的聚簇码值改变时,该元组的存储位置也要做相应的移动,聚簇码值要相对稳定,以减少修改聚簇码值所引起的维护开销。
当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是西药的,这时可以使用聚簇。尤其当SQL语句中包含有与聚簇码有关的ORDER BY、GROUP BY、UNION、DISTINCT等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作。

三、确定数据库的存储结构

确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,因此需要进行权衡选择一个折中方案。

1. 确定数据的存放位置

为了提高系统性能,应根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。

2. 确定系统配置

关系数据库管理系统产品一般都提供了一些系统配置变量和存储分配参数,供设计人员和数据库管理员对数据库进行物理优化。

四、评价物理结构

数据库物理设计过程中需要对时间效、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。评价物理数据库的方法完全依赖于所选用的关系数据库管理系统,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的、合理的物理结构。

猜你喜欢

转载自blog.csdn.net/lxw983520/article/details/80890419