对象关系映射.docx
《对象关系映射.docx》由会员分享,可在线阅读,更多相关《对象关系映射.docx(8页珍藏版)》请在三一办公上搜索。
1、ORM一、ObjecVRelationMapping对象-关系数据库映射什么是ORM?对象关系映射(ORM)供应了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则:简洁:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。精确性:基于数据模型创建正确标准化了的结构。典型地,建模者通过收集来自那些熟识应用程序但不娴熟的数据建模者的人的信息开发信息模型。建模者必需能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必需能以简洁的单元分析信息,对样本数据进行处理。ORM特地被设计为改进这种联系。规章表达式ORM把应用程序世界表示为具有角色(
2、关系中的部分)的一组对象(实体或值)。ORM有时也称为基于事实的建模,由于它把相关数据描述为基本领实。这些事实假如分割为再小的事实就会丢失信息。简洁事实的一些例子包括:人有电话人住在某个地方人生于某个日期人在某个日期被雇佣ORM供应的不只是描述不同对象间关系的一个简洁而直接的方式。ORM还供应了敏捷性。使用ORM创建的模型比使用其它方法创建的模型更有力量适应系统的变化。此外,ORM允许非技术企业专家按样本数据谈论模型,因此他们可以使用真实世界的数据验证模型。由于ORM允许重用对象,数据模型能自动映射到正确标准化的数据库结构。ORM模型的简洁性简化了数据库查询过程。使用ORM查询工具,用户可以访
3、问期望数据,而不必理解数据库的底层结构。对象关系映射(ObjectRelationalMapping,简称ORM)是种为了解决面对对象与关系数据库存在的互不匹配的现象的技术。简洁的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动长久化到关系数据库中。本质上就是将数据从一种形式转换到此外一种形式。这也同时示意者额外的执行开销;然而,假如ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的长久层并不存在。更重要的是用于掌握转换的元数据需要供应和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG法律规范的对象数据库依旧需要类级别的元数据。
4、对象-关系映射(ObjectZReIationMapping,简称ORM),是随着面对对象的软件开发方法进展而产生的。面对对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。面对对象是从软件工程基本原则(如耦合、聚合、封装)的基础上进展起来的,而关系数据
5、库则是从数学理论进展而来的,两套理论存在显著的区分。为了解决这个不匹配的现象,对象关系映射技术应运而生。让我们从0/R开头。字母0起源于对象(Object),而R则来自于“关系”(ReIatiOnal)o几乎全部的程序里面,都存在对象和关系数据库。在业务规律层和用户界面层中,我们是面对对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。当你开发一个应用程序的时候(不使用0/RMaPPing),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,转变状态对象等等任务。而这些代码写起来总是重复的。假如打开你最近
6、的程序,看看DAL代码,你确定会看到很多近似的通用的模式。我们以保存对象的方法为例,你传入一个对象,为SqICOmmand对象添加SqlParameter,把全部属性和对象对应,设置SqICommand的CommandText属性为存储过程,然后运行SqlCOmmand。对于每个对象都要重复的写这些代码。除此之外,还有更好的方法吗?有,引入一个0/RMapping0实质上,一个0/RMaPPing会为你生成DAL。与其自己写DAL代码,不如用0/RMapping。你用。/RMaPPing保存,删除,读取对象,0/RMaPPing负责生成SQL,你只需要关怀对象就好。对象关系映射胜利运用在不同的
7、面对对象长久层产品中,如:TOrqUeQJB,Hibernate,TopLink,CastorJDO,TJDO等。一般的ORM包括以下四部分:一个对长久类对象进行CRUD操作的API;一个语言或API用来规定与类和类属性相关的查询;一个规定mappingmetadata的工具;种技术可以让ORM的实现同事务对象起进行dirtychecking,lazyassociationfetching以及其他的优化操作。一、目前流行的ORM产品目前众多厂商和开源社区都供应了长久层框架的实现,常见的有:ApacheOJB()Cayenne(http:/objectstyle.org/cayenne/)Jax
8、or()Hibernate()iBatis()jRelationalFramework()mirage()SMYLEOTopLinkO其中TopLink是Oracle的商业产品,其他均为开源项目。其中Hibernate的轻量级ORM模型逐步确立了在JaVaORM架构中领导地位,甚至取代简单而又繁琐的EJB模型而成为事实上的JaVaORM工业标准。而且其中的很多设计均被J2EE标准组织吸纳而成为最新EJB3.0法律规范的标准,这也是开源项目影响工业领域标准的有力见证。二、对象一关系映射模式从公共仓库元模型:开发指南一书第8章CWM元仓库中摘录出来的内容,实现了公共仓库元模型(CWM)的UML图到
9、MiCrOSOftSQLSerVer数据库的映射,是种将对象层次结构映射成关系型结构的方法。个人认为可以作为将本体(OntoIOgy)文件存储到关系型数据库中的一种可借鉴方法。基本状况:公共仓库元模型(CWM)是对象管理组织(C)MG)的种和数据仓库相关的元模型标准,采纳UML表示的对象层次结构,在保存到数据库中时由于面对对象的数据库技术的不完善(理论讨论和商业应用都不是主流),所以该书的作者倾向于使用成熟的关系型数据库来保存一这也是存储本体时所遇到的问题。采纳方法:将UML模型中的各种元素通过转换,保存为数据库模式。由于CWM是一种元模型,因此模型的实例也是一种模型,将这种实例以数据库数据的
10、形式保存。使用数据库中比较成熟的存储过程技术提高开发和执行效率。1、数据类型映射模式1.1 简洁数据类型模式:建立UML和关系型数据库中简洁数据类型的映射表以指导映射。1.2 枚举数据类型模式:每种枚举类型对应一个表,只有一个列JEnumLiteraI)表示枚举值。1.3 基于类的数据类型模式:使用外键约束,将基础列与基于类的类型实例相关联。2、类映射模型每个类对应一个表。单值属性、多值属性、继承关系可以用下述方法映射,而引用属性将在关联映射模式中提到。2.1 单值属性模式:是Cardinality的上界为1的属性,映射到类所对应的表的列上。若其下界也为1(必需有的属性),列属性为NOTNUL
11、Lo2.2 多值属性模式:每个多值属性映射成一个独立的表,使用外键连接到类所对应的表上。2.3 继承模式:每加入一个类的实例时,依据其继承关系自顶向下生成每个类的对象,这些对象具有相同的ID(根对象对应纪录的主键)。删除对象实例时,自底向上删除数据。遇到从中间删的状况怎么办?多重继承怎么处理?(金龙飞)3、关联映射模式3.1 一对一关联模式:在关联两端各加一列。3.2 一对多关联模式:和3.1一样。假如多这端是有序的,还需加入一列表示序号。3.3 多对多关联模式:将关联单独作个表。3.4 组合关联模式:留意级联式删除。3.5 反演关联模式:关联两端指向相关的类型,和一般关联一样。3.6 成对关
12、联模式:关联纪录两个类间的关系,用交集类表示关联,表示成一个单独的表,每个关联对应一个表,用外键表示它们间的关系。3.7 关联上的OCL需要分析成对应的存储过程代码。3.8 保证关联的CardinaIity也需要分析成对应的存储过程代码。4、引用映射模式在UML中不存在的MoF特征,指属性是声明为引用类型的实例。用存储过程实现。二、OperationalRiskManagement操作风险管理一、操作风险的界定与基本特点通常,银行的风险管理一般将信用风险管理、市场风险管理、操作风险管理并列为三大领域。与信用风险管理、市场风险管理相比,操作风险的管理应说还处于起步阶段,目前甚至还没有形成一个统一
13、的、国际认可的定义。不过,随着操作风险的影响不断增大,国际银行界已经越来越将巴塞尔银行委员会的定义作为标准化的界定:“操作风险就是指由于内部程序、人员、系统不充分或者运行失当、以及由于外部大事的冲击等导致直接或者间接损失的可能性的风险巴塞尔委员会同时指出,这一界定包含了法律风险,但是并不包含策略性风险和声誉风险。当前,操作风险已经成为全球银行业风险管理日趋重要的领域之,实际上,操作风险并不仅仅与银行的“操作”(如后线支持、信息系统消失故障、业务流程上的问题等等)相关,而且也与银行业务操作之外的领域相关,如欺诈交易(roguetrading)、模型的风险、报告和会计体系消失问题等。从广义来说,操
14、作风险可以划分为操作性杠杆风险(OPeratiOnalleveragerisk)和操作性失误风险(OPeratiOnalfailurerisk)。操作性杠杆风险主要是指外部因素引起的操作风险,如由于外部冲击导致金融机构收益的削减、这些外部冲击包括税制和政治方面的变动、监管和法律环境的调整、竞争者的行为和特性的变化等,通常衡量这个操作风险的方法是运用情景分析(SCenarioanalysis)o操作性失误风险主要是指由于金融机构的内部因素引起的操作风险,这些内部因素主要包括处理流程、信息系统、人事等方面的失误。总体来看,操作性失误风险在整个操作风险中所占据的比重近年来明显提升。假如对操作失误风险
15、作进一步细分,我们还可以划分为:(1)执行风险:即执行人员不能证券理解管理人员的意图或者有意错误操作等;(2)信息风险,即信息在机构内部、或者机构内外之间的产生、接收、处理、储存、转移等环节消失故障;(3)关系风险,即由于产品和服务、管理等方面的问题影响到客户与金融机构的关系;(4)法律风险,即金融机构的经营管理活动不符合所在地的法律和监管要求所导致的风险;(5)人员风险,即缺乏足够合格的员工、缺乏对员工表现的恰当评估和考核等导致的风险;(6)系统大事风险,即电脑系统等消失故障所可能导致的风险。依据巴塞尔新资本合同的要求和不同金融机构的实际状况,还可以提出更为具体的操作风险的细分。(一)操作风
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 关系 映射
链接地址:https://www.31ppt.com/p-5863876.html