对象之间的关系及对象之间关系映射到数据库表数据的应用技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6、为什么要在关系数据库上建立对象模型(O/R Mapping技 术) (1)对象和关系数据是业务实体的两种表现形式
1)业务实体在系统内存中表现为对象,而在数据库表中 表现为关系数据 2)数据库表无法表现出对象的各种关系
如在面向对象中的对象之间可以存在关联、包含和继承等 形式的关系,而在数据库表中,则无法直接表达出“多对 多”、“关联”和“继承”、“包含”等形式的关系。
3)聚合关系在UML中 的表示方法为在关联线端 加一个小空心菱形,菱形 链接处代表整体事物类, 称为聚合类,另一端连接 代表部分事物类。 4)组合关系在UML中 的表示方法则为在关联线 端加一个小实心菱形,菱 形链接处代表整体事物类, 称为组合类,另一端连接 代表部分事物类。
(5)一般化 (Generalization) 关系
4、了解域对象之间 的各种关系
(1)关联(Association)关系 关联指的是类之间的引用关系(关联是一种“结构化” 或者“语义”方面的关系),关联关系可以分为“一对一”、 “一对多”和“多对多”等关联类型。
(2)依赖(Dependency)关系 1)实体之间的依赖关系其实是实体之间的一个“使用” 关系,依赖指的是类之间的访问关系。 2)如果类A中的相关方法需要访问类B中的成员属性或方 法,或者说是A类负责实例化B类的对象,那么则可以说类A依 赖于类B。 3)依赖的对象通过调用被依赖对象的方法来获得服务。 依赖是 一种短期的、 比较松散的 关系。比如, 应用系统中 的业务处理 类往往依赖 于系统中的 实体对象
1)在软件系统的 需求分析阶段,系 统分析人员需要创 建出概念模型,也 就是系统的分析类 图。右图为一个 BBS论坛系统的分 析类图
2)在软件系统的 设计阶段,则需 要创建出域模型 和数据模型,也 就是系统的设计 类图。其中的域 模型是面向对象 的,而数据模型 则是面向关系的 3)域模型和数 据模型之间存 在一种对象之 间的关系映射
一般化关系其实也 就是面向对象编程 中类之间的继承关 系。
5、熟悉域对象的持久化概念 (1)什么是持久化
将域对象永久保存到磁盘文件(如 数据库系统的数据库表)中的过程。
(2)什么域对象需要持久化
通常只有实体域对象才需要持久化。
பைடு நூலகம்
(3)为什么要将实体域对象进行持久化
1)首先,当实体域对象在系统内存中被创建后,它们不可能 永远地存在在系统内存中。因为系统内存是无法永久地保存 数据的,因此必须对实体域对象进行持久化操作。 2)其次,如果实体域对象没有被持久化存储,则该实体域对 象中的信息将会在软件应用系统结束运行后随之消失。
8、对象/关系映射(O/R Mapping) 映射的实现原理
(1)完成软件应用系统中上层面向 对象的数据模型与底层数据库的 关系模型之间的对应转换关系。 (2)利用这层转换关系,可以使应 用系统中的上层应用在开发实现时 不必关心对象模型在底层数据库的 存放以及底层数据库的各类维护工 作。
9、域实体对象和关系数据库表中的 数据映射规则
对象之间的关系及对象之间关系
映射到数据库表数据的应用技术
1、概念模型、域模型和数据模型 (1)系统模型是用来表示真实世界的实体
1)在科学和工程技术等领域中的模型是一个很有用途的概念, 它可以用来模拟一个真实的系统; 2)在软件系统的开发领域中的模型,则是表示真实世界的实 体。
(2)在软件系统开发的不同阶段中需要创建出不同类型的 系统模型
2、什么是概念模型
(1)概念模型描述了每个实体的概念和其组成的成员属性 及实体之间的关系: 如“一对一”、 “一对多”和“多 对多”等关联关系。 而在现实生活中都可 以找到相应的例子, 例如一位老师有很 多学生便是“一对 多”关系 (2)概念模型能够 清楚地表示软件应 用系统中所涉及的 各个问题域中的实 体及之间的关系
(2)实现对象/关系映射(O/R Mapping)的系统一般都是以 中间件的形式存在
1)有必要在关系数据库上建立对象模型,主要实现程序对 象到关系数据库数据的映射。 2)在关系数据库之上增加一层面向对象的逻辑层,它为上 层的数据访问的请求者提供面向对象的表示方法,同时与底层 数据库之间建立对象-关系映射。
10、对象/关系映射(O/R Mapping)解决方案由以下几部 分组成
(3)聚合(Aggregation)关系
1)聚合关系是比较弱的部分与整体(组合)之间的关系, 其中的聚合指的是整体与部分之间的包含关系。 2)其实聚合关系也是关联关系中的一种形式,是强的关联 关系。聚合关系体现了整体和部分之间的组成关系。
例如,人与手就是聚集关系,在Person类中有一个hands的集 合,它存放被聚集的Hand对象:
3、软件系统中的域对象及域对象的分类 (1)实体域对象
实体域对象一般是代表 人、地点、事物或概念 等,通常可以把应用系 统中业务领域相关的名 词如客户、订单、商品, 作为实体域对象。
(2)过程域对象
它代表软件应用系统 中的业务逻辑或流程, 它通常依赖于实体域 对象。
(3)事件域对象
它代表软件应 用系统中的一些 事件,例如异常、 警告或超时等。
public class Person{ private Set hands = new HashSet(); ………… }
(4)组合关系
1)组合关系则是表示事物的部分与整体关系的较强情况下的 一种组成关系,也称为合成关系,是比聚合关系更强的一种关 系类型。 2)其中的整体 对象负责代表部 分对象的生命周 期。
7、对象/关系映射(O/R Mapping)实现的核心思想
(1)对应用系统中的上层软件提供一个统一的面向对象的数据模 型,即提供各类面向对象的概念和数据结构以及对系统中的各 类的维护操作和能够柔性地进行系统扩展。 (2)对于应用系统中的底层则屏蔽掉具体数据库的关系模型,并 利用映射原理建立出透明的对象转换机制,并对系统中的底层 数据库进行合理有效的管理及对数据库表中的数据进行有效地 操作访问。 注意:这一方案能够从下至上解决关系数据库的局限性。