(1)数据抽象与局部视图设计
+ n6 q3 A- @5 V) s4 vE-R模型是对现实世界的一种抽象。一般地讲,所谓抽象是对实际的人、物、事和概念的人为处理。它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种抽象的概念精确地加以描述。这些概念组成了现实世界的一种模型表示。有3种抽象方法形成了抽象机制,来对数据进行组织:①分类(Classification) 定义某一概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的“is a member of”的语义。在E-R模型中,实体型就是这种抽象。②聚集(Aggregation) 定义某一类型的组成成分。它抽象了对象内部属性类型和整体与部分之间“is a part of”的语义。在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。③概括(Generalization) 定义类型之间的一种子集联系。它抽象了类型之间的“is a subset of”的语义。概括具有一个很重要的性质:继承性。子类继承超类上定义的所有抽象性质。当然,子类可以增加自己的某些特殊属性。概念结构设计的第一步就是利用上面介绍的抽象机制对需求分析阶段收集到的数据进行组织,形成实体、实体的属性,标识实体的码,确定实体之间的联系类型(1∶1,1∶n,n∶m),设计成部分E-R图。
5 r9 Q. e* K; }& I(2)视图的集成视图集成就是把上一步得到的各个部分E-R图综合成一个总体的E-R图。视图集成可以有两种方式:
9 a1 X5 C: d7 P) ]! |4 \- A①多个部分E-R图一次集成。; ^$ i6 I% M% B
②逐步集成。用累加的方式一次集成两个部分E-R图。无论哪种方式,每次集成可分两步走。第一步是合并,解决各部分E-R图之间的冲突问题,生成初步E-R图。第二步是修改和重构,消除不必要的冗余,生成基本E-R图。
) ]1 y4 k; [- `5 T$ ? B( m6 [& b4.逻辑结构设计来源:www..com
' w4 Q- H& @' c1 y5 i逻辑结构设计的任务就是把概念结构转换为选用的DBMS所支持的数据模型的过程。设计逻辑结构按理应选择对某个概念结构最好的数据模型,然后对支持这种数据模型的各种DBMS进行比较,选出最合适的DBMS。但实际情况常常是已给定了某台机器,设计人员没有选择DBMS的余地。现行的DBMS一般只支持关系、网状或层次三种模型中的某一种,对某一种数据模型,各个机器系统又有许多不同的限制,提供不同的环境与工具。因而我们把设计过程分三步进行。首先把概念结构向一般的关系模型转换,然后向特定的DBMS支持下的数据模型转换,最后进行模型的优化。6 N7 D, }$ P9 T
(1)E-R图向关系数据模型的转换下面给出把E-R图转换为关系模型的转换规则。
& p, a" w4 I' Y, h+ S; f8 z( C①一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。) K4 {( \( }" H) w4 A% l
②一个联系转换为一个关系模式,与该联系相连的各实体的码以及联系的属性转换为关系的属性。该关系的码则有三种情况:若联系为1∶1,则每个实体的码均是该关系的候选码。若联系为1∶n,关系的码为n端实体的码。若联系为n∶m,则关系的码为诸实体码的组合。具有相同码的关系模式可合并。形成了一般的数据模型后,下一步就向特定的DBMS规定的模型转换。设计人员必须熟知所用DBMS的功能及限制。这一步转换是依赖于机器的,不能给出一个普遍的规则。转化后的模型必须进行优化。对数据模型进行优化是指调整数据模型的结构,以提高数据库应用系统的性能。性能有动态性能和静态性能两种。静态性能分析容易实现。根据应用要求,选出合适的模型是一项复杂的工作。
6 v; ^* h, l& t0 d" u(2)规范化理论的应用规范化理论是数据库逻辑设计的指南和工具,具体地讲可应用在下面几个具体的方面:第一,在数据分析阶段用数据依赖的概念分析和表示各数据项之间的关系。第二,在设计概念结构阶段,用规范化理论为工具消除初步E-R图中冗余的联系。第三,由E-R图向数据模型转换过程中用模式分解的概念和算法指导设计。现在,不管选用的DBMS是支持哪种数据模型的,均先把概念结构向关系模型转换。然后,充分运用规范化理论的成果优化关系数据库模式的设计。
0 O! K- v: |( u5.数据库的物理设计* c/ V' v) b8 A' ]* P
物理设计的内容主要包括:1 @3 s: n ]1 w) }! I9 u! e8 X0 Q
(1)确定数据的存储结构 从DBMS所提供的存储结构中选取一种合适的加以实现。确定存储结构的主要因素是存取时间、存储空间利用率和维护代价三个方面。设计者常常要对这些因素进行权衡。一般的DBMS也总是具有一定灵活性供你选择。例如,若引入某些冗余数据,则可能减少物理I/O次数提高检索效率。相反节约存储空间检索代价就会增加。当然应该尽量寻找优化方法,使这三方面的性能都较好。折衷有时是必须的。 |