Laden...

Welche Open Source Datenbank eignet sich zur Rezepturentwicklung und -verwaltung?

Erstellt von Mone vor 11 Jahren Letzter Beitrag vor 11 Jahren 4.010 Views
M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren
Welche Open Source Datenbank eignet sich zur Rezepturentwicklung und -verwaltung?

Hallo =)

Ich hätte erst einmal allgemein eine Frage bzgl. Open Source Datenbanken. Welche Möglichkeiten würdet ihr persönlich bevorzugen?
Die Datenbank selbst soll zur Rezepturentwicklung und -verwaltung dienen (dies ist die Aufgabe meiner Studienarbeit), d.h. eine Menge Datensätze müssen verarbeitet werden. Meine Überlegung ist gewesen, das ganze mit C# und WPF zu lösen. Das Grundgerüst, also der Code, steht bereits. Mein Problem liegt derzeit also (noch) nicht an der Umsetzung, sondern vielmehr wollte ich wissen, wie neutrale Personen dazu stehen.
Die Datenbank soll für den Benutzer sehr einfach gestaltet sein und somit einfach bedienbar.

Möglichkeiten, die ich bisher in Betracht gezogen habe:

  • Entwicklung in C# (oben erwähnt)
  • Access DB (evtl. auch OpenOffice)
  • Dynmaisch, datenbank-gestütze Website
  • Umsetzung mit Data Warehouse

Wie ich die Datenbank umsetze, ist letztlich egal, Hauptfaktor ist nur, dass diese Open Source sein soll. Gerne möchte ich eure Kritiken oder Hinweise zu meinen bisherigen Überlegungen bzw. Möglichkeiten hören. Momentan hänge ich so ein bisschen in der Luft und würde am liebsten alles ausprobieren, jedoch sprengt das den Rahmen 😁

lg Mone

2.891 Beiträge seit 2004
vor 11 Jahren

OpenSource bedeutet nicht zwingend kostenlos. Willst du zwingend eine quelloffene Datenbank oder nur eine freie/kostenlose?

Siehe z.B. Empfehlungen für SQL-Datenbank gesucht

M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Danke für den Link =)

bzgl. OpenSource... Leider ist das so genau nicht direkt festgelegt. Spontan würde ich aber behaupten, dass es nicht zwingend eine quelloffene Datenbank sein muss.

16.806 Beiträge seit 2008
vor 11 Jahren

Du solltest Dir erst mal Gedanken machen, was fuer eine Art Datenbank fuer Deine Zwecke ueberhaupt geeignet ist, was sie koennen muessen und wie das Umfeld aussieht, in der sie nachher laeuft.
Dann fliegen wahrscheinlich die meisten schon mal raus aus der Liste.

Webseiten sind die am schnellsten wachsenden Konstrukte, die oft ihr Schema aendern.
Daher verlieren normale relationale Datenbanken wie MSSQL und mysql und co immer mehr an Bedeutung in der Webwelt. mongoDB als Vertreter der Dokument-orientierten Datenbanken kann aktuell keinem das Wasser reichen.

Aber deine Vorkenntnisse bzgl der Entwicklung von sowas und dann auch noch als Projektarbeit wird Dein Zeitrahmen deutlich sprengen.

3.825 Beiträge seit 2006
vor 11 Jahren

Die Datenbank selbst soll zur Rezepturentwicklung und -verwaltung dienen (dies ist die Aufgabe meiner Studienarbeit), d.h. eine Menge Datensätze müssen verarbeitet werden.

Wenn es weniger als 10 Millionen Datensätze sind ist das wenig für jede Datenbank.

Access ist keine Datenbank und nicht mehr aktuell.

Wenn Du die Website mit C# umsetzt würde ich SQL Express oder SQL Compact (4.0) nehmen. Nicht quelloffen, aber kostenlos.

