Anfängerfrage zu ORM oder eine andere Lösung

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Hi,
ich hab hier schon ein paar blöde Fragen gestellt und hoffe das dieses etwas Sinnvoller ist.

Ich habe immer noch ein Problem mit einer Datenbank für die ich ein Interface schreiben will. Eins der Probleme ist, das die Datenbank ziemlich groß ist (120GB)
Kurz ein paar Infos zur Datenbank:
Die Datenbank besteht im Prinzip aus Objekten, um genau zu sein aus Proteinen. Jedes dieser Proteine hat mehrere Untereinheiten und diese wiederum Eigenschaften, Messwerte, Atome usw. Diese Atome haben wiederum Eigenschaften usw...
Diese Eigenschaften sind alle wieder in speziellen Tabellen hinterlegt.

Das ist also mein Datensatz, und was ich jetzt mache ist zum Beispiel alle Proteine raussuchen, die eine bestimmte Eigenschaft haben. Das stellt dann auch eigentlich kein Problem dar, nur wenn ich jetzt zum Beispiel bestimmte Messwerte von bestimmten Untereinheiten abfrage, da gehen mir die Relationen verloren. Ich bekomme zwar immer noch das Protein, aber ich weiß nicht welche Untereinheit des Proteins dieses Messwert hat.

Ich bin jetzt am überlegen wie ich diese Beziehungen der Tabellen in meinem Code repräsentieren kann und dachte mir, ORM sind dafür gemacht. Leider habe ich damit noch keine Erfahrung, nur mal ein Tutorial von SQLAlchemy gelesen.

Kann mir jemand vielleicht grob sagen, ob ich damit auf dem richtigen Weg bin? Und wenn ja, ich mach mir noch Gedanken um die Datenmengen. Ich meine, in dieser Datenbank sind rund 30000 Proteine gespeichert, wenn jetzt jemand seine Anfrage so doof stellt, das er alle Proteine bekommen würde, dann würde doch der Speicher aus allen Nähten platzen, oder?

Wäre hier für ein paar Ideen sehr dankbar....
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Diese Beziehungen zwischen den bereits existierenden Tabellen kannst du in SQLAlchmy recht gut modellieren, denn das zwingt dir nicht auf wie die Struktur der Datenbank auszusehen hat (du wirst warscheinlich nicht die Datenbank konvertieren wollen, deswegen).

Ansonsten ist es so, dass SQLAlchemy lazy arbeiten kann, d.h. die Dinge erst aus der Datenbank holen, wenn sie benötigt werden statt alle Daten zu holen. Das ist auf jeden Fall Speicherschonender. Und da das schon implementiert ist, ist es auch einfacher als so etwas selbst zu machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Danke für die Antwort, dann will ich das mal mit sqlalchemy versuchen. Im Moment arbeite ich mich durch ein Tutorial durch.
Gibt es Möglichkeiten diese Beziehungen die schon vorhanden sind auszulesen, oder muss ich alle Tabellen (rund 40 Stück) in der sqlalchemy syntax Nachmodellieren?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

würmchen hat geschrieben:Gibt es Möglichkeiten diese Beziehungen die schon vorhanden sind auszulesen, oder muss ich alle Tabellen (rund 40 Stück) in der sqlalchemy syntax Nachmodellieren?
Ja, das ist von SQLAlchemy vorgesehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten