zoukankan      html  css  js  c++  java
  • ORM

    一.简述

          对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

         对象关系映射(Object-Relational Mapping)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化的结构。 典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。

          简单的说:ORM相当于中继数据。

    二.对象

          规则表达式:ORM把应用程序世界表示为具有角色(关系中的部分)的一组对象(实体或值)。ORM有时也称为基于事实的建模,因为它把相关数据描述为基本事实。这些事实如果分割为再小的事实就会丢失信息。

          ORM提供的不只是描述不同对象间关系的一个简单而直接的方式。ORM还提供了灵活性。使用ORM创建的模型比使用其它方法创建的模型更有能力适应系统的变化。另外,ORM允许非技术企业专家按样本数据谈论模型,因此他们可以使用真实世界的数据验证模型。因为ORM允许重用对象,数据模型能自动映射到正确标准化的数据库结构。

          ORM模型的简单性简化了数据库查询过程。使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构。

    三.概念

          对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

          面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。    

          一般的ORM包括以下四部分:

            一个对持久类对象进行CRUD操作的API;

            一个语言或API用来规定与类和类属性相关的查询;
            一个规定MAPPING METADATA的工具;
            一种技术可以让ORM的实现同事务对象一起进行DIRTYCHECKING, LAZY ASSOCIATION FETCHING以及其他的优化操作。

    四.映射模式

       1、数据类型映射模式

           1.1简单数据类型模式:建立UML和关系型数据库中简单数据类型的映射表以指导映射。
           1.2枚举数据类型模式:每种枚举类型对应一个表,只有一个列(_ENUMLITERAL)表示枚举值。
           1.3基于类的数据类型模式:使用外键约束,将基础列与基于类的类型实例相关联。
       2、类映射模型
           每个类对应一个表。单值属性、多值属性、继承关系可以用下述方法映射,而引用属性将在关联映射模式中提到。
           2.1单值属性模式:是CARDINALITY的上界为1的属性,映射到类所对应的表的列上。若其下界也为1(必须有的属性),列属性为NOT NULL。
           2.2多值属性模式:每个多值属性映射成一个独立的表,使用外键连接到类所对应的表上。
           2.3继承模式:每加入一个类的实例时,根据其继承关系自顶向下生成每个类的对象,这些对象具有相同的ID(根对象对应记录的主键)。删除对象实例时,自底向上删除数据。
       3、关联映射模式
           3.1一对一关联模式:在关联两端各加一列。
           3.2一对多关联模式:和3.1一样。如果多这端是有序的,还需加入一列表示序号。
           3.3多对多关联模式:将关联单独作一个表。
           3.4组合关联模式:注意级联式删除。
           3.5反演关联模式:关联两端指向相关的类型,和普通关联一样。
           3.6成对关联模式:关联记录两个类间的关系,用交集类表示关联,表示成一个单独的表,每个关联对应一个表,用外键表示它们间的关系。
           3.7关联上的OCL需要分析成对应的存储过程代码。
           3.8保证关联的CARDINALITY也需要分析成对应的存储过程代码。
       4、引用映射模式
           在UML中不存在的MOF特征,指属性是声明为引用类型的实例。用存储过程实现。

  • 相关阅读:
    JavaScript数据类型(第一天)
    数据库的事务隔离级别
    SSH(远程登录)原理
    Hadoop安装
    activiti学习第二天
    activiti学习第一天
    .net调用系统软键盘(兼容win7及win10)
    使用Blend设计出符合效果的WPF界面
    Mysql的收获
    PHP文件上传安全处理的步骤
  • 原文地址:https://www.cnblogs.com/arxk/p/5563265.html
Copyright © 2011-2022 走看看