Jemand hat vorgeschlagen, ein ORM für ein Projekt zu verwenden, das ich entwerfe, aber ich habe Probleme, Informationen darüber zu finden, was es ist oder wie es funktioniert.
Kann mir jemand kurz erklären, was ein ORM ist und wie es funktioniert und wie ich anfangen soll, eines zu verwenden?
Antworten:
Einführung
Object-Relational Mapping (ORM) ist eine Technik, mit der Sie Daten aus einer Datenbank mithilfe eines objektorientierten Paradigmas abfragen und bearbeiten können. Wenn es um ORM geht, beziehen sich die meisten Leute auf eine Bibliothek , die die objektrelationale Zuordnungstechnik implementiert, daher der Ausdruck "ein ORM".
Eine ORM-Bibliothek ist eine ganz normale Bibliothek, die in der Sprache Ihrer Wahl geschrieben ist und den Code enthält, der zum Bearbeiten der Daten erforderlich ist, sodass Sie kein SQL mehr verwenden. Sie interagieren direkt mit einem Objekt in derselben Sprache, die Sie verwenden.
Hier ist zum Beispiel ein völlig imaginärer Fall mit einer Pseudosprache:
Wenn Sie eine Buchklasse haben, möchten Sie alle Bücher abrufen, deren Autor "Linus" ist. Manuell würden Sie so etwas tun:
Mit einer ORM-Bibliothek würde es so aussehen:
Das mechanische Teil wird automatisch über die ORM-Bibliothek erledigt.
Vor-und Nachteile
Die Verwendung von ORM spart viel Zeit, weil:
Die Verwendung einer ORM-Bibliothek ist flexibler, weil:
Aber ORM kann ein Schmerz sein:
for
Schleife.Wie lerne ich ORM kennen?
Verwenden Sie eine. Unabhängig davon, für welche ORM-Bibliothek Sie sich entscheiden, verwenden alle dieselben Prinzipien. Hier gibt es viele ORM-Bibliotheken:
Wenn Sie eine ORM-Bibliothek in der Webprogrammierung ausprobieren möchten, sollten Sie einen gesamten Framework-Stack wie folgt verwenden:
Versuchen Sie nicht, Ihr eigenes ORM zu schreiben, es sei denn, Sie versuchen, etwas zu lernen. Dies ist eine gigantische Arbeit, und die alten haben viel Zeit und Arbeit in Anspruch genommen, bevor sie zuverlässig wurden.
quelle
Sicher.
ORM steht für "Object to Relational Mapping"
Der Objektteil ist derjenige, den Sie mit Ihrer Programmiersprache verwenden (in diesem Fall Python).
Der relationale Teil ist ein relationales Datenbankmanagersystem (eine Datenbank, dh es gibt andere Arten von Datenbanken, aber der beliebteste ist relational (Sie kennen Tabellen, Spalten, pk fk usw., z. B. Oracle MySQL, MS-SQL).
Und schließlich stellen Sie im Mapping- Teil eine Brücke zwischen Ihren Objekten und Ihren Tabellen.
In Anwendungen, in denen Sie kein ORM-Framework verwenden, tun Sie dies von Hand. Durch die Verwendung eines ORM-Frameworks können Sie die zum Erstellen der Lösung erforderliche Boilerplate reduzieren.
Nehmen wir also an, Sie haben dieses Objekt.
und der Tisch
Wenn Sie ein ORM-Framework verwenden, können Sie dieses Objekt automatisch einem DB-Datensatz zuordnen und Folgendes schreiben:
Und lassen Sie den Mitarbeiter in die DB einfügen.
Hoppla, es war nicht so kurz, aber ich hoffe, es ist einfach genug, um andere Artikel zu lesen, die Sie gelesen haben.
quelle
Ein ORM (Object Relational Mapper) ist eine Software, mit der Sie Ihre Codeobjekte Ihrer Datenbank zuordnen können.
Einige behandeln mehr Aspekte als andere ... aber der Zweck besteht darin, dem Entwickler einen Teil des Gewichts der Datenschicht von den Schultern zu nehmen.
Hier ist ein kurzer Clip von Martin Fowler (Data Mapper):
Muster von Data Mappern für Unternehmensanwendungsarchitekturen
quelle
Wie alle Akronyme ist es mehrdeutig, aber ich nehme an, sie bedeuten objektrelationalen Mapper - eine Möglichkeit, Ihre Augen zu bedecken und zu glauben, dass kein SQL darunter liegt, sondern alles Objekte ;-). Natürlich nicht wirklich wahr und nicht ohne Probleme - der immer farbenfrohe Jeff Atwood hat ORM als das Vietnam der CS beschrieben ;-). Wenn Sie jedoch wenig oder gar kein SQL kennen und ein ziemlich einfaches / kleines Problem haben, können Sie Zeit sparen! -)
quelle
Das Objektmodell befasst sich mit den folgenden drei Konzepten: Vererbung der Datenabstraktionskapselung Das relationale Modell verwendete das Grundkonzept einer Beziehung oder Tabelle. Produkte für die objektrelationale Zuordnung (OR-Zuordnung) integrieren die Funktionen der Objektprogrammiersprache in relationale Datenbanken.
quelle