写点什么

对象关系映射——用户案例研究

  • 2008-07-26
  • 本文字数:1396 字

    阅读完需:约 5 分钟

ODBMS.org 的 Roberto Zicari 收集整理了来自若干对象 / 关系映射技术用户的访谈和故事。这些案例主要围绕着领域模型中的对象技术与数据模型中的关系技术之间的“阻抗不匹配”。Zicari 教授为每位用户准备了五个问题。前面的问题主要围绕请用户解释他们的应用、O/R 的障碍,以及用户如何解决或者绕过困难。后面的问题调查 ODBMS 技术是否以及如何在这些领域中发挥了作用。这五个问题分别是:

  1. 请简要解释你的应用领域以及你在企业中的角色。
  2. 你是否遇到“阻抗不匹配”的问题?
  3. 你用何方案存储和管理持久化对象?对于在新项目里使用各种持久化方案你有何经验?在使用中得到什么教训?
  4. 你是否相信对象数据库系统是解决“对象持久化”问题的合适方案?如果是,为什么?如果否,又为什么?
  5. 你对对象持久化领域未来一到两年的研发有何希望?

在这项研究里,对于术语“阻抗不匹配”是这样描述的:> 持久化存储数据所采用的数据模型(无论是文件系统还是数据库管理系统)如果与编写程序(C++、Smalltalk、Visual Basic、Java、C#)时所采用的数据模型有差异,就称为“阻抗不匹配”问题。

虽然对于 O/R 阻抗不匹配的定义、甚至这个问题是否存在都有所争论,但在Zicari 的调查中很多人都说曾经在项目中遭遇过这种问题。英国Iona 的技术监督John Davies 在回答“你是否遇到‘阻抗不匹配’的问题”时说: > “阻抗不匹配”是企业里的严重问题,高达25-33% 的开发时间浪费在努力将对象挤压进关系型的持久化,也就是一般说的对象关系映射(ORM)。虽然ORM 工具的例子都着力演示其简易,但现实的情况要复杂好几个数量级,于是整个ORM 的概念都没法站住脚。即便最优秀的ORM 工具也会创建出效率极低的模型,导致严重的性能问题。

Richard Aherns 是 Merrill Lynch 的一名主管,他也认为确实存在“阻抗不匹配”问题。 > 我们绝对遇到了这种问题。对于股本衍生工具行业,敏捷和上市时间是极其重要的。经常会有新产品推出,需要灵活的技术才能适应并跟上行业变化的快速步伐。在订单和报价管理领域,我们有种类非常多的产品和资产,必须一次次维护其 OR 映射,这拖慢了开发人员的生产效率,也限制了我们的伸缩能力。

德国 Siemens AG 的软件架构师 Gerd Klevesaat 也承认存在不匹配问题,他还说明了为何 ORM 工具不一定能帮上开发者的忙。他说,“你被迫使用一种特殊的查询语言来定义查询。如果能用编程语言会比较有利,因为可以对查询语句做编译时检查,还可以利用导航(navigation)能力。”Gerd 指出已经有了一些技术和工具开始填补这个空缺,特别是“.NET 里的 LINQ、db4o 里的原生查询、以及 Groovy 的 DataSet”。Scott Ambler 有不一样的意见,他在 IBM Rational 担任敏捷开发的实践领导。对于“阻抗不匹配”问题,他的回答是在技术方面已经有了几种解决方案(例如 O/R 持久化框架、对象数据库、OR 数据库)。他反过来指出在大多数组织中,数据社群与开发社群之间存在“文化上的阻抗不匹配”:“这两类人对 IT 世界的观察方式不一样,两者的方式都各有优劣,而紧密合作会使两者都受益。”在 ODBMS.org 的案例研究之外,Scott对这个主题作了更进一步的阐述

总的来说,Zicari 的研究着眼在暴露面向对象系统使用关系数据库技术的问题。研究还使我们看到,已经有很多开发及商业组织开始把对象数据库和其他对象持久化技术看作是适合解决某类问题的新兴企业技术。

查看英文原文: Object Relational Mapping - User Case Studies

2008-07-26 22:251490
用户头像

发布了 225 篇内容, 共 73.6 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

得物API元数据中心探索与思考

得物技术

API管理 元数据中心 自动解析

如何用装饰者模式代理final方法

程序员万金游

spring aop #java #程序员 #Spring #后端

EOS系统合约链账户介绍

BSN研习社

前端首屏优化 | 提升首屏的 8 个很简单的手段

Yestodorrow

可观测性 网站性能

语音识别技术:从离线到在线的转变

数据堂

什么是API商品数据接口?该怎么使用?

Noah

API 安全 API 文档 API 开发

如何利用Vert.x快速开发你的应用

Kevin_913

首单立减7元华为负一屏买电影票又便宜又快

最新动态

一种通过延迟事务提升数据库性能的方法

天翼云开发者社区

数据库

深圳华秋电子有限公司与共熵服务中心缔结战略合作伙伴关系

华秋电子

合作伙伴

Spring Boot 中常见且必备的注解解析

Liam

Java 程序员 Spring Boot 后端 注解

一文带你走进 Linux 小工具 - tmux

KaiwuDB

Linux tmux KaiwuDB

三个要点,掌握Spring Boot单元测试

互联网工科生

Spring Boot 分层架构 单元测试 JUnit Mockito

阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享

阿里巴巴云原生

阿里云 容器 云原生 KubeCON

基于Java开发的企业人力资源管理系统(招聘、绩效、考勤、酬薪管理)

金陵老街

KubeCon China 2023 | 华为ICT开源产业与生态发展团队参会精彩回顾

科技热闻

华秋DFM新功能丨可焊性检查再次升级,抢先体验!

华秋电子

长沙企业采购云管平台选哪家厂商?联系电话多少?

行云管家

云计算 云服务 云管理平台 云管平台

供应链透明度的代币开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发

JAVA OOM异常最佳实践

Yestodorrow

Java 运维 监控 可观测性 系统性能

与创新者同行!Doris Summit Asia 2023 完整议程公开,首届线下峰会邀你报名!

SelectDB

大数据 数据分析 Doris 峰会 数据库、

语音识别技术的现状及发展趋势

数据堂

实用帖|打破常规,巧用分层地毯的8种方法!

Finovy Cloud

C4D

[分组聚合]基于Lucene8进行多值字段分组聚合(多属性字段)

alexgaoyh

lucene Spring Boot 分组聚合 单字段 多属性

全面解读 SQL 优化 - 统计信息

KaiwuDB

sql 优化 KaiwuDB

一种提升SQL改写效率的方法

天翼云开发者社区

数据库

<em> 和 <strong> 标签的区别

Lee Chen

html 前端

支持信创系统的数据库审计系统有哪些?用哪家好?

行云管家

数据库 信创 数据安全 国产化 数据库审计

对象关系映射——用户案例研究_数据库_Steven Robbins_InfoQ精选文章