设计良好的程序要最大化类的内聚同时要最小化类的耦合;遵循Demeter法则就是在类方法内用于指向对象的消息,那么耦合和内聚的原理就可以实现;存取程序方法的过度使用会产生不用思考的类;混合实例的内聚,虽然不是想要的,可能偶尔还是需要的,因为程序设计环境不支持动态分类;当设计C/S合作时,需要考虑SQL接口的五个层次,第五层SQL允许用户直接对数据库编程;存储过程和触发器严重影响了程序设计的服务器方面;程序导航图扩展了窗口导航图以包含数据库方面的考虑。事务是数据库工作的逻辑单元,它开始于一个一致的数据库状态,并保证它在结束时也是一个一致的状态;事务保证数据库并发和数据库恢复;传统的数据库应用要求短事务,一些新的数据库应用则用长事务来工作。双向工程是设计模型和程序处于同步的过程,但它们可以各自进化;双向工程组合了从设计模型出发的前向工程和从程序出发的逆向工程;双向工程一般独立适用于客户机程序和数据库程序。
类模型和BCED类包反映了应用类,而不是存储数据库结构,实体类表示了应用中的永久数据库对象,但不是数据库中的永久类;永久数据库层可以是关系数据库,对象关系数据库或者对象数据库;数据库模型是表示数据库结构的这种抽象,包含三种抽象,分别是:外部数据模型,逻辑数据模型和物理数据模型;数据库包并不能导出数据库模型,它是由数据库建模导出来的。应用和数据库之间的映射,由数据库包负责,可能是错综复杂的问题,映射的困难有两个:数据库的存储结构对面向对象范例做不了什么,其次数据库几乎都不是为单个应用设计的。对象数据库管理系统的最大目的是进行数据库与应用程序设计语言的透明式集成,其建模语言是对象和文字,每个对象都有一个OID,文字没有OID,其值是它的标识符;ODB一个主要的好处是在于对文字和对象类型的内部支持,这使得ODB成为面向对象IS开发的自然的实现平台,其支持关联和泛化关系(聚合通过强制关联来支持);ODMG对象模型定义了两种泛化关系:即ISA(相当于对接口的继承)和EXTENDS关系(相当于实现继承);ODBMS配有内部操作来支持文字和对象类型;ODB的任务是为面向对象模型建立一个面向对象实现,可以映射实体类,关联,聚合和泛化。对象关系数据库组合了老式关系模型和新式对象模型,其表中的列可以取内部或用户定义类型作为它的值;对象表是具有一列或多列的列的集合;行类型允许表可以甚至不需要使用结构化类型或集合就有相对复杂的内部结构;结构化类型可以用来定义引用类型;映射不是针对抽象的SQL标准来做的,而是针对实际的ORDB来做的;RDB模型中主要建模语言是由列组成的关系表,其不支持对象类型,结构化类型,集合和引用;关系数据库用一个列或行的表来定义数据;一个关系表用其列的固定的集合来定义;RDB模型利用引用完整性约束来维护表之间的关系;规则和描述性引用完整性约束支持在数据库中定义简单的业务规则;关系视图是一个被存储和命名的SQL查询;关联到RDB的映射涉及表之间使用引用完整性约束;触发器可以用来对从隐含在UML类模型中的业务规则中捕捉出来的语义进行编程,范式化会进一步影响这个映射。