Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 什么是阻抗失配?_Sql_Database - Fatal编程技术网

Sql 什么是阻抗失配?

Sql 什么是阻抗失配?,sql,database,Sql,Database,什么是“阻抗不匹配”以及它与数据库的关系如何 假设你有一个通常使用AAA的小电流手电筒 电池。不要在家里尝试这个,但是假设你可以连接你的 汽车电池到手电筒。小电流手电筒将 可怜的是,输出的光能只有大电流的一小部分 电池能够产生电能。同样,如果您连接了AAA 电池到蝙蝠侠的聚光灯,你也会得到低输出。然而, 将AAA电池与手电筒相匹配,它们将与电池一起运行 最大效率 因此,如果您愿意,请回到软件工程 假设数据流类似于电流,那么 关系数据模型的阻抗与阻抗不匹配 对象层次结构的。因此,数据不会以最大速度

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

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

因此,如果您愿意,请回到软件工程 假设数据流类似于电流,那么 关系数据模型的阻抗与阻抗不匹配 对象层次结构的。因此,数据不会以最大速度流动 效率,阻抗失配的结果


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

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

这里出现了阻抗失配。SQL是一种声明性语言,而C(或您选择在其上嵌入SQL查询的任何高级编程语言)是一种过程性语言,这会导致各种方法的混合,并需要大量不必要的工作

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

我们可以考虑用程序结构扩展SQL(SQLS/PSM=持久存储模块),以避免阻抗失配,并将表作为一个可以一行访问的平面文件处理。 两种范例(如面向对象世界和关系世界)之间的不匹配称为阻抗不匹配。

存在5个不匹配项

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

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

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

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

5) 数据导航:-对象数据可以通过其对象引用进行导航,但表数据无法导航

如果任何框架完全解决了这种不匹配,那么该框架称为完美ORM框架。


如果你把一个12V的汽车电池放在一个通常在1.5V电压下运行的flashflight上,它实际上会闪烁并烧坏(因为通过它的能量会增加64倍)。写这句话的人对电知之甚少。手电筒通常使用一个以上的电池,这会增加电压,尽管承认8节AAA电池是不寻常的。