��1、应用的需求 ��数据库的物理设计与多种因素有关,首先是应用的处理需求,例如在某个具体的应用中,事务的内容和事务出现的频率如何。而这些处理需求还会随着应用环境的变化而变化。 ��2、数据的特性 ��其次是数据本身的特性,例如某个关系中某个属性值的分布、记录的长度及个数等等。数据的特性也会随着数据库状态的改变而变化,而且数据的特性在数据库设计阶段是很难准确估计的。 ��3、综合因素 ��在进行物理设计时还得考虑DBMS、操作系统以及计算机硬件的特性。从整个计算机系统来说,数据库系统只是其负荷的一部分。数据库应用的性能不但取决于数据库的设计,而且与计算机系统的运行环境有关,而计算机的运行环境也不是固定不变的。例如,计算机系统是单用户的还是多用户的?数据库系统是分布的还是集中的?磁盘是数据库专用的,还是全系统共享的?等等诸如此类的问题。 ��4、物理设计的调整 ��在进行数据库的物理设计时,可供选择的方案很多。例如各种文件结构和存取路径的选择,就可以形成庞大的组合。要穷尽各种可能,寻求最佳设计,几乎是不可能的。数据库设计和一般产品的设计不一样,数据库设计只提供一个初始设计,在数据库运行过程中还可根据用户的要求、应用的需求、数据的特性以及其他因素不断地调整。过分追求所谓的精确设计,企图一次成功,是不符合数据库应用的特点的。 �� ��各种各样的需求对于物理设计提出无尽的要求,而且这个提出需求的过程会贯穿整个应用开发。所以物理设计也是一个螺旋上升的过程,当然有时也会有反复,即推倒重来。迄今,RDBMS几乎没有提供工具以帮助物理数据库设计和调整,但是现在大家已经开始着手解决这个问题了。微软的SQL Server有一个调整向导,它可以对索引的生成给出建议;当维护索引的开销超出它所能获得的查询利益时,它也可以对删除索引给出建议。IBM DB2 V6也有一个调整向导,Oracle Expert对全局的参数给出一个推荐的值,并对建立/删除给出建议等。 ��