Datenbanken erstellen - Welche Sprachen als Anfänger?

Sinaki

Newbie
Registriert
Juli 2021
Beiträge
3
Hallo

Ich bin etwas überfordert.

Ich bin absoluter Programmier-Anfänger, möchte mich aber mit dem Thema Datenbanken in Zukunft auseinandersetzen.

Grundsätzlich möchte ich zb. folgende Dinge in Zukunft verstehen und selber machen können.

Ich möchte Datenbanken selbst bauen können. Ideal auf meinem Server nutzen und bearbeiten können.

Toll wäre es, wenn ich diese dann auch an meinen verschiedenen Mobilen Geräten nutzen könnte.

Erstellen möchte ich mir zb:

  • Lagerverwaltung
  • Kunden, bzw Therapeuten- Software mit verschiedenen Eingabemöglichkeiten wie die allgemeinen Koordinaten, Termine, vergangene Termine, Sitzungsrapport, Kalender usw....
  • Inventarlisten
  • Forschungs- Rapport mit zugeordneten Test-Artikeln


und so weiter.

Mir ist klar dass da überall Arbeit dahinter steckt, die ich aber auch gewillt bin aufzubringen und vorgängig zu lernen.

Da ich dies aber eher als Hobby anzuschauen habe, möchte ich gleich mit den "richtigen" Schritten und Sprachen beginnen.

In erster Linie soll das Ganze auf allen Geräten laufen (MacOS, iOs, Windows & Android) Webbasiert reicht wohl aus.

Vielleicht gibt es ja auch einen Komplett-Kurs der mir das Ganze beibringen kann. (Ich spreche leider kein Englisch, bzw. praktisch keines)

Wenn ich google, dann stosse ich immer wieder auf Python und JavaSript.

Da mein Hauptaugenmerk auf einer Datenbank liegt (so nehme ich zumindest an), weiss ich aber nicht ob ich da nicht mit php, html, css und MySql besser aufgehoben bin.



Ihr seht...ich seh vor lauter Bäumen den Wald wohl nicht mehr und erhoffe mir von Euch etwas Abhilfe. Vielleicht kennt ihr das ja oder wart an der selben Stelle :)



Ich bedanke mich im Voraus



Mit freundlichen Grüßen

RJ
 
Zuletzt bearbeitet:
Hallo!

Zunächst brauchst du dir um Python, C++, Java, JavaScript, etc. gar keine Gedanken machen. Lerne erstmal die SQL-Grundlagen, dafür bietet sich sqlite3 an, da das überall läuft und meist dabei ist, außer bei der Servicewüste Windows natürlich ;)
Parallel dazu kannst du dir noch MySQL/MariaDB, bzw. mein Vorschlag PostgreSQL ansehen, die Unterschiede erkennen, etc.
Vieles kann eine Datenbank selbständig, bspw. über Trigger, Views, etc.

Damit kannst du dir schon mal deine Datenbanken aufbauen und strukturieren, fertige Abfragen schreiben, etc. pp.
Diese können dann später über ein Klientprogramm aufgehübscht oder in eine GUI gepackt werden.
 
  • Gefällt mir
Reaktionen: pizza4ever, Sinaki, Asghan und 2 andere
Für die Datenbank selbst: SQL, damit definierst du die Datenbank (per SQL-DDL) und kannst Daten lesen/schreiben/bearbeiten (per SQL-DML). Welches DBMS (Datenbankmanagementsystem) du nimmst, bleibt dir überlassen. Ich finde PostgreSQL ganz nett.

Dann brauchst du ein Webinterface. Dafür gibts zig Frameworks und Sprachen. Bekannte vertreter sind Serverseitig: PHP, JavaScript (per nodeJS), Java, C#/.netFramework.

Für die Gestaltung des Webinterfaces kommt dann HTML/JavaScript/Css zum Zug. Aber auch da gibts zig Frameworks, für verschiedene Einsatzzwecke: Angular, React, Laravel usw.