Bei Apache / Linux Server würde ich MySQL oder PostgreSQL nehmen. SQLite ist auch eine Überlegung wert.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Erst einmal vielen lieben Dank für die Hints 😃
Bzgl. der Datensätze, ja das ist wohl wahr, wenn es weniger als 10 Millionen sind, dann ist das noch recht "überschaubar". Wobei sich da teilweise die Meinungen spalten, aber ich gebe dir recht 😉

Leider ist mir weder das spätere Umfeld noch die Anzahl der Datensätze genauer bekannt, was das ganze etwas schwieriger gestaltet. Daher sind meine Infos auch etwas vage... Aber auch solche Herausforderungen gibt es öfter in der Arbeitswelt 😄 Jedoch habt ihr mir bisher echt gut helfen können, danke dafür! Ich werde mir nochmal genauer Gedanken machen.

C
2.121 Beiträge seit 2010
vor 11 Jahren

Um deine Überlegungen in eine evtl. sinnvollere Richtung zu lenken, quelloffen bedeutet noch längst nicht dass du damit etwas leistungsfähiges hast.
Ich würde auch an Langlebigkeit denken. Was heute neu und viel umworben ist, morgen viele nutzen, übermorgen kaum mehr jemand und nächste Woche gar niemand mehr, nutzt dir in dem Fall gar nichts.
Nimm eine DB die genügend bekannt ist und noch eine Zeit lang sein wird.

F
10.010 Beiträge seit 2004
vor 11 Jahren

Wie wäre es denn statt über die DB nachzudenken, die Datenzugriffsschicht anzuschauen?

Fast jeder moderne ORMapper kann mit einer Vielzahl von Datenbanken umgehen und bei einer Rezeptdatenbank läufst du auch nicht wirklich in Schwierigkeiten.

Selbst wenn Du überlegst auch auf portablen Systemen etwas zu entwickeln ( MonoDroid/MonoTouch?!) ist die Zugriffsschicht viel wichtiger als die Datenhaltung danach.

Bei einigen kannst du auch z.b. MongoDb oder andere DocomentDB's mit ansprechen.

16.806 Beiträge seit 2008
vor 11 Jahren

.. und fast jeder ORMapper ist unheimlich unperformant und absolut unflexibel im Schema.
Das ist gerade bei Webanwendungen - wie ich die Erfahrung mit dem EF gemacht habe - einfach fürchterlich nervig und einfach schlecht.

Wenn es die Möglichkeit gibt, so etwas mit der MongoDB umzusetzen dann sollte man das auch wirklich in Erwägung ziehen. 9 von 10 WebApps auf mobilen Plattformen nutzen einen Server mit einer MongoDB im Hintergrund.
Jede große Webseite (Facebook, Foursquare, Instagram) arbeitet mit der MongoDB.

F
10.010 Beiträge seit 2004
vor 11 Jahren

Man kann alles so einsetzen das es schlecht ist.

Ja, EF ist nicht der schnellste ORMapper, aber den einzusetzen wenn man viele Daten hat, ist genauso Blöd, als wenn man nen Unimog einsetzt um ein Formel1 Rennen zu gewinnen.
Falsche Technik am falschen Ort.

Aber ORmapper wie Dapper, PetaPoco oder bei einer Embedded DB SQLite-Net sind alles andere als langsam.

Und du meinst das für eine kleine Rezeptverwaltung die gleiche Datenhaltung sinnvoll ist die Facebook und Co einsetzen?

16.806 Beiträge seit 2008
vor 11 Jahren

Das kommt drauf an, was es werden soll.
Wenn es wirklich ne breite Webseite werden soll alá Frag-Mutti dann muss er schon mit 30 Mio Hits am Tag rechnen (was zugegeben sehr hoch ist).

476 Beiträge seit 2004
vor 11 Jahren

Hallo Mone,

bevor die Diskussion zu sehr weblastig wird, lieber nochmal zurück zum Ausgangspunkt:

