什么是阻抗不匹配?

use*_*407 4 sql database

我想知道Impedance Mismatch是什么?以及它们与数据库的关系如何?

我找不到任何信息,它告诉我它是什么,如果有人能解释给我,我将不胜感激.

Vis*_*j V 9

引自hacked.com

想象一下,你有一个通常使用AAA电池的低电流手电筒.不要在家里尝试这个,但假设你可以将汽车电池连接到手电筒上.低电流手电筒将可怜地输出高电流电池能够产生的一小部分光能.同样,如果你将AAA电池连接到蝙蝠侠的聚光灯下,你也会得到低输出.但是,将AAA电池与手电筒相匹配,它们将以最高效率运行.

因此,将此讨论带回软件工程,如果您想象数据流与电流类似,那么关系数据模型的阻抗与对象层次结构的阻抗不匹配.因此,数据不会以最大效率流动,这是阻抗不匹配的结果.

  • 如果您将 12V 汽车电池连接到通常以 1.5V 电压运行的手电筒,它实际上会闪烁并烧毁(因为通过它的功率增加了 64 倍)。写那句话的人对电知之甚少。 (3认同)

小智 5

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

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

这就是阻抗失配。SQL 是一种声明性语言,而 C(或您选择嵌入 SQL 查询的任何高级编程语言)是一种过程语言,导致方法的混合并需要大量不必要的努力。

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

我们可能会考虑使用过程结构(SQL/PSM = Persistent Stored Modules)扩展 SQL 以避免阻抗不匹配,并将表视为一次可以访问一行的平面文件。