Für das was du vorhast brauchst du: 1. Datenbank 2. "Server-Code", der deine Datenbankzugriffe für das Webinterface aufbereitet.
Wie der Server-Code aussieht und aufgebaut ist, hängt davon ab, was du willst. Da du den Fokus auf die Datenbank hast, fang erstmal damit an SQL zu lernen und lerne, wie man eine Datenbank sinnvoll modelliert (Normalformen, Fremdschlüssel usw.)
 
  • Gefällt mir
Reaktionen: Sinaki
Hast du denn schon geschaut, ob es nicht was fertiges gibt, was deinen Bedürfnissen entspricht? Vielleicht würde es für den Anfang Nextcloud tun.

Wenn es mehr ums lernen geht, ist die Frage auch, welche Sprache dir am Anfang mehr zusagt und wo du am schnellsten Resultate siehst. Ich persönlich finde python/Django gut, weil es vieles mitbringt (Admin Bereich) und die Datenbankgeschichten etwas abstrahiert, wodurch der Einstieg leichter ist. Ist aber sicher Geschmackssache.
 
  • Gefällt mir
Reaktionen: Sinaki
du musst unterscheiden zwischen Datenbankbansystem (bestehend aus Datenbankmanagementsystem und der eigentlichen Datenbank) und dem Zugriff darauf (via Clientanwendung)

Datenbank <-> DBMS <-> Client

um die Datenbank ansich musst du dich nur soweit sorgen, als dass du eine möglichst normalisierte Struktur erstellen solltest. Stichworte: ER Modell und Normalisierung

das DBMS ist meistens ein Server, zb MySQL, MariaDB etc. dieser kann ggf. auch weggelassen werden, zb bei SQLite

und als Client hast du die freie Wahl ... PHP (hier wird noch ein Webserver benötigt!), Python, Java, C# was auch immer du willst :)


So oder so geht meines erachtens nach kein Weg am ER Diagramm und SQL als Abfragesprache vorbei ... am besten fängst du da mal an zu lernen :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Raijin, Sinaki und TorenAltair
Je nachdem was "absoluter Anfänger" heißt würde ich nicht empfehlen mit Python als Programmiersprache anzufangen. Da nimmt einen Java doch besser an die Hand um die Grundkonzepte zu erlernen.

Aber generell stimme ich den anderen zu, erstmal mit SQL-DDL anfangen, und wenn da alles klar ist und die Datenbank steht weiterschauen (;
 
  • Gefällt mir
Reaktionen: Sinaki, KitKat::new() und Hellblazer
Sinaki schrieb:
In erster Linie soll das Ganze auf allen Geräten laufen (MacOS, iOs, Windows & Android) Webbasiert reicht wohl aus.
Web-basiert reicht hier nicht nur aus, sondern sollte die erste Wahl sein.

Als "Einsteiger" helfen da aus meiner Sicht immer auch Frameworks wie z.B. Node.js, weil diese schon "Standardfunktionalitäten" mit sich bringen (u.a. eben die Anbindung an Datenbankserver)
 
  • Gefällt mir
Reaktionen: Sinaki und foo_1337
Wenn das ganze Online zu Verfügung gestellt werden soll, ist die Frage auch wichtig: Ob man sich wirklich selbst um die Autorisierung kümmer möchte, oder lieber was fertiges nimmt. Also ein Modul für die passende Sprache/Framework.
 
  • Gefällt mir
Reaktionen: Sinaki
Ich glaube, dass wir den TE hier wohl etwas zugeworfen haben, mit Sprachen und Frameworks :D

Mal was handfestes: Das Buch "PHP und MySQL für Kids" liefert da einen guten Einstieg. Da steht zwar "für Kids", aber das darf man auch als Erwachsener lesen ;)
Ich bin damit auch in die Programmierung eingestiegen. PHP ist jetzt zwar nicht mein Favorit, aber wenn man sich anschaut, was für PHP-Frameworks es gibt (z.b. Laravel), dann ist das gar keine so schlechte Wahl. Im Buch wird zwar MySQL vorgestellt, aber um die Grundprinzipien zu lernen, ist das ok.
Der Einstieg ist mit dem Buch recht einfach. Man kann sich das auch alles aus dem Web ziehen, aber da ist man schnell überfordert angesichts des Angebots an Tutorials (wobei es da sicherlich auch gute Einstiegstutorials/Videos gibt)
 
  • Gefällt mir
