Zum Inhalt springen

ORM (Object-Relational Mapping)

oder auch Object-Relational Mapping, Objektrelationale Abbildung

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 08.11.2026

Ein ORM ist eine Technik, die Tabellen einer relationalen Datenbank als Objekte im Programmcode abbildet. Statt SQL zu schreiben, arbeitest du mit Klassen und Methoden, und das ORM übersetzt das in Datenbankabfragen.

ORM

Eine Schicht zwischen Programm und Datenbank, die Datensätze als Objekte darstellt und Abfragen selbst in SQL übersetzt.
Beispiel: „Mit dem ORM von Laravel holst du alle offenen Bestellungen mit einer Zeile, ohne SQL zu schreiben.“

Auch: Object-Relational Mapping, auf Deutsch objektrelationale Abbildung.

Verwandt: SQL, die Sprache, in die ein ORM seine Abfragen übersetzt.

Wie ein ORM arbeitet

Jede Tabelle bekommt eine Klasse, jede Zeile wird zu einem Objekt dieser Klasse, und jede Spalte zu einer Eigenschaft. Beziehungen zwischen Tabellen werden zu Methoden: Eine Bestellung kennt ihren Kunden, ein Kunde seine Bestellungen.

$offen = Bestellung::where('status', 'offen')
    ->with('kunde')
    ->get();

Bekannte ORMs sind Eloquent in Laravel, Doctrine in Symfony, das ORM von Django, Hibernate in Java und Prisma in TypeScript.

Was ein ORM bringt

Lesbaren Code und Schutz vor SQL-Injection, weil Werte nie direkt in die Abfrage geschrieben werden. Dazu kommen Migrationen, die Änderungen an der Datenbankstruktur als Code festhalten, sodass jede Umgebung denselben Stand hat.

Und weil das ORM die Unterschiede zwischen den Datenbanken ausgleicht, läuft derselbe Code mit MySQL, PostgreSQL oder SQLite.

Wo ein ORM Fallen stellt

Beim N+1-Problem. Wer hundert Bestellungen lädt und für jede den Kunden einzeln abfragt, schickt hunderteins Abfragen an die Datenbank. Die Seite wird langsam, obwohl der Code harmlos aussieht.

Die Lösung ist, Beziehungen vorab mitzuladen, im Beispiel oben über with. Bei sehr komplexen Auswertungen ist handgeschriebenes SQL trotzdem oft die bessere Wahl.

Siehe auch:

SQL

Die Sprache, mit der Datenbanken befragt und verändert werden.

#Programmiersprachen

Laravel

Ein PHP-Framework für Webanwendungen, bekannt für seine lesbare Schreibweise und sein Ökosystem.

#Programmiersprachen

Django

Ein Python-Framework für Webanwendungen mit eingebauter Verwaltungsoberfläche.

#Programmiersprachen

Klassen (Objektorientierung)

Die Vorlage, nach der gleichartige Objekte gebaut werden.

#Programmiersprachen

MVC (Model-View-Controller)

Ein Entwurfsmuster, das Anwendungen in Daten, Darstellung und Steuerung trennt.

#Programmiersprachen

Objektorientierte Programmierung (OOP)

Ein Programm nach den Dingen ordnen, um die es geht, statt nach den Arbeitsschritten.

#Programmiersprachen