阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

  • 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:25970
用户头像

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

关注

评论

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

“程”风破浪的开发者| 千里之行,始于发心

法医

学习方法 前端 “程”风破浪的开发者

论文解读丨CIKM'22 MARINA:An MLP-Attention Model for Multivariate Time-Series Analysis

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

Python多任务实现方式(一)-----多进程

木偶

Python 进程 10月月更

java中HashMap的设计精妙在哪?

华为云开发者联盟

Java 开发 华为云 企业号十月 PK 榜

在北京web前端培训后好找工作

小谷哥

TiKV 源码阅读三部曲(二)读流程

PingCAP

TiKV 源码解读

华为云数据库-RDS for MySQL数据库

与时俱进的时代

华为云

数据结构-二叉树中的操作

可口也可樂

数据结构 二叉树 10月月更

一文看懂Vue2和Vue3中设置404界面

木偶

Vue 前端 10月月更

如何实现车联网的灵活数据采集

EMQ映云科技

车联网 物联网 IoT 数据采集 10月月更

navicat 绿化版

源字节1号

软件开发 前端开发 后端开发 小程序开发

大数据技术培训零基础学习怎么样

小谷哥

告别宽表,用DQL成就新一代BI

石臻臻的杂货铺

大数据 BI 10月月更

C#中关于接口(Interface)的详解(附带案例)

木偶

C# 接口 10月月更

华为云数据库稳定可靠-即开即用

与时俱进的时代

华为

研发效能度量不要“你觉得”,而要这样的度量指标体系!

博文视点Broadview

IPv4 用完,如今花钱才能重新使用获取?

郑州埃文科技

IP

大数据技术培训零基础学习怎么样

小谷哥

一图看懂融云「百幄」数智办公平台

融云 RongCloud

办公 数智化

广告内容定向分级,保护未成年人身心健康

HMS Core

广告sdk

C++从入门到精通(第九篇) :多态

雪芙花

c c++ 10月月更

ShareSDK iOS端 UniversalLink生成最佳实践

MobTech袤博科技

ios universal link

C++中的继承

可口也可樂

c++ 继承 10月月更

二叉树常见oj题(持续更新中)

雪芙花

c c++ 10月月更

C++从入门到精通(第八篇) :IO流

雪芙花

c c++ 10月月更

线下面授前端培训哪个机构好

小谷哥

华为云文档数据库服务更安全

与时俱进的时代

华为

“科技与狠活”梗爆火,食品安全焦虑问题怎么破?

旺链科技

区块链 产业区块链 食品安全 企业号十月PK榜

java培训和自学相比效果如何

小谷哥

使用参数非参数和机器学习方法分析印度降雨变化,能给我国带来什么警示?

蓝海大脑GPU

C++中的多态

可口也可樂

c++ 多态 10月月更

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