首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是阻抗错配?

什么是阻抗错配?
EN

Stack Overflow用户
提问于 2014-04-16 17:14:16
回答 4查看 9.3K关注 0票数 9

什么是“阻抗不匹配”,它与数据库的关系如何?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-16 17:30:34

引用自hacked.com

想象一下,你有一个通常使用AAA电池的低电流手电筒。不要在家里尝试这个,但是假设你可以把你的汽车电池装在手电筒上。低电流手电筒将可怜地输出大电流电池所能产生的光能的一小部分。同样的,如果你把AAA电池连接到蝙蝠侠的聚光灯下,你的输出也会很低。然而,匹配AAA电池与手电筒,他们将以最大的效率运行。 因此,把这个讨论带回到软件工程,如果你想象数据流类似于一个电流,那么关系数据模型的阻抗与对象层次的阻抗不匹配。因此,数据不会以最大的效率流动,这是阻抗失配的结果。

票数 14
EN

Stack Overflow用户

发布于 2016-12-07 12:11:04

关系阻抗不匹配是一组技术困难,因为对象或类定义必须映射到关系模式定义的数据库表。

具体来说,SQL的初始版本在计算上并不完整(它们没有任何编程结构,比如声明或条件语句),但是现在您可以将SQL嵌入到高级编程语言(Java、C、Python等)中。

接下来是阻抗失配。SQL是一种声明性语言,而C(或您选择嵌入SQL查询的高级编程语言)是一种过程语言,导致各种方法的混合,需要大量不必要的工作。

例如,SQL具有日期类型并一次处理数据行,而高级编程语言可能使用不同的模型来表示数据(例如,可能没有日期类型),并且一次只能处理一行数据。

我们可以考虑使用过程结构( SQL /PSM =持久性存储模块)扩展SQL,以避免阻抗不匹配,并将表视为一个平面文件,每次可以访问一行。

票数 5
EN

Stack Overflow用户

发布于 2020-06-11 06:21:50

两种范式(如面向对象世界和关系世界)之间的不匹配称为阻抗失配。

有5处不匹配.

1) 粒度:-类和表的数量有时是不同的。(在一个表中,我们存储多个类对象数据。)

2) 子类型:-面向对象世界具有继承关系,而关系数据库世界不支持继承。

3) 协会:-面向对象世界具有关联关系,而关系数据库世界不支持关联。

4) 标识:-面向对象世界中对象的标识和关系数据库世界中记录的标识是不同的。

5) 数据导航:-对象数据可以通过其对象引用导航,但表数据不能导航。

如果任何一个框架完全解决了这种不匹配问题,那么这个框架就被称为完美的ORM框架.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23115988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档