SQLAlchemy ist eine Python-Bibliothek zur Integration relationaler Datenbanken. SQLAlchemy unterstützt eine Vielzahl relationaler Datenbanken, bietet eine niedrigschwellige Verwaltung der Verbindungen, eine Python-API zur Erstellung von SQL-Anfragen und Object/Relational Mapping (ORM)-Funktionalität.
In unserem Beispiel werden wir SQLAlchemy verwenden um unsere beiden Datenbanken zu implementieren, um Objekte auf Relationen abzubilden und um SQL-Anfragen zu erstellen. Darüberhinaus werden wir mit collective.lead
Datenbankverbindungen verwalten und SQL-Transaktionen in Zope-Transaktionen zu überführen.
Wesentliche Komponenten von SQLAlchemy sind:
Engine
verwaltet die Datenbankverbindungen.
In unserem Fall wird Engine
verwaltet von collective.lead.interfaces.IDatabase
.
Table
repräsentiert eine Datenbanktabelle.
Metadata
bindet Tabellen an eine spezifische Engine
.
Mapper
repräsentiert ein Eintrag in einer Datenbank als Python-Klasse.
Session
verwaltet Instanzen von Mapper
-Klassen. Eine Session kann neue Instanzen von einer Datenbank laden, Änderungen an Objekten sichern und neue Objekte als Records in der Datenbank speichern.
Connection
erlaubt die Ausführung von SQL-Anfragen, entweder als Python-Anweisung oder als String.