Reaktionen: Sinaki
Ich würde es vll wirklich Webserver-basiert mit PHP und SQLite lösen.
Da kannste alle Endgeräte ohne Probleme über dern Browser drauf zu greifen.

Ich glaube andere SQL Datenbanken die Server-Client basiert sind, sind für deine Aufgabe zu mächtig und auch unnötig.
Nutze selber SQLite auf meinem Pi was aber per Python gefüttert wird. Da ist keine Oberfläche hinter.

Beruflich nutze ich MS SQL was natürlich ne ganz andere Hausnummer und für dein Vorhaben absolut overkill ist.
 
  • Gefällt mir
Reaktionen: Sinaki
Ich denke, dass der Microsoft SQL-Server ein sehr gutes Werkzeug ist.

Um Datenbanken zu verstehen und deren Funktionalität zu programmieren eignet sich für Desktop-DBs Microsoft Access ganz hervorragend. Das verwendete VBA ist leicht erlernbar und garantiert schnelle Erfolge!
 
  • Gefällt mir
Reaktionen: Janush
Wenn Du wirklich Anfänger bist, würde ich mich alleine autodidaktisch nicht damit beschäftigen wollen, sondern irgendwo einen Kurs buchen.
Ergänzung ()

ella_one schrieb:
Um Datenbanken zu verstehen und deren Funktionalität zu programmieren eignet sich für Desktop-DBs Microsoft Access ganz hervorragend.
:stacheln:

