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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

インピーダンスミスマッチとは、電気電子の分野でいう「インピーダンスの整合ができていない」という意味であるが、電気に限らず物質中を伝わる振動などにおいても、振動の伝わり方が異なる媒体の境界において、全く同じ現象が発生することから、技術者は電気信号におけるインピーダンス整合のアナロジーでそれを説明することがある。例えば、管楽器の閉鎖された終端はインピーダンスが無限大、逆に開放端はインピーダンスがほぼゼロとなっている、というように置き換えることができ、どちらもインピーダンスのミスマッチであるため、そこで振動の反射が起きている、と考えるのである。

コンピュータシステムでは、以上のような物理的なちゃんとした対応があるアナロジーではないが、APIなどのようなレイヤや領域が異なるシステム間の界面(インタフェース)において、想定された設計と異なる使われ方(ユースケース)だったり、「セマンティックギャップ」がある場合に、その界面を挟んだ処理の効率の低下や、プログラミングなどの実装の工数の著しい増加などといった非効率が発生することから、そういった不整合を「インピーダンスミスマッチ」と俗に呼ぶことがある。

なお以上のような、用語についての説明を全く行わず、単に(この記事では以下で説明するような、アプリケーション開発においてしばしば発生する煩雑さを)「オブジェクト指向言語とリレーショナルデータベースとのギャップのことをインピーダンスミスマッチと言」う、などと書く著者もいる[1][2]が、この記事では以下専らそれについて説明する。システム開発上、煩雑となりがちで生産性が著しく低下する要因として挙げられる。主に、この問題を解決するO/Rマッピングなどの手法を説明する文脈で用いられる。

オブジェクト指向プログラミングリレーショナルデータベースは異なるデータモデルを持つ。リレーショナルデータベース関係モデルは整合性を重視した2次元表の構造を持っており、データ同士は関係(リレーション)によって表現される。一方オブジェクト指向プログラミングのデータはひとまとまりのオブジェクトとして扱われ、関係モデルにおける関係と同じような構造を持つとすれば、オブジェクト指向としての恩恵が得られるモデル設計ができない。逆も然り、オブジェクトモデルをリレーショナルデータベースで実現しようとすると、整合性が損なわれたり、関係が表現できなくなる。このデータ構造や概念の隔たりがインピーダンスミスマッチと呼ばれる。

以下のような関連項目がある。

  1. ^ 山田 祥寛 (2014/9/20). ASP.NET MVC 5 実践プログラミング. 秀和システム. 
  2. ^ 物理現象からのアナロジーとしては、ギャップ(間隙)があるのではなく、両者は接しているのだがその接しかたがうまくないのである。