Impedance Mismatch

Impedance Mismatch

Als "Object-relational Impedance Mismatch" - oft auch nur Impedance Mismatch - (z.dt. etwa objekt-relationale Unverträglichkeit) bezeichnet man ein Problem der Informatik in der Anwendungsentwicklung, das auftritt, wenn Objekte aus einer objektorientierten Programmiersprache in einer relationalen Datenbank gespeichert werden.

Inhaltsverzeichnis

Hintergrund

Das Problem entstand, als sich objektorientierte Programmiersprachen in vielen Bereichen durchzusetzen begannen, während die Daten seit Jahrzehnten in relationalen Datenbanken gespeichert werden.

Problembeschreibung

Das Problem liegt in den unterschiedlichen Paradigmen der beiden Systeme begründet. So lässt sich ein Objekt durch vier grundlegende Eigenschaften charakterisieren:

  • Identität
  • Zustand
  • Verhalten
  • Kapselung

Ein relationales System hingegen leitet sich aus der relationalen Algebra ab und speichert Wahrheitsaussagen in sog. Relationen. Eine Relation könnte z.B. so aussehen: {Name, Firma}. Diese Relation entspricht einer Behauptung der Form: "Es existiert eine Person mit Namen NAME der bei einer Firma FIRMA arbeitet.". Ein Tupel ist eine Wahrheitsaussage innerhalb der Relation die z.B. so aussieht: {John Doe, ACME} (Es gibt einen John Doe, der bei ACME arbeitet.). Ein Tupel setzt sich wiederum aus Attributen (Name & Firma) zusammen. Durch Verknüpfung von Relationen lassen sich neue Relationen bilden und damit neue Wahrheitsaussagen ableiten, wie z. B. die Antwort auf "Wie viele Personen gibt es, die bei ACME arbeiten?".

Die beiden Systeme sind offensichtlich schon sehr unterschiedlich, dennoch ergeben sich noch eine Menge weiterer Unterschiede. So gelten z. B. zwei Tupel mit den gleichen Attributen als identisch - wohingegen zwei Objekte mit den gleichen Attributen immer unterschiedlich sind. D. h. wenn man zwischen beiden Welten vermitteln will, muss man der Relation einen Unique Identifier hinzufügen, damit die Objekte eindeutig identifizierbar bleiben.

Lösungsansätze

Objektorientierte Datenbank

Die nächstliegende Lösung ist, die relationale Datenbank durch eine objektorientierte Datenbank zu ersetzen. Die programmatische Handhabung wird dadurch erleichtert, komplexe Abfragen können aber sehr kompliziert werden. Des Weiteren stößt man damit bei Geschäftsführung und Datenbankadministratoren oft auf Ablehnung, da die Daten fest mit dem Objekt verdrahtet sind und nicht ohne die dazugehörigen Anwendung sichtbar gemacht werden können. Etwaiges Mapping entfällt komplett.

Programmiersprache um relationale Funktionen erweitern

Damit wird das Problem rückwärts gelöst. Durch die relationale Unterstützung der verwendeten Sprache ist kein Mapping mehr notwendig. Diese Lösung widerstrebt allerdings vielen OOP-Entwicklern, da sie die Verwendung von Objekten meist einschränkt.

O/R-Mapper

Ein objektrelationaler Mapper ist eine Schicht zwischen der Anwendung und der Datenbank. Er kümmert sich um das komplette Mapping zwischen Objekten und Tabellen. Dieser Vorgang ist für den Entwickler unsichtbar. Heutige Mapper sind sehr performant - bei steigender Komplexität ergeben sich daraus allerdings eine Vielzahl weiterer Probleme. Je spezieller die Lösung ist, desto häufiger muss der Entwickler bestimmen, wie das Mapping zwischen den Welten geschehen soll. Dies kann mitunter äußerst kompliziert werden.

Fazit

Sämtliche bisher existierenden Lösungsansätze bieten keine wirkliche Lösung an, nur eine mehr oder weniger elegante Umgehung des Problems. Egal für welche Lösung man sich entscheidet - solange die Systeme unterschiedlich sind, wird jeder Entwickler früher oder später an den Punkt gelangen, an dem seine Lösung einen oder mehrere der folgenden Punkte nicht mehr erfüllt.

  • Wartbarkeit
  • Performance
  • Verständlichkeit

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Object-relational impedance mismatch — The object relational impedance mismatch is a set of conceptual and technical difficulties that are often encountered when a relational database management system (RDBMS) is being used by a program written in an object oriented programming… …   Wikipedia

  • Object-relational impedance mismatch — Als Object relational Impedance Mismatch – oft auch nur Impedance Mismatch – (englisch etwa für objekt relationale Unverträglichkeit) bezeichnet man ein Problem der Informatik in der Anwendungsentwicklung, das auftritt, wenn Objekte aus einer… …   Deutsch Wikipedia

  • Mismatch loss — in transmission line theory is the amount of power expressed in decibels that will not be available on the output due to impedance mismatches and reflections. A transmission line that is properly terminated, that is, terminated with the same… …   Wikipedia

  • Impedance — is a concept associated with the transmission of waves and electrical signals. There are many kinds of waves, and impedance is different in each of them, hence this disambiguation page. However, impedance is also a unifying concept. It is related …   Wikipedia

  • Impedance matching — In electronics, impedance matching is the practice of designing the input impedance of an electrical load (or the output impedance of its corresponding signal source) to maximize the power transfer and/or minimize reflections from the load.… …   Wikipedia

  • impedance — noun a) A measure of the opposition to the flow of an alternating current in a circuit; the aggregation of its resistance, inductive and capacitive …   Wiktionary

  • sound — sound1 soundable, adj. /sownd/, n. 1. the sensation produced by stimulation of the organs of hearing by vibrations transmitted through the air or other medium. 2. mechanical vibrations transmitted through an elastic medium, traveling in air at a… …   Universalium

  • Sound — /sownd/, n. The, a strait between SW Sweden and Zealand, connecting the Kattegat and the Baltic. 87 mi. (140 km) long; 3 30 mi. (5 48 km) wide. Swedish and Danish, Oresund. * * * I Mechanical disturbance that propagates as a longitudinal wave… …   Universalium

  • Composite image filter — Linear analog electronic filters Network synthesis filters Butterworth filter Chebyshev filter Elliptic (Cauer) filter Bessel filter Gaussian filter Optimum L (Legendre) filter Linkwitz Riley filter …   Wikipedia

  • Standing wave ratio — In telecommunications, standing wave ratio (SWR) is the ratio of the amplitude of a partial standing wave at an antinode (maximum) to the amplitude at an adjacent node (minimum), in an electrical transmission line. The SWR is usually defined as a …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”