Welche DB-Engine für kommerzielle DBMS?

klecksii

Ensign
Registriert
Apr. 2021
Beiträge
159
Guten Tag,

ich suche eine gute Grundlage um Datenbanksysteme zu erstellen, die dann auch ohne große Lizenzprobleme verkauft werden können. Auf der Suche bin ich u.a. auf

Oracle
MySQL
Microsoft SQL Server
PostgreSQL
IBM Db2
MS Access
SQLite
Snowflake
MariaDB
usw. gestoßen.

Folgendes sollte möglich sein:
  • Das pflegen der Daten mittels Formulare (Programmierkenntnisse sind vorhanden).
  • Das DBMS sollte ohne Lizenzprobleme verkauft werden können. Also keine komplizierte Lizensierung oder hohe Kosten.
  • Die Datenbank soll von mehreren Nutzern über das Internet erreichbar sein.


Was könnt ihr empfehlen, und was wird alles dazu benötigt?

Ich kenne mich da leider nicht so gut aus. Ich habe nur ein bisschen Erfahrung mit MS Access und Qt. Ich empfand die Arbeit aber immer sehr angenehm, alle nötigen Werkzeuge waren unter einem Dach. Access hat jedoch gewisse Einschränkungen, und bei Qt ist die Lizensierung extrem kompliziert, und 2000€/Jahr für eine Lizenz habe ich auch nicht. Darum bin ich auf der Suche nach einer guten Alternative, die mir den gleichen Komfort bietet.

Würde mich über Eure Meinungen und Erfahrungen freuen!
 
Wär noch intressant was für Daten(Strukturen) du da speichern willst.
Muss es eine SQL DB sein?
Clustering? Ausfallsicherheit? Kümmerst du dich da drum?
Wieviele Nutzer greifen zu?
Welche Formulare? Website? Smartphone-App?
etc. ...

Ich würd mal hin zu PostgreSQL tendieren, aber wie schon gesagt, da gibts zu viele offene Punkte. (Und ich kanns auch nur aus Anwender-Sicht sagen und net aus der des Admins.)

Kannst du den Schritt mit dem Verkauf noch erörtern?
 
  • Gefällt mir
Reaktionen: DefconDev
Postgres ist meistens die beste Wahl wenn man keine speziellen Anforderungen hat oder noch nicht so genau weiß was man am Ende braucht. Das ist eine sehr robuste relationale Datenbank mit der man die meisten Anwendungen abdecken kann. Und die Lizenz ist so frei wie es geht.

MySQL/MariaDB sollte meistens auch gehen, ich finde Postgres allerdings überzeugender.

Postgres ist aber nur eine Datenbank (genau wie alle anderen auf deiner Liste), das ist kein Ersatz für Qt. Du hast keine graphische Oberflache, die musst du programmieren oder andere Tools dazunehmen.
 
  • Gefällt mir
Reaktionen: DubZ, Drahminedum, Raijin und eine weitere Person
Hi,

da würde ich gerne nochmal einhaken: PostgreSQL ist objekt-relational. Das kann Vorteile bieten, ist aber unter Umständen mit einer höheren Komplexität erkauft, wenn man das so auch nutzen möchte.

Für den klassischen "ich lese viel und oft" Fall ist MySQL ggf. die performantere Wahl. Wenn es komplexere Strukturen oder Abfragen werden ist PostgreSQL evtl. vorzuziehen.

Ich würde da keine pauschalen Aussagen treffen sofern der Einsatzzweck und die Struktur nicht vorher geklärt ist.

VG,
Mad
 
  • Gefällt mir
Reaktionen: Raijin
Madman1209 schrieb:
da würde ich gerne nochmal einhaken: PostgreSQL ist objekt-relational. Das kann Vorteile bieten, ist aber unter Umständen mit einer höheren Komplexität erkauft, wenn man das so auch nutzen möchte.
Die bekannten relationalen Datenbanken habe alle relative ähnliche Features, und inzwischen sind nicht-relationale Features wie z.B. richtige JSON Columns recht weit verbreitet.

