„SQLAlchemy“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Aktuelle Release |
KKeine Bearbeitungszusammenfassung |
||
Zeile 21: | Zeile 21: | ||
}} |
}} |
||
'''SQLAlchemy''' ist ein [[Open Source|Open-Source]]-[[SQL]]-[[Toolkit]] und [[Objektrelationale Abbildung|ORM]]-[[Framework]] für die Programmiersprache [[Python (Programmiersprache)| Python]] |
'''SQLAlchemy''' ist ein [[Open Source|Open-Source]]-[[SQL]]-[[Toolkit]] und [[Objektrelationale Abbildung|ORM]]-[[Framework]] für die Programmiersprache [[Python (Programmiersprache)| Python]] mit dem Ziel, den [[Object-relational impedance mismatch]] in der Art von [[Hibernate (Framework)|Javas Hibernate]] zu umschiffen. SQLAlchemy wurde im Februar 2006 veröffentlicht. |
||
SQLAlchemy bietet eine Reihe von [[Entwurfsmuster]]n zur effizienten Persistenzhaltung von Daten in einer [[Relationale Datenbank|relationalen Datenbank]]. Die Motivation hinter SQLAlchemy ist darin begründet, dass |
SQLAlchemy bietet eine Reihe von [[Entwurfsmuster]]n zur effizienten Persistenzhaltung von Daten in einer [[Relationale Datenbank|relationalen Datenbank]]. Die Motivation hinter SQLAlchemy ist darin begründet, dass SQL-Datenbanken umso weniger Objektsammlungen ähneln, je umfangreicher der Datenbestand und je 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 [[Mapper (Softwareentwicklung)|Data Mapper-Muster]] anstelle eines sogenannten ''[[Active Record]]''-Musters. Optionale Plugins ermöglichen weitere Muster, z. B. mit Elixir eine deklarative Syntax. |
||
== Beispiel == |
== Beispiel == |
Version vom 28. Juni 2020, 15:32 Uhr
SQLAlchemy | |
---|---|
Basisdaten
| |
Aktuelle Version | 1.3.18 (25. Juni 2020) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Python |
Kategorie | ORM |
Lizenz | MIT-Lizenz |
www.sqlalchemy.org |
SQLAlchemy ist ein Open-Source-SQL-Toolkit und ORM-Framework für die Programmiersprache Python mit dem Ziel, den Object-relational impedance mismatch in der Art von Javas Hibernate zu umschiffen. SQLAlchemy wurde im Februar 2006 veröffentlicht.
SQLAlchemy bietet eine Reihe von Entwurfsmustern zur effizienten Persistenzhaltung von Daten in einer relationalen Datenbank. Die Motivation hinter SQLAlchemy ist darin begründet, dass SQL-Datenbanken umso weniger Objektsammlungen ähneln, je umfangreicher der Datenbestand und je 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 sogenannten 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 imports
):
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:
- Informix IDS
- DB2
- Drizzle
- Firebird
- SAP MaxDB
- Microsoft Access
- Microsoft SQL Server
- MySQL
- Oracle Database
- PostgreSQL
- SQLite
- Sybase ASE
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