应用程序数据模型设计通常分两个阶段。建立逻辑数据模型为第一阶段,它包括对应用程序需求处理和存储的信息进行建模,并确保所有必要的数据都能够正确完整且无歧义的表示。关系数据库中,通常指构造一个标准化的实体-关系(E-R)模型。
将逻辑数据模型映射为物理数据模型为第二阶段。对关系数据库来讲,物理数据模型描述的是表、索引、视图、键和其它一些数据库特性。在传统的方法论中,逻辑数据模型设计往往忽略性能,而物理模型设计过程才开始对此进行考虑。
1、标准化和三范式
1.1 一个标准化的数据模型是没有任何数据冗余的,并且数据和关系能够被主键和外键唯一标识。从性能角度考虑,标准化数据模型一般不是最终建模的结果,但它始终是建模的最好起点。
1.2 第三范式是现在采纳最广泛的标准,特征就是所有数据完全依赖于主键。
2、数据类型选择
2.1 使用限制性很强的数据类型或精度并没有优势。不管如何限制数据类型,大部分情况下,Oracle内部都会使用大范围高精度的浮点方式进行存储。
2.2 采用固定长度的行长度可以降低碎片,但是它会导致较大的平均行长,这样会增加全表扫描的开销。因此,除非数据的长度确实是固定的,否则就应该优先选择变长字符串类型VARCHAR
2.3 VARCHAR可存储4000字节,9i以前版本就需要用LONG或LOB来存储这么长的字节。
2.4 Oracle Long 数据类型有很多局限性,现在都推荐使用LOB类型。
3、人造键<Oracle sequence>
一个自然键是由实体中具有唯一性的自然属性构成的,而人造键是没有任何含义的,它的存在就是为