Madman1209 schrieb:
Für den klassischen "ich lese viel und oft" Fall ist MySQL ggf. die performantere Wahl. Wenn es komplexere Strukturen oder Abfragen werden ist PostgreSQL evtl. vorzuziehen.
Das war früher der Fall, inzwischen würde ich nicht automatisch davon ausgehen das MySQL schneller ist bei einfachen Abfragen. Postgres ist wesentlich schneller geworden und bei einfachen Abfragen kann das auf halbwegs vernünftiger Hardware ohne Probleme tausende von Abfragen pro Sekunde schaffen. Wenn man in den Bereich kommt in dem das evtl. nicht mehr reicht muss man sich die Performance in viel mehr Detail ansehen.
 
Hi,

beide Punkte sind mein aktueller Wissensstand und diese decken sich eigentlich auch sehr stark mit aktuellen Vergleichen und Benchmarks. Daher bleibe ich einfach mal bei den Aussagen ;)

VG,
Mad
 
Madman1209 schrieb:
da würde ich gerne nochmal einhaken: PostgreSQL ist objekt-relational. Das kann Vorteile bieten, ist aber unter Umständen mit einer höheren Komplexität erkauft, wenn man das so auch nutzen möchte.
Ja, wenn man es nutzt. Postgres lässt sich aber als ganz normale relationale Datenbank nutzen.

klecksii schrieb:
Was könnt ihr empfehlen, und was wird alles dazu benötigt?
Komplett irrelevant bei deinen Anforderungen. Was auch immer eine passende Lizenz hat. Das ist so ähnlich wie wenn du einen Computer für MS Office und surfen suchst und fragst, welche Taktfrequenz der RAM haben sollte. Das du MS Access mit DBMS zusammenwirfst lässt mich aber daran Zweifeln, dass du die nötigen technische Kenntnisse mitbringst bzw. eigentlich etwas ganz anderes fragen möchtest und gar nicht auf der Suche nach einem DBMS bist, sondern ein MS Access Äquivalent suchst.

Madman1209 schrieb:
Für den klassischen "ich lese viel und oft" Fall ist MySQL ggf. die performantere Wahl. Wenn es komplexere Strukturen oder Abfragen werden ist PostgreSQL evtl. vorzuziehen.
Mir fallen 10 Dinge ein die zum Flaschenhals werden, bevor das DBMS eines wird. Jemand der hier im Forum nach einem DBMS fragt hat 50 andere Probleme und nicht, ob Postres in manchen Fällen 20% langsamer ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: DefconDev, sh., DubZ und 2 andere
Ich drücke es mal so aus: Wenn man hier so eine allgemeine Frage zu Datenbanken stellen muss und scheinbar bisher nur mit Access Erfahrung gesammelt hat, ist eher weniger davon auszugehen, dass nun Software verkauft werden soll, die für Hunderte oder gar Tausende von Nutzern parallel genutzt wird. Es liest sich eher so als wenn von einer Handvoll Nutzern die Rede ist und dann spielt es eine untergeordnete Rolle welches DBMS man am Ende nimmt. MySQL, PostgreSQL, MS SQL, alles kommt prinzipiell in Frage.

SQLite hebt sich davon allerdings ein wenig ab, weil es eher eine Bibliothek an Kommandos ist, die auf eine banale Datei als Datenbank zugreift. Daher ist SQLite standardmäßig auch nicht Multi-User-fähig, weil es unterm Strich dasselbe wäre wie wenn mehrere Benutzer über das Netzwerk ein und dieselbe Datei bearbeiten würden - mit allen entsprechenden Konsequenzen, File Lock, etc. Man müsste hier also ein Interface on-top bauen, das beispielsweise SQL-Kommandos zum Datenbank-Host schickt und dieser ist dann der einzige Client der SQLite-Datenbank.

