コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

システム開発におけるインピーダンスミスマッチという言葉の意味をざっくり整理する

なぜ急に電気記号の話が?と思ったことがあるのでざっくりまとめる

よく使われる場面

インピーダンスに関しては身近な話では音響機器の話で出てくる。出力のインピーダンスが高いもの(ハイインピーダンス)に対して、受けてである入力のインピーダンスが低いもの(ローインピーダンス)をセットするとロスが多いなどの話で表現される。ここに関しては前提知識がないとイメージがつきづらいので、以下サイトの絵を参照すると理解しやすい。

インピーダンスとインピーダンス・マッチング | アンブレラカンパニー | BUZZ

本来はインピーダンスが同等な者同士で接続すればロスは限りなくゼロだが、現実的にはそうはいかないので、ローインピーダンスからハイインピーダンスのものにつなげることが良いとされている。

転じて、ソフトウェアにおけるインピーダンスミスマッチとは

ソフトウェアにおけるインピーダンスミスマッチは O/R(Obeject/Relation)インピーダンスミスマッチ として表現され、いわゆるオブジェクト指向での Object とリレーショナルデータベースがもつ Relational なデータ間でミスマッチが発生してロスが起きることを指している。

具体的な事象としてはRDBに定義したテーブル定義から、アプリケーション上で取り扱うオブジェクトを起こす特に変換ロスが発生するようなことを指している。そのためRailsActiveRecordなどはRDBのテーブルとアプリケーション上のModelをほぼ同一に取り扱っているので、インピーダンスミスマッチは発生しない設計となっている。

関連リンク