就必须对它要沟通的两个模型——关系模型和对象模型以及两个模型之间的联系和它们之间存在的问题进行深入的了解。
本部分将分析对象模型、关系模型、以及对象模型和关系模型之间存在的“阻抗不匹配”问题。
2.1关系模型 2.1.1关系模型的相关数学理论 关系模型建立在严格的数学理论基础上。
该数学理论属于集合理论中的关系理论,关系模型是列(域)的笛卡尔乘积的子集。
2.1.2关系模型的构成 关系模型把世界看作是由实体和关系构成。
在关系模型中,实体是以二维表形式来表现。
表的每一行表示实体的一个实例,表的每一列描述实体的一个特征和属性。
关系是指实体之间的对应关系。
通过关系就可用一个实体的信息来查找另一个实体的信息6。
关系模型提供一组完备的关系运算,以支持对数据库的各种操作,关系运算的理论是关系代数和关系演算。
关系数据库的数据操纵语言以关系运算理论7为基础实现。
常用的关系操作包括:选择、投影、连接、除、并、差、交等查询操作和新增、修改、删除操作两大部分。
而SQL不但提供以上所述的各种关系操做,还提供了一些非关系操作功能如聚集函数、新增、修改、删除。
关系模型中的完整性约束是指为保证数据库中数据的正确性和一致性而采取的数据完整性规则:包括实体完整性规则和参照完整性规则9。
2.1.3关系模型的优势与局限性 关系数据库语言是过程化语言,编写简单,而且在关系型数据库中组织简单的数据结构形式良好方便。
但关系模型强调数据的高度结构化,关系语言上面向机器毕业设计论文 第 5 页 的语法数据模型,它无法克服面向应用的缺点;而且,关系语言语义表示能力差,无法表示客观世界的复杂对象;在关系型数据库中表示的数据类型也单一固定,不能提供新类型的定义和生成能力。
2.2 对象模型 2.2.1 对象模型的相关理论 面向对象的观点认为,客观世界是由各种各样的实体,即对象组成。
每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用构成各种不同的系统,进而构成整个客观世界。
面向对象模型不是建立在严格的数学理论基础之上,其本质更接近于人类认知事务所采用的哲学观模型。
2.2.2 对象模型的构成 对象模型由对象及对象之间的关系构成。
类是在属性和行为上一致的对象集合的抽象。
1.类和对象的关系 类是建立对象模型的基本单元。
通过对对象进行抽象得到类。
类由类名、属性和方法组成。
2.类之间的关系 在类和类之间存在有五种关系——关联关系,聚合关系,组合关系,泛化关系和依赖关系。
2.2.3 对象模型的优势和局限性 对象模型与关系模型的根本区别是对象模型是面向运用。
它提供丰富的语义和自然的表达式,方便的直接表达运用领域的事物和它们之间的关系。
但是与关系模型相比,对象模型缺乏一个完善的理论指导,还没有公认的形式化描述。
因此对象模型不适合在一些要求精确计算和高效处理的场合使用。
毕业设计论文 第 6 页 2.3 阻抗不匹配问题 2.3.1阻抗不匹配问题的由来 采用基于对象模型建模和处理业务逻辑的面向对象技术是九十年代软件技术发展的主流,在
软件开发中广泛的应用,很大程度的提高软件开发效率,成功的解决“软件危机”;基于关系模型实现的关系数据库是现在采用最广泛的数据存储机制,在很多商业应用程序中都有成熟的运用。
对象模型和关系模型分别是处理业务逻辑领域和数据存储领域的最佳解决
方案。
然而把这两者结合起来构成一个完整的软件系统并不容易,经常出现这样一个情况:开发人员在把对象所带的数据存入数据库之前要先分解对象,然后再把这些数据存入一个或多个数据表中;在使用数据的时候,必须使用SQL语句查询一个或者多个表来获取相关数据,并把这些分散的数据重新组装到一个对象里。
这些
工作造成的代码编写量大、耗时,通常占去整个软件开发时间的25到40,这种情况是由对象模型和关系模型之间的分歧所造成。
人们使用一个来自电子工程领域的术语——“阻抗不匹配”来命名这个问题。
2.3.2产生阻抗不匹配问题的原因 对象模型和关系模型之间存在着固有差异:对象模型侧重于使用包含数据和行为的对象来构建运用系统,常常通过对象之间的关系来进行访问。
关系模型以二维表的形式来管理所有的数据,并且认为通过外键就足以表示数据间所有的关系。
但面向对象模型中使用的数据很凌乱,可能需要用到多维数组或者内嵌式表格这样的结构,这些结构都比二维平面表要更复杂。
要在关系模型中表示这样的数据,常常需要创建很多的表格和外键关系,结构异常复杂。
关系模型没有考虑到对大对象支持的需要,如文本、图像、视频、音频等,也不支持对象模型中的.