Du solltest Dir erst mal Gedanken machen, was fuer eine Art Datenbank fuer Deine Zwecke ueberhaupt geeignet ist, was sie koennen muessen und wie das Umfeld aussieht, in der sie nachher laeuft.
Dann fliegen wahrscheinlich die meisten schon mal raus aus der Liste.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Euch allen erst einmal noch ein frohes neues Jahr =)
Und nochmals "Danke".

Bevor ich überhaupt zu der Art der Datenbank komme, die ich verwenden möchte, setze ich mich im Allgemeinen noch mit dem Begriff Open Source auseinander. Ich habe inzwischen in Erfahrung gebracht, dass es im Grunde mir überlassen wird, ob ich darunter quelloffen oder kostenfrei verstehen möchte. Und wenn man nach dem Begriff sucht, wird man ja mit Literatur regelrecht erschlagen =D. Jetzt hätte ich nur eine Frage bzgl. OSI (Open Source Initiative) http://opensource.org/osd --> richten sich tatsächlich viele Unternehmen danach? Oder ist das mehr so als Leitfaden zu sehen und jedes Unternehmen setzt dementsprechenden einen "extra" Vertrag auf...

Lg Mone

C
2.121 Beiträge seit 2010
vor 11 Jahren

Ich muss dazu jetzt einfach noch einen Gedanken loswerden.

Such dir eine Datenbank anhand der Merkmale aus die du brauchst. Wenn sie kostenlos sein soll, such eine kostenlose. Wenn du die Sourcen davon brauchst, nimm eine mit Sourcen. Wobei ich nie im Leben eine Datenbank auf meine Anwendung hin anpassen möchte, deswegen steht für dich bestimmt eher die Kostenfrage an. Die lässt sich aus der Lizenz rauslesen.

Wichtig wäre mir noch die Bekanntheit. Ist die DB grad erst auf den Markt gekommen, soll laut ihrem Erfinder alles ersetzen können und in 5 Jahren auf jeder Kaffeemaschine laufen? Finger weg!
Nimm was "altes" das immer noch auf dem Markt ist. Die haben viel weniger Fehler und sind performanter und du findest bei Bedarf sehr schnell Beispiele für komplexere Anwendungsfälle.

Aber was du NICHT tun solltest wäre eine Datenbank anhand von Schlagwörtern zu suchen. "Wir nutzen eine OpenSource Datenbank" hört sich sicher absolut geil an, für jemanden der nicht weiß was das ist. Jemand der es weiß wird dich fragen warum ausgerechnet die verwendet wird. Was sagst du dann? "Äh... ja wir haben schon diverse Problemchen damit, aber klingt doch cool" kommt nicht gut.

M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Hehehe 😄 neee nur weil sich Open Source irgendwie extrem wichtig anhört, werde ich keinesfalls sagen, dass diese Art, das "Non plus ultra" sein soll. Der Punkt, warum ich über Open Source überhaupt gehe ist, weil dies Teil der Aufgabenstellung ist. Wenn ich später der Meinung bin, dass Open Source absolut ungeeignet ist, aufgrund diverser Nachteile (und da gibt es ja einige), dann ist das vollkommen in Ordnung. Wie es bei diesen Studienarbeiten (etc.) ja generell ist, nur weil eine Lösungsart gefordert ist, muss diese nicht zwingend umgesetzt werden, es muss nur gut begründet sein. Aber die Vorstellung zu sagen "... klingt doch cool" wäre wirklich nicht gerade optimal. Den Blick des Kunden oder sogar eines Chefs ist zwar eine recht lustige Vorstellung, aber die Konsequenzen dann wohl eher weniger.

Ich vermute, dass eine recht "einfache" Datenbank ausreichen wird. Der Wunsch, die DB evtl. mal zu modifizieren ist zwar gegeben, jedoch bin ich mir noch unschlüssig, ob das für das entsprechende Unternehmen einen Sinn macht. Für meine bisherigen Infos, die ich habe, wäre Open Source m. E. daher absolut unnötig. Vor allem weil es eher um die Anwendung geht als um irgendwelche evtl. Veränderungen.

