Verwendetes Datenbanksystem: Diese Frage stellt sich mir 🤔
Hallo zusammen,
ich wende mich nicht an Euch wegen einem technischen Problem, sondern vielmehr welchen Weg ich einschlagen sollte. Daher auch die etwas ungewöhnliche Überschrift des Threads.
Ich möchte gerne in einem Programm die Daten von Nahrungsmittel zusätzlich erfassen und abspeichern. Die Daten umfassen jene allgemeinen Angaben, die bei Nahrungsmittel üblich sind. Sprich Name, Kalorien, Kohlenhydrate, Vitamine usw. Mir stellt sich jetzt die Frage, ob ich eine Normalisierung vornehmen soll und die Daten in eine SQL Datenbank erfasse oder ob ich ganze Datensätze erstelle und diese in einer db4o speichere.
Ich bin mir da nicht ganz schlüssig, welches Konzept hier das Bessere wäre. Hätte da jemand einen Denkanstoß für mich?
Gruß
Edit: errata
db4o hat ein gutes Konzept leider mangelt es an Verwaltungsprogrammen aufgrund von Kompabilitätsproblemen mit den einzelnen Versionen. Somit hast du immer das Problem, dass du nur schwer prüfen kannst, ob dein Datenbestand dem Soll entspricht. Ansonsten funzt alles einwandfrei.
Ich sehe trotz der sicherlich aufkommenden Schemen-Anpassung kein Problem eine relationale DB zu verwenden, sofern es eine lokale Anwendung bleibt.
Objekt-Datenbanken haben ein interessantes Konzept, das aber in der Realität immer wieder an die Grenzen kommt. Wirklich durchgesetzt hat sich da noch nichts.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich sehe hier auch den Vorteil einer objektorientierten Datenbank nicht. Ich kenne mich mit den "üblichen" Angaben von Nahrungsmitteln nicht so aus, aber zumindest das was du genannt hast, schaut nach einem ziemlich flachen Schema aus. Ich würde die Vorteile objektorientierter Datenbanken eher bei komplexeren Objekthierarchien sehen.
Ich habe db4o bisher nur einmal ausprobiert. Ich hatte den Fall, dass ich Objekte mit Listen von polymorphen Unterobjekten speichern wollte. Also, ein Objekt hatte eine Liste mit Objekten, die eine Schnittstelle implementieren, und diese Objekte konnten jeweils völlig unterschiedliche weiter Eigenschaften haben. Für sowas ist eine relationale Datenbank nicht optimal geeignet. Mit db4o war die Performance wesentlich besser und der Code war auch einfacher. Bei deinem Beispiel seh ich den Vorteil wie gesagt nicht.
Im Prinzip sind es sehr einfache Daten.
Ich habe mal die Daten ein bißchen normalisiert (Anschrift lasse ich außenvor)
Gruß