Sorry, Finger weg von Access! Man kann sich nicht mehr vermurksen als damit, das sehe ich permanent in den ganzen Migrationsprojekten. Wer daran denkt, mit seinen DB-Kenntnissen vielleicht auch mal Geld zu verdienen, und/oder ein entsprechendes SW-Projekt aufsetzt, was irgendwann mal Geld bringen sollte. Es gibt genug andere gute Empfehlungen:
  1. MariaDB/MySQL (Vorsicht, sie sind heute nicht mehr ganz kompatibel
  2. Postgresql - Ganz hervorragende Datenbank, die sehr viele gute Features hat, Pyhton 3 direkt einbetten kann, und deren SQL-Standard wirklich gut ist. Postgresql kann auch PL/SQL. Jeder, der mit Postgresql arbeitet, kommt prima mit Oracle Datenbanken zurecht
  3. MS-SQL gibts als Express Variante, die ein guter Einstieg ist, und deutlich besser als Access ist.
Daher, wenn man es gut und richtig machen will, soll gleich mit einer gescheiten Datenbank arbeiten.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Raijin und Sinaki
Einen schnellen Einstieg kann man auch mit MS Access erreichen. Damit kann man spielerisch die Grundprinzipien einer relationalen Datenbank und SQL Abfragen lernen.
Man muss nur den Absprungpunkt zu "richtigen" Datenbanken und Programmierung finden und sich nicht zu tief in die Offline/Standalone Struktur von Access eingraben.
 
  • Gefällt mir
Reaktionen: Sinaki und KitKat::new()
Wie von @LieberNetterFlo geschrieben, sofern Du keine Ahnung von der Theorie hast, erstmal mit ER-Diagramm, relationalen Datenbanken, Normalisierung usw beschäftigen. Dafür reicht Papier und Bleistift. Und ja, das ist recht unsexy, aber leider notwendig.
 
  • Gefällt mir
Reaktionen: KitKat::new(), Sinaki, LieberNetterFlo und 2 andere
madmax2010 schrieb:
Der Buchtipp ist super, jedoch würde ich jedem Anfänger es NICHT raten, SQL per Buch zu lernen. Die Einstiegshürde ist doch höher als bei einer üblichen Programmiersprache. Man braucht schon ein Verständnis von Datenstrukturen usw., das ein Einsteiger garantiert nicht hat. Daher, besser irgendwo schauen, wo Kurse angeboten werden.
madmax2010 schrieb:
MariaDB / SQLite sind für den Einstieg super. Technisch unglaublich cool ist Postgres. Ich lasse mal den Blog Artikel hier: https://www.2ndquadrant.com/en/blog/postgresql-is-the-worlds-best-database/
Eben! 👍 Aus der Praxis kann ich sagen, daß wir seit ca. 2 Jahren bei allen Kundensysteme von MariaDB/MySQL auf Postgresql wechseln. Selbst einige Platzhirsche wie Oracle werden durch Postgresql wie überraschenderweise MS-SQL Server abgelöst.
 
  • Gefällt mir
Reaktionen: Sinaki und madmax2010
Ich halte Access auch für keine gute Einsteiger-Lösung.
Man sollte nebenbei nicht ausblenden, dass es eine kostenpflichtige Software ist, während hervorragende relationale Datenbank-Management-Systeme (RDBMS) wie PostgreSQL, MySQL/MariaDB u.a. auch kostenlos zu haben sind.
Das besagt zwar nichts zur Leichtigkeit des Einstiegs, aber wenn man sich innerlich an eine Lösung bindet und später vom Hersteller dafür zur Kasse gebeten wird (obwohl es nur ein Hobby werden sollte), kann das eine frustrierende Erfahrung sein.

Für mein Dafürhalten ist die Wahl der Werkzeuge essentiell für einen erfolgreichen Einstieg; wenn man PostgreSQL, MariaDB oder MySQL lokal installiert und mit einem Client wie HeidiSQL den Zugang dazu erlernt, ist das alles andere als schwergewichtig.
 
  • Gefällt mir
Reaktionen: Raijin, Sinaki und PHuV
@Phrasendreher
Wirklich guter Punkt der Kostenpflichtigkeit.

Wir sind bespielsweise immer wieder mit den Problemen konfrontiert, das bei Access vieles problematischer ist als bei anderen Datenbanken. Klar bekommt man das mit sehr gutem Access-Know-How hin, aber faktisch haben das viele vor Ort nicht. Da wird dann irgend eine Access-Version hininstalliert, dann fehlen Teile, von der Erstellen der Daten und Datenbasis man ganz zu schweigen. Von den anderen Datenbanken bekommt man das immer mit diversen Tools per JDBC und DDL irgendwie schnell extrahiert, bei Access eben nicht.

Nichts ist so extrem MS lastig wie Access. Daher, wenn es unbedingt Microsoft sein soll, installiert bitte MS-SQL Server Express. Funktioniert prima und stabil, und man kann damit deutlich (!) mehr und effizienter arbeiten und machen als mit Access.
 
  • Gefällt mir
Reaktionen: Sinaki
Phrasendreher schrieb:
ber wenn man sich innerlich an eine Lösung bindet und später vom Hersteller dafür zur Kasse gebeten wird (obwohl es nur ein Hobby werden sollte), kann das eine frustrierende Erfahrung sein.
Die Gefahr eines Lock-Ins sehe ich da aber eher in der technischen Begrenztheit, nicht bei den Kosten. Ein Jahr o365 gibt es zusammen mit 1 TB Cloud im Angebot für 30-50€.
Ein lächerlicher Betrag im Gegensatz zum zeitlichen Aufwand und den Kosten für ggf. Bücher oder Kurse, die ggf. noch empfehlenswert sind.
Oder man holt sich bewusst eine Uralt Version, die gerade noch unter Win10 läuft. Vielleicht geht ja Office 2000 sogar noch, das sollte für ein paar Euro als legitime Version (also kein dubioser Key) bei Ebay zu kaufen sein.

Problematisch ist aus meiner Sicht nur der Absprungpunkt, also sobald man das Prinzip von Primärschlüsseln, Normalisierung und SQL-Abfragen begriffen hat, dann weiter macht mit dem Formulareditor etc. statt sich dann mit richtigen DB-Servern und Frontendprogrammierung auseinanderzusetzen
 
  • Gefällt mir
Reaktionen: KitKat::new() und Sinaki
Zurück
Oben