1. 3层数据库模式面向对象模型的扩展 一般数据库设计多参照ANSL/SPARC关于数据库模式的3层标准结构提案。最接近物理数据库的内部模式由 DBMS 提供的SQL来描述。概念模式可以由若干个内部模式聚集而成,它是由数据库用户规范的一些表的集合。一般的概念模式是数据库物理模式作用域的边界,它能实现数据库的物理意义、特定DBMS 的特殊操作对外部应用程序的信息隐蔽。外部模式是从特定用户应用角度看待的数据库模式,从不同的应用出发对同一概念模式可以给出多种不同的外部模式。当外部应用系统以对象模型进行抽象时,从各个应用出发抽象出的对象模型可以映射到外部模型上,对此我们不妨称之为外部对象模型。但是,外部模型只是概念模型的子集,所以面向对象的数据库设计核心在于系统对象模型(不妨称之为概念对象模型) 向数据库概念模型的映射 。
2. 对象模型向数据库表的映射规则 由于 RDBMS 是以二维表为基本管理单元的,所以对象模型最终是由二维表及表间关系来描述的。换言之,对象模型向数据库概念模型的映射就是向数据库表的变换过程。有关的变换规则简单归纳如下: (1) 一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。 (2) 关系(一对一、一对多、多对多以及三项关系)的映射可能有多种情况,但一般映射为一个表,也可以在对象类表间定义相应的外键。对于条件关系的映射,一个表至少应有3个属性。 (3) 单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。 (4) 对多重继承的超类和子类分别映射表,对多次多重继承的泛化关系也映射一个表。 (5) 对映射后的库表进行冗余控制调整,使其达到合理的关系范式。
3. 数据库模式要面向应用系统 我们选择面向对象的系统设计也好,面向对象的数据库设计也好,根本目的是服务于应用系统的需要。
五、面向对象关系数据库设计效果 从某种意义上讲,是数据库设计的面向对象特征最终奠定了整个系统的面向对象性,才使面向对象方法在程序开发阶段全面开花。其效果归纳如下:
六、最简单的就是最好的 客观世界是错综复杂的,计算机科学理论的发展也越来越高深、复杂。然而,人类探索理论和技术的最终目的是:让客观世界的复杂变简单,最简单的就是最好的。为此给出以下几点忠告: