1
数据库原理与应用技术
1.5.6.1 4.6.1 物理设计的内容
4.6.1 物理设计的内容

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

数据库的物理设计的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式(物理模式)。一般的用户和程序员不一样,他们不需要了解内模式的设计细节,所以内模式的设计可以不考虑用户理解的方便。其主要设计目标有二:一是提高数据库的性能,特别是满足主要应用的性能要求;二是有效地利用存储空间。

数据库的物理设计可分为两步:第一步确定数据库的物理模式;第二步评价物理模式的性能。评价的重点是时间和空间的效率,若不满足,则就重新回到第一步。

1) 物理设计分析

在物理设计之前应了解、分析如下问题。

(1) DBMS特点。用户通过DBMS使用数据库,数据库物理设计只能在DBMS性能范围内,根据需求和实际条件适当地进行选择。设计者必须仔细阅读DBMS的有关资料,充分利用其提供的各种手段,并了解其限制条件。

(2) 应用环境。要了解各用户的数据视图、使用需求和频率等。应该指出,对大型数据库而言,其数据及处理特征会随应用环境的变化而变化,所以物理设计只能提供一个初始设计,今后可在数据库运行过程中不断进行调整。

(3) 计算机系统的特征。数据库的性能不但取决于数据库的设计,而且与计算机系统的运行环境有关。例如,计算机系统是单用户的还是多用户的,负荷的轻重如何,数据库是分布在多个磁盘组上还是集中在单个磁盘组上,磁盘是数据库专用的还是与其他服务(Web、事务等)共享的。

2) 物理设计的内容

不同的DBMS所提供的物理环境、存取方法和存储结构有很大区别,能供设计人员使用的设计变量、参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能给出一般的设计内容和原则。物理设计包括以下四个方面的内容。

(1) 确定数据的存储结构。数据的存取时间、存储空间利用率和维护代价是确定存储结构的主要因素,面对这些因素,设计人员要从DBMS所提供的存储结构中选择最合适的。

例如,引入数据冗余来减少I/O次数以提高检索效率,这可能并不完全符合约束和原则,但在某种情况下是最好的选择,是一种典型的空间换时间的例子;相反,节约存储空间则会增加检索的代价,是用时间换取空间的方法。

(2) 选择和调整存取路径。数据库必须支持多个存取入口,即对同一数据存储提供多条存取路径。如要对哪些数据项或数据项组合建立索引,索引可以明显缩短访问时间,同时也会增加辅助存储的开销和索引维护量,所以要对如何建立索引、建多少索引做出权衡。

(3) 确定数据存放位置。要按应用的情况将数据进行划分,将稳定的、易变的数据分开,将常存取的、不常存取的数据分开,根据存取时间的要求和存取频率的不同分别存放在高速、低速存取器上。

①数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,所以可以考虑存放在磁带上。

②如果计算机有多个磁盘或磁盘阵列,则可以考虑将表和索引分别存放在不同的磁盘上,查询时,由于磁盘驱动器为并行工作,所以可以提高物理读/写的效率。

③可以将比较大的表分别存放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。

④可以将日志文件与数据库对象(表、索引等)存放在不同的磁盘上,以改进系统的性能。

(4) 确定存储分配。DBMS会提供一些存储分配的参数供设计人员在物理设计优化时使用,例如,溢出空间的大小和分布参数、块长度、块因子的大小、装填因子、缓冲区的大小和个数等。这些参数的大小影响存取时间和存储分配,需要在物理设计中确定。例如,在创建数据库之前必须定义数据块的大小,一个块是一次独立的物理读/写操作所涉及的字节大小。虽然其大小不影响数据库设计,但对性能有较大的影响。块越大意味着一次读/写操作所完成的数据越多,从这种意义上讲,较大的块比较小的块要好,但块大意味着操作要占用更多的I/O资源,这又涉及权衡的问题。

物理设计时对系统配置变量的调整只是初步的,系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。

对于关系数据库,其物理设计的内容主要包括索引设计和聚簇设计,下面分别介绍。