Object-Relational Mapping

Object-Relational Mapping

Objektrelationale Abbildung (englisch object-relational mapping, ORM) ist eine Technik der Softwareentwicklung, mit der ein in einer objektorientierten Programmiersprache geschriebenes Anwendungsprogramm seine Objekte in einer relationalen Datenbank ablegen kann. Dem Programm erscheint die Datenbank dann als objektorientierte Datenbank, was die Programmierung erleichtert. Implementiert wird diese Technik normalerweise mit Klassenbibliotheken, wie beispielsweise Hibernate für die Programmiersprache Java.

Inhaltsverzeichnis

Motivation

Objektorientierte Programmiersprachen kapseln Daten und Verhalten in Objekten, hingegen legen relationale Datenbanken Daten in Tabellen ab. Die beiden Paradigmen sind grundlegend verschieden. So kapseln Objekte ihren Zustand und ihr Verhalten hinter einer Schnittstelle und haben eine eindeutige Identität. Relationale Datenbanken basieren dagegen auf dem mathematischen Konzept der relationalen Algebra. Dieser konzeptionelle Widerspruch wurde in den 1990er Jahren als object-relational impedance mismatch bekannt.

Um den Widerspruch aufzulösen, wurden verschiedene Lösungen vorgeschlagen, beispielsweise objektorientierte Datenbanken oder die Erweiterung von Programmiersprachen um relationale Konzepte. Die Abbildung von Objekten auf Relationen hat den Vorteil, dass einerseits die Programmiersprache selbst nicht erweitert werden muss und andererseits relationale Datenbanken als etablierte Technik in allen Umgebungen als ausgereifte Software verfügbar sind.

Grundlegende Techniken

Im einfachsten Fall werden Klassen auf Tabellen abgebildet, jedes Objekt entspricht einer Tabellenzeile und für jedes Attribut wird eine Tabellenspalte reserviert. Die Identität eines Objekts entspricht dem Primärschlüssel der Tabelle. Hat ein Objekt eine Referenz auf ein anderes Objekt, so kann diese mit einer Fremdschlüssel-Primärschlüssel-Beziehung in der Datenbank dargestellt werden.

Der Begriff Shadow Information („Schatteninformation“) bezeichnet zusätzliche Daten, die ein Objekt benötigt, um persistent abgelegt zu werden.[1] Dazu gehören Primärschlüssel ─ speziell wenn es sich um Surrogatschlüssel ohne fachliche Bedeutung handelt ─ sowie Hilfsdaten für die Zugriffssteuerung, beispielsweise Zeitstempel.

Einzelnachweise

  1. Scott W. Ambler: Agile Database Techniques. S. 228–229. 

Literatur

  • Scott W. Ambler: Agile Database Techniques. Wiley & Sons, 2003, ISBN 0471202835 (online ; Stand: 22. Oktober 2007). 

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

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

  • Object-relational mapping — Mapping objet relationnel Un mapping objet relationnel (en anglais object relational mapping ou ORM) est une technique de programmation informatique qui crée l illusion d une base de données orientée objet à partir d une base de données… …   Wikipédia en Français

  • Object-relational mapping — For another use of ORM , see Object role modeling. Object relational mapping (ORM, O/RM, and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in object oriented programming… …   Wikipedia

  • List of object-relational mapping software — This is a list of well known object relational mapping software. This list is neither up to date nor all inclusive.Java*Carbonado, open source framework, backed by Berkeley DB or JDBC *Cayenne, apache, open source for java *Ebean, open source ORM …   Wikipedia

  • Comparison of object-relational mapping software — This table shows some of the major ORM software products currently available. Software Platform Availability License Version Autumn Python Open source MIT License 0.5.1 (2008 12 23[1]) DataObjects.Net .NET 4.0 Commercial 4.4 (2011 02 11 …   Wikipedia

  • Object-relational mapping — …   Википедия

  • 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 database — An object relational database (ORD), or object relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object oriented database model: objects, classes and inheritance… …   Wikipedia

  • Object Relational Bridge — Apache ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases. OJB has been designed for a large range of applications, from embedded systems to rich… …   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

  • Neo (object-relational toolset) — Neo (or .NET Entity Objects) is an object relational mapping (ORM) solution for the Microsoft .NET platform. It is open source software that is distributed freely by its creator, Erik Dörnenburg, of ThoughtWorks. It provides a framework for… …   Wikipedia

Share the article and excerpts

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