Zum Inhalt springen

„SQLAlchemy“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
ZéroBot (Diskussion | Beiträge)
K r2.7.1) (Bot: Ergänze: uk:SQLAlchemy
Aktuelle Version aktualisiert
 
(43 dazwischenliegende Versionen von 28 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:

{{Infobox Software
{{Infobox Software
|Name= SQLAlchemy
|Name = SQLAlchemy
|Logo=
|Logo =
|Screenshot=
|Screenshot =
|Beschreibung=
|Beschreibung =
|Maintainer =
|Hersteller=
|Hersteller =
|AktuelleVersion=
|Erscheinungsjahr =
|AktuelleVersionFreigabeDatum=
|AktuelleVersion = 2.0.29
|Betriebssystem= [[Plattformunabhängigkeit|plattformunabhängig]]
|AktuelleVersionFreigabeDatum = {{FormatDate|2024-03-23}}
|Programmiersprache = [[Python (Programmiersprache)|Python]]
|AktuelleVorabVersion =
|Kategorie= [[Objektrelationale Abbildung|ORM]]
|AktuelleVorabVersionFreigabeDatum =
|Lizenz= [[MIT-Lizenz]]
|Betriebssystem = [[Plattformunabhängigkeit|plattformunabhängig]]
|Website= [http://www.sqlalchemy.org/ www.sqlalchemy.org]
|Programmiersprache = [[Python (Programmiersprache)|Python]]
|Kategorie = [[Objektrelationale Abbildung|ORM]]
|Lizenz = [[MIT-Lizenz]]
|Deutsch =
|Website = [http://www.sqlalchemy.org/ www.sqlalchemy.org]
|Dateien =
}}
}}


'''SQLAlchemy''' ist ein [[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]] 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|Entwurfsmustern]] 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 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 ==


Erzeugung einer M:N-Beziehung (Autorschaft) zwischen Buch und Autor (ohne <code>import</code>s):
Erzeugung einer M:N-Beziehung (Autorschaft) zwischen Buch und Autor (ohne <code>imports</code>):

<syntaxhighlight lang="python">
Base = declarative_base()


<div style="border: 1px solid; margin:1em; padding:1ex;">
<source lang="python">
engine = sqlalchemy.create_engine('postgres://user:pwd@host/dbname', echo=True)
engine = sqlalchemy.create_engine('postgres://user:pwd@host/dbname', echo=True)


autorschaft = Table('buch_autor', Base.metadata,
autorschaft = Table('buch_autor', Base.metadata,
Column('isbn', Integer, ForeignKey('buch.isbn')),
Column('isbn', Integer, ForeignKey('buch.isbn')),
Column('kennung', Integer, ForeignKey('autor.kennung'))
Column('kennung', Integer, ForeignKey('autor.kennung'))
)
)
Zeile 47: Zeile 55:


Base.metadata.create_all(engine)
Base.metadata.create_all(engine)
</syntaxhighlight>
</source>
</div>


== Unterstützte Datenbanken ==
== Literatur ==
SQLAlchemy unterstützt eine Vielzahl von [[Liste der Datenbankmanagementsysteme|Datenbankmanagementsystemen]]:
* Mark Ramm, Michael Bayer: SQLAlchemy: ''Database Access Using Python'', [[Addison-Wesley]], 2010, ISBN 9780132364676
* 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


* [[Informix|Informix IDS]]
== Weblinks ==
* [[DB2]]
* [http://www.sqlalchemy.org/ SQLAlchemy Homepage]
* [[Drizzle]]
* [http://www.sqlalchemy.org/docs/04/plugins.html SQLAlchemy Plugins]
* [[Firebird (Datenbank)|Firebird]]
* [[SAP MaxDB]]
* [[Microsoft Access]]
* [[Microsoft SQL Server]]
* [[MySQL]]
* [[Oracle (Datenbanksystem)|Oracle Database]]
* [[PostgreSQL]]
* [[SQLite]]
* [[Sybase#Datenbankmanagement|Sybase ASE]]


== Siehe auch ==
== Siehe auch ==
* [[Django (Framework)|Django]] (Python Web Framework inkl. ORM)
* [[Django (Framework)|Django]] (Python Web Framework inkl. ORM)
* [[Hibernate (Framework)|Hibernate]] (Java ORM)
* [[Hibernate (Framework)|Hibernate]] (Java ORM)

* [[TurboGears]] (Python Web Framework, das standardmäßig SQLAlchemy benutzt)
== Literatur ==
* 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
* Jeremy Jones, Noah Gift: ''Python for Unix and Linux System Administration'', [[O’Reilly Verlag|O’Reilly]], 2008, ISBN 978-0-596-51582-9

== Weblinks ==
* [http://www.sqlalchemy.org/ SQLAlchemy Homepage]
* [http://www.sqlalchemy.org/docs/04/plugins.html SQLAlchemy Plugins]
* [http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html SQLAlchemy Liste unterstützter Datenbanksysteme]


{{SORTIERUNG:Sqlalchemy}}
{{SORTIERUNG:Sqlalchemy}}
[[Kategorie:Objektorientierte Programmierung]]
[[Kategorie:Datenbankschnittstelle]]
[[Kategorie:Datenbank]]
[[Kategorie:Python-Bibliothek]]
[[Kategorie:Programmiersprache Python]]
[[Kategorie:Freies Programmierwerkzeug]]
[[Kategorie:Freies Programmierwerkzeug]]
[[Kategorie:PostgreSQL]]

[[en:SQLAlchemy]]
[[fr:SQLAlchemy]]
[[ja:SQLAlchemy]]
[[pt:SQLAlchemy]]
[[ru:SQLAlchemy]]
[[uk:SQLAlchemy]]

Aktuelle Version vom 4. April 2024, 11:47 Uhr

SQLAlchemy
Basisdaten

Aktuelle Version 2.0.29
(23. März 2024)
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.

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

[Bearbeiten | Quelltext bearbeiten]

SQLAlchemy unterstützt eine Vielzahl von Datenbankmanagementsystemen: