Objekt-relationales Mapping

Maria Appel Kann 13, 2016 O 1 0
FONT SIZE:
fontsize_dec
fontsize_inc

Objektrelationalen Mapping der Informatik ist ein Programmierverfahren zum Umwandeln von Daten zwischen inkompatiblen Systemen des Typs in objektorientierten Programmiersprachen. Dies schafft in der Tat ein "virtuelles Objekt-Datenbank", die von innerhalb der Programmiersprache verwendet werden kann. Es gibt sowohl kostenlose als auch kommerzielle Pakete zur Verfügung, die objekt-relationales Mapping durchführen, auch wenn einige Programmierer entscheiden, ihre eigenen ORM-Tools erstellen.

In der objektorientierten Programmierung, handeln Datenverwaltungsaufgaben auf objektorientierte Objekte, die fast immer sind nicht-skalare Werte. Betrachten Sie zum Beispiel einen Adressbucheintrag, die eine einzelne Person mit null oder mehr Telefonnummern und keine oder mehrere Adressen darstellt. Den Namen der Person, eine Liste von Telefonnummern und eine Liste von Adressen: Dies könnte in einer objektorientierten Umsetzung von einer "Person-Objekt" mit Attributen / Felder, um jedes Datenelement, dass der Eintrag umfasst halten modelliert werden. Die Liste der Telefonnummern würde sich enthalten "Phone Objekte" und so weiter. Der Adressbuch-Eintrag wird als ein einziges Objekt von der Programmiersprache behandelt. Verschiedene Verfahren können mit dem Objekt verknüpft werden, wie ein Verfahren, um die bevorzugte Telefonnummer, die Heimatadresse, und so weiter zurück.

Allerdings können viele gängige Datenbankprodukten, wie Structured Query Language Datenbankmanagementsysteme nur speichern und skalare Werte wie Ganzzahlen und Strings in Tabellen organisiert manipulieren. Der Programmierer muss entweder konvertieren die Objektwerte in Gruppen von einfacheren Werte für die Speicherung in der Datenbank oder nur innerhalb des Programms verwenden einfache skalare Werte. Objekt-relationales Mapping wird verwendet, um den ersten Ansatz zu implementieren.

Der Kern des Problems ist die Übersetzung der logischen Darstellung der Objekte in ein zerstäubter Form, die geeignet ist, in der Datenbank gespeichert ist, unter Beibehaltung der Eigenschaften der Objekte und ihre Beziehungen so dass sie als Objekte bei Bedarf geladen werden. Wenn diese Regal Funktionalität implementiert, werden die Objekte des beständigen sein.

Überblick

Implementierungsspezifische Einzelheiten Speichertreiber werden in der Regel in einer API in der Programmiersprache, in Gebrauch gewickelt, Belichten Methoden, um mit dem Speichermedium in einer Weise, die einfacher und im Einklang mit den Paradigmen umgebenden Code interagieren.

Hier finden Sie ein einfaches Beispiel. Die unten ist C # -Code, um eine Abfrage zu liefern, selbst in SQL geschrieben, auf eine Datenbank-Engine.

Im Gegensatz dazu nimmt die folgenden verwenden ein ORM-API, so dass das Schreiben von Code, der von Natur nutzt die Features der Sprache.

Der Fall oben macht von einem Objekt, das die Speicher-Repository und Verfahren dieses Objekts. Einem anderen Rahmen könnte Code als statische Methoden bereitzustellen, wie in der folgenden, und doch können andere Verfahren nicht ein objektorientiertes System zu implementieren überhaupt. Oft ist die Wahl des Paradigmas wird, die ORM besten in Design-Prinzipien der umgebenden Sprache passen.

Üblicherweise wird der Rahmen eine Filterung und Abfragefunktionalität freizulegen, so dass Untergruppen der Speicherbasis abgerufen und geändert werden. Der folgende Code-Abfragen für die Menschen in der Datenbank, deren ID-Wert ist "10".

Vergleich mit traditionellen Datenzugriffstechniken

Im Vergleich zu herkömmlichen Techniken der Austausch zwischen einer objektorientierten Sprache und eine relationale Datenbank, ORM oft reduziert die Menge von Codes, die geschrieben werden muss.

Nachteile der ORM-Tools stammen in der Regel aus dem hohen Abstraktionsniveau zu verdecken, was tatsächlich geschieht in der Implementierungscode. Auch hat starke Abhängigkeit von ORM-Software als ein wichtiger Faktor in der Herstellung von schlecht gestalteten Datenbanken zitiert worden.

NoSQL-Datenbanken

Ein weiterer Ansatz ist eine objektorientierte Datenbankverwaltungssystem oder ein Dokument orientierte Datenbanken wie native XML-Datenbanken, die eine größere Flexibilität in der Datenmodellierung bereitzustellen verwenden. OODBMSs sind Datenbanken, die speziell für die Arbeit mit objektorientierten Werte ausgelegt. Verwendung eines OODBMS eliminiert die Notwendigkeit zum Umwandeln von Daten zu und von seinen SQL Form, da die Daten in ihrer ursprünglichen Objektdarstellung gespeichert und Beziehungen direkt dargestellt werden, anstatt dass Tabellen verbinden / Operationen.

Document orientierte Datenbanken auch verhindern, dass der Benutzer mit den "shred" Objekte in Tabellenzeilen. Viele dieser Systeme unterstützen auch die XQuery-Abfragesprache, um Datensätze abzurufen.

Objektorientierten Datenbanken dazu neigen, in komplexen, Nischen-Anwendungen verwendet werden. Eines der Argumente gegen die Verwendung eines OODBMS ist, dass das Umschalten von einer SQL-DBMS auf eine rein objektorientierte DBMS bedeutet, dass Sie in der Lage, anwendungsunabhängige Abfragen für das Abrufen von Ad-hoc-Kombinationen von Daten uneingeschränkt den Pfad zugreifen erstellen zu verlieren. Aus diesem Grund viele Programmierer finden sich mehr zu Hause mit einem Objekt-SQL-Mapping-System, obwohl die meisten objektorientierten Datenbanken sind in der Lage, um SQL-Abfragen in begrenztem Umfang verarbeiten. Andere OODBMS bieten Replikation zu SQL-Datenbanken, als ein Mittel, die der Notwendigkeit einer Ad-hoc-Abfragen, unter Beibehaltung bekannten Abfragemuster.

Herausforderungen

Es gibt eine Vielzahl von Schwierigkeiten, die bei der Betrachtung, wie ein Objekt System einer relationalen Datenbank übereinstimmen auftreten. Diese Schwierigkeiten werden als objektrelationale Impedanzfehlanpassung bezeichnet.

Eine Alternative zur Umsetzung ORM ist die Verwendung der nativen prozeduralen Sprachen mit allen großen Datenbank auf dem Markt zur Verfügung gestellt. Diese können von dem Client mit Hilfe von SQL-Anweisungen aufgerufen werden. Die Data Access Object Design Pattern ist mit abstrakten diese Aussagen verwendet und bieten eine leichte objektorientierte Schnittstelle zu dem Rest der Anwendung.

  Like 0   Dislike 0
Vorherige Artikel Ramiro Pez
Nächster Artikel Yuri Landman
Bemerkungen (0)
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha