Datenbank, welche Programmiersprache wählen

Mathnix

Ensign
Registriert
Sep. 2016
Beiträge
211
Hallo in die Runde,

zuerst, das ist mein erstes Projekt in Richtung Datenbanken, ich möchte dabei möglichst viel lernen und vielleicht springt auch noch eine schöne Anwendung bei raus.

Die grobe Idee ist eine Vergleichbarkeit von Produkten nach Preis und Laden. Gedanken über die einzelnen Tabellen habe ich mir schon gemacht und dabei die Regeln bzgl. Datenbankdesign nach bestem Wissen und gewissen befolgt.

Die erste Idee war das ganze mit normalen Textdateien zu lösen, aber das ist was Wartbarkeit und Erweiterbarkeit angeht ein graus, also will ich mein Theoretisches Wissen aus der Uni zu SQL (wir haben quasi die Standardabfragen besprochen) mal in Praxis umsetzten.

Was ich gerne erreichen möchte:
  • Anwendung mit der man gesichert auf Datenbank zugreiften kann (evtl mit Rechteverwaltung, wenn nicht, ist das auch kein Drama))
  • später eine GUI dafür (auch sowas wie Drag and Drop)
  • Mal sollte durch einfache Befehle sich bspw. das billigste Produkt anzeigen lassen, ohne selbst den Befehl einzugeben.
  • Sollte man einfach (was auch immer das heißt, was nötig ist, ist nötig), auf mehreren Rechnern installieren können-ohne Zugriff auf die selbe Datenbank (man kann dann quasi mit eigenen passenden Daten füttern und an Hand dieser Basis die Operationen durchführen)
  • Eventuell in ganz, ganz ferner Zukunft mal Einbindung in ne Homepage

Jetzt ist die Frage, welche Programmiersprache(n) nehme ich für so ein Vorhaben? (Ich habe Erfahrung mit C/C++, Java muss aber nicht sein, außer es lässt sich nicht verhindern)
Ich weiß, dass ist ein großes Vorhaben, aber irgendwann muss man ja mal anfangen was zu versuchen.
Ich habe auch noch nie eine GUI programmiert.

Ist vielleicht SQLite etwas, was ich mir näher ansehen sollte?

Danke schonmal. Ich bin für jede Hilfe dankbar.
 
SQLite ist als einfach zu nutzende Datenbank für einen Nutzer eine gute Wahl. Wenn du das Ganze webbasiert machen willst eher nicht. Dann sollte man Postgres oder MySQL nutzen, ich würde da eher Postgres nehmen wenn Neuentwicklung.

Bei der Programmiersprache: was die gefällt, womit du gut arbeiten kannst. Egal was.
Zur GUI für eine Desktoplösung: nutze eine Klassenbibliothek wie Qt. Die gibts auf fast allen Plattformen und für viele Programmiersprachen wie z.B. C++ und Python.
 
Ok ich dachte, was die Sprache angeht, wäre das etwas beschränkter ;)
Wieder was gelernt.

Von QT habe ich schon gehört, aber bisher nicht näher angesehen, das steht dann also auf dem Plan.
Am "einfachsten" wäre es dann für mich vermutlich in C++, die Frage ist nur, ob da viele Dinge unnötig umständlich sind. Habe bei einem Komilitonen erlebt, wie er in gefühlt drei Zeilen Python das erreicht hat, was ich in gefühlt 100 Zeilen C++ gemacht habe :-D.

Wieso würdest du Postgres MySQL vorziehen? Und ja es ist eine komplette Neuentwicklung, ich will mir selber was aufbauen, die Daten habe ich teilweise zusammen getragen, noch in Form von Papier (anders nicht möglich :-D ). Das muss dann sowieso noch alles eingepflegt werden, das würde ich dann aber auch direkt zum Testen des Programms machen.
 
Wenn es darum geht Datenbanken zu lernen sollte die Sprache nebensächlich sein, geht nur darum einen connector zu haben. Für SQL kannst du damit transparent skalieren, von z.b. sqlite bis bigquery.

Wie sieht es mit NoSQL DBs aus ? MongoDB , redis z.B ? warum gibt es die, Vor- und Nachteile etc

Zur Umsetzung würde ich Python oder nodejs nehmen
 
Es geht darum, beides miteinander verbinden. Ich habe bisher nur Konsolenanwendungen in C++ geschrieben, würde das aber gerne mal anständig nach MVC mit GUI zu machen.

Außerdem kann ich theoretisch Anfragen an eine Datenbank senden (Uni halt :rolleyes:) und würde das dann gerne auch mal praktisch machen.
 
@xSeppelx sieht interessant aus. Braucht man dafür die kostenplfichtige Variante der Oracle Datenbank? Es soll ja tatsächlich nur ein privates Programm werden, Geld würde ich für den Versuch eher nicht ausgeben. Nicht, dass das ganze nach 2 Monaten einschläft ;)
 
Mathnix schrieb:
@xSeppelx sieht interessant aus. Braucht man dafür die kostenplfichtige Variante der Oracle Datenbank? Es soll ja tatsächlich nur ein privates Programm werden, Geld würde ich für den Versuch eher nicht ausgeben. Nicht, dass das ganze nach 2 Monaten einschläft ;)

Geht auch ohne, die Oracle XE Datenbank ist kostenlos und da kannste dir die neuste Version fix installieren.
Auch ganz interessant: https://github.com/OraOpenSource/oxar
Oder eben apex.oracle.com nutzen, ist kostenlos! Aber finde es manchmal etwas langsam..

Kenntnisse für APEX:
-SQL / PLSQL
-HTML
-CSS
-JavaScript

Falls du fragen hast, gerne eine PN schreiben.
 
Alles klar, das werde ich mir ansehen!
Die Vorfreude auf die Semesterferien steigt somit ;).
 
C++ würde ich heute auch nicht mehr machen, wenn es sich vermeiden lässt. Viel praktischer ist da C#. Weit verbreitet und man findet eine Menge Support im Web.

Visual Studio 2017 gibts kostenlos, MS SQL Server Express ebenfalls.
 
Wieso so viel aufwand? Ich würde anfangs wirklich dazu raten klein anzufangen - sprich (wenn man aus der Java Welt kommt) eine Sprint Boot Applikation mit SQLLite embedded als Datenstorage und Zugriff auf die Daten via REST Schnittstelle (Spring RestController z.B.), via Web based UI (Spring MVC mit Thymeleaf) oder JavaFX UI. (1. hätte den Vorteil dass man das UI unabhängig entwickeln könnte). Tutorials für solche Projekte gibt es wie Sand am Meer.
"Echte" Datenbanken wie MySQL, MariaDB, Oracle, etc. würde ich erst dann verwenden wenn es wirklich einen Vorteil bringt (und denn Wechsel kann man jederzeit später noch immer durchführen).
 
Ich halte das auch für eine gute Kombi, WPF/MVVC sind moderne GUI Technologien, die auch das von Dir angesprochene MVC beinhalten. Datenbanken kannst du beliebig einsetzen, entweder direkt mit SQL oder mit dem Entity Framework und im Enterprise Unfeld lässt sich das Wissen gebrauchen. Aber zu der Frage wirst Fu mind. 10 Meinungen hören. :)

Edit: Bezogen auf Loopman
 
Danke schonmal für die zahlreichen Tipps.
Ich möchte auf jeden Fall Datenbanken verwenden, weil es mich einfach reizt das mal auszuprobieren. wohin das dann führt wird man sehen.

Ich werde mir alle eure Tipps zu Herzen nehmen und mich mal durch Tutorials klicken um zu entscheiden, welche Sprachen ich nehmen werden - ich habe jetzt ja einen Anhaltspunkt was sinnvoll ist und in Frage kommt.
 
Zurück
Oben