SQLAlchemy

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.