Zum Inhalt springen

„SQLAlchemy“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Aktuelle Version geupdated
K ISBN-Format, bereits in Unterkategorie „Python-Bibliothek“ enthalten
Zeile 78: Zeile 78:


== Literatur ==
== Literatur ==
* Mark Ramm, Michael Bayer: SQLAlchemy: ''Database Access Using Python'', [[Addison-Wesley]], 2010, ISBN 9780132364676
* Mark Ramm, Michael Bayer: SQLAlchemy: ''Database Access Using Python'', [[Addison-Wesley]], 2010, ISBN 978-0-13-236467-6
* Rick Copeland: ''Essential SQLAlchemy'', [[O’Reilly Verlag|O'Reilly]], 2008, ISBN 0-596-51614-2
* Rick Copeland: ''Essential SQLAlchemy'', [[O’Reilly Verlag|O'Reilly]], 2008, ISBN 0-596-51614-2
* Jeremy Jones, Noah Gift: ''Python for Unix and Linux System Administration'', [[O’Reilly Verlag|O'Reilly]], 2008, ISBN 978-0-596-51582-9
* Jeremy Jones, Noah Gift: ''Python for Unix and Linux System Administration'', [[O’Reilly Verlag|O'Reilly]], 2008, ISBN 978-0-596-51582-9
Zeile 89: Zeile 89:
{{SORTIERUNG:Sqlalchemy}}
{{SORTIERUNG:Sqlalchemy}}
[[Kategorie:Datenbankschnittstelle]]
[[Kategorie:Datenbankschnittstelle]]
[[Kategorie:Python (Programmiersprache)]]
[[Kategorie:Python-Bibliothek]]
[[Kategorie:Python-Bibliothek]]
[[Kategorie:Freies Programmierwerkzeug]]
[[Kategorie:Freies Programmierwerkzeug]]

Version vom 26. März 2023, 16:04 Uhr

SQLAlchemy
Basisdaten

Aktuelle Version 1.4.26
(19. Oktober 2021)
Betriebssystem plattformunabhängig
Programmier­sprache 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:

Siehe auch

Literatur