什么是ORM

一、Object/Relation Mapping  对象-关系数据库映射
  什么是ORM?
  对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则:
  简单:以最基本的形式建模数据。
  传达性:数据库结构被任何人都能理解的语言文档化。
  精确性:基于数据模型创建正确标准化了的结构。
  典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。
  规则表达式
  ORM把应用程序世界表示为具有角色(关系中的部分)的一组对象(实体或值)。ORM有时也称为基于事实的建模,因为它把相关数据描述为基本事实。这些事实如果分割为再小的事实就会丢失信息。
  简单事实的一些例子包括:
  人有电话
  人住在某个地方
  人生于某个日期
  人在某个日期被雇佣
  ORM提供的不只是描述不同对象间关系的一个简单而直接的方式。ORM还提供了灵活性。使用ORM创建的模型比使用其它方法创建的模型更有能力适应系统的变化。另外,ORM允许非技术企业专家按样本数据谈论模型,因此他们可以使用真实世界的数据验证模型。因为ORM允许重用对象,数据模型能自动映射到正确标准化的数据库结构。
  ORM模型的简单性简化了数据库查询过程。使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构。
  =================================================================================================
  对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。
  对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
  面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
  让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。
  当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。
  如果打开你最近的程序,看看DAL代码,你肯定会看到很多近似的通用的模式。我们以保存对象的方法为例,你传入一个对象,为SqlCommand对象添加SqlParameter,把所有属性和对象对应,设置SqlCommand的CommandText属性为存储过程,然后运行SqlCommand。对于每个对象都要重复的写这些代码。
  除此之外,还有更好的办法吗?有,引入一个O/R Mapping。实质上,一个O/R Mapping会为你生成DAL。与其自己写DAL代码,不如用O/R Mapping。你用O/R Mapping保存,删除,读取对象,O/R Mapping负责生成SQL,你只需要关心对象就好。
  对象关系映射成功运用在不同的面向对象持久层产品中,如:Torque,OJB,Hibernate,TopLink,Castor JDO, TJDO 等。
  一般的ORM包括以下四部分:
  一个对持久类对象进行CRUD操作的API;
  一个语言或API用来规定与类和类属性相关的查询;
  一个规定mapping metadata的工具;
  一种技术可以让ORM的实现同事务对象一起进行dirty checking, lazy association fetching以及其他的优化操作。

二、Operational Risk Management  操作风险管理
   通常,银行的风险管理一般将信用风险管理、市场风险管理、操作风险管理并列为三大领域。与信用风险管理、市场风险管理相比,操作风险的管理应当说还处于起步阶段,目前甚至还没有形成一个统一的、国际认可的定义。不过,随着操作风险的影响不断增大,国际银行界已经越来越将巴塞尔银行委员会的定义作为标准化的界定:
  “操作风险就是指由于内部程序、人员、系统不充足或者运行失当、以及因为外部事件的冲击等导致直接或者间接损失的可能性的风险。”,巴塞尔委员会同时指出,这一界定包含了法律风险,但是并不包含策略性风险和声誉风险。 当前,操作风险已经成为全球银行业风险管理日趋重要的领域之一。实际上,操作风险并不仅仅与银行的“操作”(如后线支持、信息系统出现故障、业务流程上的问题等等)相关,而且也与银行业务操作之外的领域相关,如欺诈交易(rogue trading)、模型的风险、报告和会计体系出现问题等。
  从广义来说,操作风险可以划分为操作性杠杆风险(operational leverage risk)和操作性失误风险(operational failure risk)。操作性杠杆风险主要是指外部因素引起的操作风险,如因为外部冲击导致金融机构收益的减少、这些外部冲击包括税制和政治方面的变动、监管和法律环境的调整、竞争者的行为和特性的变化等,通常衡量这个操作风险的方法是运用情景分析(scenario analysis)。操作性失误风险主要是指因为金融机构的内部因素引起的操作风险,这些内部因素主要包括处理流程、信息系统、人事等方面的失误。总体来看,操作性失误风险在整个操作风险中所占据的比重近年来明显上升。
  如果对操作失误风险作进一步细分,我们还可以划分为:(1)执行风险:即执行人员不能证券理解管理人员的意图或者有意错误操作等;(2)信息风险,即信息在机构内部、或者机构内外之间的产生、接收、处理、储存、转移等环节出现故障;(3)关系风险,即因为产品和服务、管理等方面的问题影响到客户与金融机构的关系;(4)法律风险,即金融机构的经营管理活动不符合所在地的法律和监管要求所导致的风险;(5)人员风险,即缺乏足够合格的员工、缺乏对员工表现的恰当评估和考核等导致的风险;(6)系统事件风险,即电脑系统等出现故障所可能导致的风险。根据巴塞尔新资本协议的要求和不同金融机构的实际状况,还可以提出更为详细的操作风险的细分。
  (一)操作风险的特点
  1与市场风险和信用风险不同的是,操作风险中的风险因素是内在于银行的业务操作的,而且单个的操作风险因素与操作性损失之间并不存在清晰的、可以定量界定的数量关系。因此,对于操作风险的管理,具体的业务部门应当承担第一位的作用,董事会则应当承担最终的责任。
  2在业务规模大、交易量大、结构变化迅速的业务领域,受到操作风险冲击的可能性最大。
  3 由于通常可以监测和识别的操作风险因素同由此可能导致的损失规模、频率之间不存在直接的关系,因而银行的风险管理部门难以确定哪些因素对于操作风险管理来说是最为重要的。
  4 从覆盖范围看,操作风险管理实际上覆盖了几乎银行经营管理的所有方面的不同风险(a catch-all title for a set of very diffent risks),从一个极端看,操作风险既包括那些发生频率高、但是可能造成的损失相对较低的日常业务流程处理上的小错误;在另外一个极端,操作风险也包括那些发生频率低、但是可能导致的损失相对高的自然灾害、大规模舞弊等。因此,试图用一种方法来覆盖操作风险的所有领域几乎是不可能的。
  (二)操作风险应当包含的内容
  目前,国际金融界关于操作性风险应当包含那些内容,也依然存在相当明显的争论和分歧。大致来说,可以归结为以下几个方面:
  基本认同的内容
  1 清算失误
  2 交易记录错误
  3 火灾和洪灾等灾害
  4 系统故障
  部分认同的内容
  1 内部舞弊
  2 外部舞弊
  3 虚假交易
  4 不适当的销售技术
  5 战略决策失误(如进入边际收益已经很低的业务领域)
  少数认同的内容
  1 市场逆转时导致的损失
  2 交易对手违约
  同时,从金融几个的不同业务领域看,投资银行业务、市场交易业务、公司业务等被视为市场风险和信用风险主导的业务(market and credit risk dominates),零售业务、资产管理业务、信托业务、服务性收费业务则被视为操作风险主导的业务(operational risk domonates)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值