Aber auch das ist wieder eine Frage der Rahmenbedingungen der nicht näher spezifizierten Software. Es ist ein Unterschied ob es mehrere Clients gibt, die autarke Verbindungen direkt zu einer Datenbank aufbauen, oder ob es beispielsweise eine ASP.NET Anwendung ist, die auf dem Server selbst läuft und auch das Management der Datenbank übernimmt, während die Clients lediglich als Browser daherkommen und effektiv nur eine HTML-Seite zu Gesicht bekommen - ohne auch nur die Spur einer Ahnung welche Datenbank hinter dem Webserver läuft, sei es SQLite, MSSQL, MySQL, PostgreSQL, etc. In diesem Falle wäre der Webserver der einzige, der überhaupt eine Verbindung zur Datenbank hat, also genau 1 DB-User, der auf Anfrage von Web-Clients Daten ausliest, ändert oder hinzufügt.
 
  • Gefällt mir
Reaktionen: Yogi666 und abcddcba
schon mehrfach erwähnt: PostgreSQL. U.U. auch MSSQL Express... aber da hast du halt wieder Limitierungen wie 10GB max usw. die dich bei einem Produktionseinsatz wirklich nerven können und erweitertes Monitoring erfordern.

Mit PostgreSQL gibts keine Lizenzprobleme und es kann aller Voraussicht nach alles, was du brauchst und noch mehr.

MySQL/MariaDB würde ich nicht nehmen, erst recht nicht, wenn man sowieso keine Ahnung hat. Hier gibts wieder Lizenzthemen, die zu beachten sind.
 
Vielen Dank für die vielen Antworten!

Nehmen wir mal an, ich entscheide mich für PostgreSQL. Wie kann ich dann für die Datenbank ein GUI erstellen, damit der einfache Zugriff auf die DB möglich ist?
 
Mit allem was du willst. Alles womit man Software baut kann sich auch mit DBMSs verbinden und Postgresql ist sehr weit verbreitet.. Aber ganz ehrlich du zäumst das Pferd komplett von hinten auf. Das DBMS oder gar die Lizenz des DBMS ist mit das letzte, worüber du als Anfänger nachdenken solltest. Bau erstmal ein Stückk Software, ich versichere dir das DBMS ist vorerst komplett egal.

Das was du hier machen willst nennt sich einfach "Software Entwickeln".
 
  • Gefällt mir
Reaktionen: andy_m4 und Raijin
klecksii schrieb:
Wie kann ich dann für die Datenbank ein GUI erstellen, damit der einfache Zugriff auf die DB möglich ist?
Meinst du eine GUI für die Administration der Datenbank selbst - Schemata erstellen, etc - oder meinst du die GUI für die eigentliche Nutzung der Datenbank? Ersteres baut man nicht selbst, sondern nutzt fertige Administrationstools wie zB pgadmin. Letzteres ist wiederum deine eigentliche Client-Anwendung, die in der Sprache deiner Wahl für die Plattformen deiner Wahl mit den Funktionen deiner Wahl programmiert wird.
 
  • Gefällt mir
Reaktionen: jlnprssnr
Ich schließe mich im Wesentlichen meinem Vorredner an und möchte das aber noch ergänzen.:-)
PostgreSQL bietet ein Handbuch, wo man schon mal die wichtigsten Informationen bekommt.

Während der Entwicklungsphase kann es natürlich ganz nützlich sein auch "einfach so" mal auf die Datenbank zuzugreifen, auszuprobieren oder gewisse administrative Aufgaben zu erledigen. Im Wiki sind verschiedene Clients für PostgreSQL verlinkt. Was recht häufig benutzt wird und umfangreich ist, ist pgadmin.
 
Da der Threadersteller nicht erwähnt hat, ob relational oder NoSQL, schmeiß ich noch MongoDB in den Raum.
 
Zurück
Oben