メインメニューを開く

差分

インピーダンスミスマッチ

1,482 バイト追加, 2020年3月19日 (木) 01:45
ページの作成:「'''インピーダンスミスマッチ'''(英語:impedance mismatch)とは、ある2つの物体で整合性が取れていない状態のことである。 ==…」
'''インピーダンスミスマッチ'''([[英語]]:impedance mismatch)とは、ある2つの物体で整合性が取れていない状態のことである。
==電気回路==
電気回路においては信号を送り出す側と受け入れる側のインピーダンスが一致していない状態をいう。 改善するにはインピーダンスの低い方に合わせる。
==データベース==
[[プログラミング言語]]と[[データベース]]との間で微妙に型が一致しない状態もインピーダンスミスマッチという。

たとえば[[文字列]]ひとつとっても[[プログラミング言語]]や[[データベース]]ごとに制約が微妙に異なる。

[[SQL]] (最大文字数255文字、null非許容)
name varchar(255) not null
[[C言語]](最大文字数255バイト、null許容)
char name[256];
[[C#]](最大文字数制限なし、null許容)
string name = null;
まず文字数。SQLやC#では全角文字も「1文字」として数えるが、C言語ではバイト数である。次にnull許容型やnull非許容型の存在の有無の違いもある。

=== 解決策 ===
[[プログラミング言語]]から[[データベース]]を意識させないことでインピーダンスミスマッチを強制的に整合させる各種[[ライブラリ]]が開発されている。それらは重量級のものは「[[ORM]]」、軽量なものは「[[Micro ORM]]」などと呼ばれる。