C
2.121 Beiträge seit 2010
vor 11 Jahren

Und warum soll es Open Source sein?

Der Wunsch, die DB evtl. mal zu modifizieren ist zwar gegeben

Ich meinte damit nicht Tabellen und Strukturen verändern. Das kann jede Datenbank und das ist auch zwingend nötig.
Ich meinte den Code für das "Datenbankprogramm" verändern, damit es anders auf die Daten zugreift usw. Das wirst du kaum tun wollen, denn es gibt Firmen die Jahre bzw. Jahrzehnte ausschließlich an Datenbanken arbeiten und die so perfekt wie nur möglich programmieren. Da möchtest du ganz bestimmt nicht dran drehen.

M
Mone Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Warum es Open Source sein soll ist eine verdammt gute Frage, die ich gar nicht direkt beantworten kann. Meine Vermutung ist, dass evtl. so wie du es sagst, das "Datenbankprogramm" noch erweitert werden kann oder soll, sofern ich mich für solch eine Lösung entscheiden sollte. Nur wie du auch schon erwähnt hast, ist das auch eine Kostenfrage. Logisch, Tabellen und Strukturen verändern zu können, muss auf jeden Fall sein.

Aber wie gesagt, ich muss nicht zwingend Open Source verwenden. Meine Vermutung ist auch, dass es einfach nur um einen zusätzlichen Aspekt geht, den ich mit betrachtet soll, ansonsten wäre die Aufgabenstellung wohl etwas zu einfach. So wie ich das bisher aus den ganzen Infos raus hören bzw. lesen kann, soll Open Source mit einbezogen werden und dahingehend analysiert werden, wann es denn prinzipiell von Vorteil wäre, dies zu nutzen.

16.806 Beiträge seit 2008
vor 11 Jahren

Vermutlich weißt Du einfach überhaupt nicht was Du überhaupt machen willst oder was bestimmte Dinge heissen.
Kennst Du denn den Unterschied zwischen Open Source und Freeware? Den Unterschied der verschiedenen Lizenzen?

Du gehst in Deinem Anfangspost von einer Webseite aus und im gleichen Atemzug nennst Du Access. Das zeigt, dass Du wohl nicht weißt, wie eine ASP.NET-Webseite funktioniert, und dass Webseiten in C# immer mehrere Threads besitzen, was absolut kontraproduktiv mit einer Access-"Datenbank" (Access ist eine Krankheit, keine Datenbank) ist. Ich geb der Access-Datenbank 1000 unsynchronisierte Zugriffe und sie ist kaputt.

Deswegen nochmal:
Schau nach wie Dein Umfeld aussehen wird, welche Vorgaben und Kriterien Deine Anwendung erfüllen muss. Und les Dir durch was welche Bedeutung überhaupt hat.
DANN entscheidet man, ob es eine Webseite wird oder eine Desktop-Entwicklung.
DANN entscheidet man, welche Infrastruktur aufgebaut werden muss (Client-Server für Desktop? Webfarm oder Single-Webseite? Rechnet man bei einer Website mit sehr sehr vielen Zugriffen oder nur mit <1000 am Tag? Verteilte Datenbanken notwendig?

Dann macht man sich erst an die Gedanken und evaluiert die verschiedenen Datenbanken, die es gibt. Embedded wie SQLite, oder eben Server relational wie MSSQL (Free bei Express) (mySQL nicht free für kommerzielle Dinge) oder postgreSQL.. dort wird dann auch die Lizenz angeschaut und geprüft, ob diese eingehalten werden kann oder sich eben doch etwas anderes (evtl mit Kompromissen) suchen muss.

Nur eines Vorweg: ich vermute nicht, dass ihr hochspezielles Wissen habt was die Entwicklung einer Datenbank angeht, wie es eben die Firmen an für sich haben. Deswegen wirst Du mit 99,9999%tiger Wahrscheinlichkeit davon ausgehen, dass Du NIEMALS an den Sourcen einer Datenbank was ändern musst oder wirst.