SQLAlchemy ist ein Open-Source-SQL-Toolkit und ORM-Framework für die Programmiersprache Python um den Object-relational impedance mismatch, etwa wie auch Javas Hibernate, zu umschiffen. SQLAlchemy wurde im Februar 2006 veröffentlicht.
SQLAlchemy | |
---|---|
Basisdaten
| |
Aktuelle Version | 1.1.14 (5. September 2017) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Python |
Kategorie | ORM |
Lizenz | MIT-Lizenz |
www.sqlalchemy.org |
SQLAlchemy bietet eine Reihe von Entwurfsmustern zur effizienten Persistenzhaltung von Daten in einer relationalen Datenbank. Die Motivation hinter SQLAlchemy ist darin begründet, dass sich SQL-Datenbanken weniger Objektsammlungen ähneln, desto umfangreicher der Datenbestand und desto mehr Leistung gefragt ist, während Objektsammlungen sich weniger wie Relationen und Tupel verhalten je mehr zwischen Datenrepräsentation und Miniwelt abstrahiert wird. Daher verfolgt SQLAlchemy primär ein Data Mapper Muster anstelle eines sog. Active Record Musters. Optionale Plugins ermöglichen weitere Muster, z. B. mit Elixir eine deklarative Syntax.
Beispiel
Erzeugung einer M:N-Beziehung (Autorschaft) zwischen Buch und Autor (ohne import
s):
Base = declarative_base()
engine = sqlalchemy.create_engine('postgres://user:pwd@host/dbname', echo=True)
autorschaft = Table('buch_autor', Base.metadata,
Column('isbn', Integer, ForeignKey('buch.isbn')),
Column('kennung', Integer, ForeignKey('autor.kennung'))
)
class Buch(Base):
__tablename__ = 'buch'
isbn = Column(Integer, primary_key=True)
titel = Column(String(255), nullable=False)
klappentext = Column(Text)
autoren = relationship(Autor, secondary=autorschaft, backref='buecher')
class Autor(Base):
__tablename__ = 'autor'
kennung = Column(String(32), primary_key=True)
name = Column(String(50), nullable=False, unique=True)
Base.metadata.create_all(engine)
Unterstützte Datenbanken
SQLAlchemy unterstützt eine Vielzahl von Datenbankmanagementsystemen:
Siehe auch
Literatur
- Mark Ramm, Michael Bayer: SQLAlchemy: Database Access Using Python, Addison-Wesley, 2010, ISBN 9780132364676
- Rick Copeland: Essential SQLAlchemy, O'Reilly, 2008, ISBN 0-596-51614-2
- Jeremy Jones, Noah Gift: Python for Unix and Linux System Administration, O'Reilly, 2008, ISBN 978-0-596-51582-9