Zum Inhalt springen

„SQLAlchemy“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
KKeine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:
'''SQLAlchemy''' ist ein [[Open Source|Open-Source]]-[[SQL]]-[[Toolkit]] und [[Objektrelationale Abbildung|ORM]]-[[Framework]] für die Programmiersprache [[Python (Programmiersprache)| Python]] um den [[Object-relational impedance mismatch]], etwa wie auch [[Hibernate (Framework)|Javas Hibernate]], zu umschiffen. SQLAlchemy wurde im Februar 2006 veröffentlicht.
'''SQLAlchemy''' ist ein [[Open Source|Open-Source]]-[[SQL]]-[[Toolkit]] und [[Objektrelationale Abbildung|ORM]]-[[Framework]] für die Programmiersprache [[Python (Programmiersprache)| Python]] um den [[Object-relational impedance mismatch]], etwa wie auch [[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 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 [[Mapper (Softwareentwicklung)|Data Mapper Muster]] anstelle eines sog. ''Active Record'' Musters. Optionale Plugins ermöglichen weitere Muster, z. B. mit Elixir eine deklarative Syntax.
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 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 [[Mapper (Softwareentwicklung)|Data Mapper Muster]] anstelle eines sog. ''[[Active Record]]'' Musters. Optionale Plugins ermöglichen weitere Muster, z. B. mit Elixir eine deklarative Syntax.


== Beispiel ==
== Beispiel ==

Version vom 30. August 2019, 17:59 Uhr

SQLAlchemy
Basisdaten

Aktuelle Version 1.1.14
(5. September 2017)
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 um den Object-relational impedance mismatch, etwa wie auch 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 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 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