なぜ急に電気記号の話が?と思ったことがあるのでざっくりまとめる
よく使われる場面
インピーダンスに関しては身近な話では音響機器の話で出てくる。出力のインピーダンスが高いもの(ハイインピーダンス)に対して、受けてである入力のインピーダンスが低いもの(ローインピーダンス)をセットするとロスが多いなどの話で表現される。ここに関しては前提知識がないとイメージがつきづらいので、以下サイトの絵を参照すると理解しやすい。
インピーダンスとインピーダンス・マッチング | アンブレラカンパニー | BUZZ
本来はインピーダンスが同等な者同士で接続すればロスは限りなくゼロだが、現実的にはそうはいかないので、ローインピーダンスからハイインピーダンスのものにつなげることが良いとされている。
転じて、ソフトウェアにおけるインピーダンスミスマッチとは
ソフトウェアにおけるインピーダンスミスマッチは O/R(Obeject/Relation)インピーダンスミスマッチ
として表現され、いわゆるオブジェクト指向での Object
とリレーショナルデータベースがもつ Relational
なデータ間でミスマッチが発生してロスが起きることを指している。
具体的な事象としてはRDBに定義したテーブル定義から、アプリケーション上で取り扱うオブジェクトを起こす特に変換ロスが発生するようなことを指している。そのためRailsのActiveRecordなどはRDBのテーブルとアプリケーション上のModelをほぼ同一に取り扱っているので、インピーダンスミスマッチは発生しない設計となっている。