对象关系映射
物件关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程式设计技术,用于实现面向对象编程语言里不同类型系统的资料之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟物件数据库”。
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,物件关系映射技术应运而生。
简单的说:ORM相当于中继资料。具体到产品上,例如下边的ADO.NET Entity Framework。DLINQ中实体类的属性[Table]就算是一种中继资料。
物件关系映射成功运用在不同的面向对象持久层产品中,如:Torque,OJB,Hibernate,TopLink,Castor JDO,TJDO,Active Record,NHibernate,ADO.NET Entity Framework,ObjectiveSql等。
参见
- 对象关系映射软件列表
- AutoFetch - automatic query tuning
- CORBA
- 数据库
- 对象数据库
- 对象持久化
- 对象关系数据库
- Object-relational impedance mismatch
- 关系模型
- SQL
- 服务数据对象
- Java 数据对象
- ADO.NET Entity Framework
- OpenAccess ORM
- 主动记录
- 数据映射器模式
参考文献
外部链接
- Scott W. Ambler的Persistence Layer的详细设计论文
- 根据上述论文的设计思路,Artem Rudoy 实现的 PL(Persistence Layer)开源项目 (页面存档备份,存于互联网档案馆)
- About ORM (页面存档备份,存于互联网档案馆) by Anders Hejlsberg
- Mapping Objects to Relational Databases: O/R Mapping In Detail (页面存档备份,存于互联网档案馆) by Scott W. Ambler
- Core J2EE Design Pattern: Data Access Objects(页面存档备份,存于互联网档案馆)
- Choosing an Object-Relational mapping tool (页面存档备份,存于互联网档案馆)
- Perl's DBIx::Class ORM (页面存档备份,存于互联网档案馆)
- Object-relational mappers for Python (页面存档备份,存于互联网档案馆)
- A tutorial with video explaining ORM
- QuickDB (页面存档备份,存于互联网档案馆)
- Active Record in Java (页面存档备份,存于互联网档案馆)