Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Suche Datenbank zum Speichern von "Objekten" (https://www.delphipraxis.net/132880-suche-datenbank-zum-speichern-von-objekten.html)

3_of_8 21. Apr 2009 11:07

Datenbank: n/a • Version: n/a • Zugriff über: n/a

Suche Datenbank zum Speichern von "Objekten"
 
Morgen.

Ich stehe gerade vor folgendem Problem:

Ich brauche eine Datenbank, in der ich effizient "Objekte" ablegen kann, und mit Objekten meine ich in etwa soetwas, wie man sie aus PHP kennt.

Ein Objekt hat Attribute, die frei gewählt werden können, es kann auch einen Vorfahren haben, von dem es dann alle nicht überschriebenen Attribute erbt und so weiter. Auch ein effizientes Suchen über diesen Attributen sollte möglich sein.

Die einfachste Möglichkeit wäre natürlich, das ganze mit einer Hashmap zu machen, aber wenn die Datenmengen dann etwas größer werden, habe ich ein Problem. Auch eine relationale Datenbank wie MySQL wäre natürlich möglich, aber dann müsste ich das mit einer Tabelle für die Objekte und einer Tabelle für ihre Attribute (zumindest für die Nicht-Standard-Attribute) machen und die dann bei jeder Abfrage joinen, was nicht sehr effizient klingt.

Gibt es da nicht eine einfachere Möglichkeit? Ich habe schon einmal von objektbasierten Datenbanken gehört, aber können die das, was ich hier will? Und wenn ja, welche sind empfehlenswert?

Luckie 21. Apr 2009 11:09

Re: Suche Datenbank zum Speichern von "Objekten"
 
http://www.delphipraxis.net/internal...028494#1028494

mkinzler 21. Apr 2009 11:19

Re: Suche Datenbank zum Speichern von "Objekten"
 
-Du könntest dir ein ORM-System anschauen ( InstantObjects, tiOPF, ...)
Objectorientierte/Objectrelational DBMS
-db4O
-Cache
-FastObjects(POET)
-ObjectStore
-

Dax 21. Apr 2009 11:59

Re: Suche Datenbank zum Speichern von "Objekten"
 
Ein normales, relationales DBMS und ein Mapper dürfte da fast immer eine gute Wahl sein. Mit dem Mapper hast du aus deinem Programm heraus eine komfortable Schnittstelle zur Datenbank, und wenn es unbedingt sein müsste, könntest du dir einfach eine SQL-Konsole schnappen und irgendwelche Scripts auf die Datenbank loslassen. Oder Statistiken erstellen - da sind die relationalen DBMSe prima geeignet. Je nach dem wie gut dein Mapper ist, kriegst du am Ende sogar wieder ein fertiges Objekt raus.

(Sowas hab ich mit für CLR/Postgres selbst geschrieben, ist nicht so schrecklich schwer.)

mjustin 21. Apr 2009 12:33

Re: Suche Datenbank zum Speichern von "Objekten"
 
Zitat:

Zitat von 3_of_8
Die einfachste Möglichkeit wäre natürlich, das ganze mit einer Hashmap zu machen, aber wenn die Datenmengen dann etwas größer werden, habe ich ein Problem. Auch eine relationale Datenbank wie MySQL wäre natürlich möglich, aber dann müsste ich das mit einer Tabelle für die Objekte und einer Tabelle für ihre Attribute (zumindest für die Nicht-Standard-Attribute) machen und die dann bei jeder Abfrage joinen, was nicht sehr effizient klingt.

tiOPF ist da eines der gängigen Projekte, Open Source und in aktiver Entwicklung.
Es unterstützt neben verschiedenen Datenbanken auch XML als Datenhaltungsformat.

Bei Bedarf (oder zu Testzwecken) kann man daher von XML auf DB umschalten, ohne etwas sonst am Programm ändern zu müssen.

Viele Grüße,


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz