Datenbankprogrammierung lernen. Was empfehlt ihr?
Einen wunderschönen guten Morgen,
da ich mich intensiver mit Computersprachen beschäftigen will (und mir auch einige Themen dazu ausgesucht habe), schiele ich auch ein bisschen auf die Datenbankprogrammierung.
Da ich am Besten aus Büchern lernen kann, habe ich mir einige Titel zu angesehen, bin aber etwas verunsichert, weil ich sowohl welche finde für Datenbanken als auch für SQL als auch für MySQL
Jetzt weiß ich nicht, was am Besten geeignet ist: Datenbanken allgemein, SQL, MySQL?
Was ratet ihr mir?
Für die Antworten bedanke ich mich im Voraus
GLG
Tichuspieler
4 Antworten
SQL ist eine Sprache um mit Datenbanken zu arbeiten, MySQL ist ein recht bekanntes Datenbanksystem, das den Vorteil hat, kostenlos zu sein. Die Beschäftigung damit ist keinesfalls verkehrt.
Du wirst aber feststellen, dass SQL am elegantesten in eine andere Programmiersprache eingebettet wird um die Daten aus einer Datenbank zu präsentieren (beispielsweise mit einer Web-Oberfläche.) Das geht mit jeder halbwegs modernen Sprache, sehr gern wird dabei PHP oder auch Python benutzt.
Gerade für die Zusammenarbeit für PHP und MySQL gibt es einige gute Bücher.
Datenbankprogrammierung mit Python geht auf jeden Fall ohne Probleme. Ruby (on Rails) geht genauso gut, ist aber nicht so verbreitet wie Python (ich nehme gern PHP, Perl oder C++, alles kein Problem.)
Die Methode ist immer die gleiche: Du baust Dir in der Sprache Deiner Wahl das SQL-Statement zusammen (oft in einer Stringvariable) und übergibst den String dann an die Datenbank-Api. (und bekommst von dieser dann das Ergebnis).
Okay. Momentan sind Deine Worte zwar (noch) böhmische Dörfer für mich, aber ich bin zuversichtlich, dass ich eines netten sympathischen Tages alles auf Kette habe ...;-).
Danke auf jeden Fall für das Mutmachen :-)
Das ist zu schaffen. Ich habe vor vielen Jahren auch im Selbststudium angefangen. Sicherlich kann man mit SQL anfangen, aber ich glaube, als Anfänger hat man mit einer Programmiersprache wie Python schnellere Erfolgserlebnisse. SQL ist - wie sag ich es am besten? - manchmal etwas spröde!
:-D Okay.
Momentan bin ich eh noch bei dem Erlernen der Linuxserveradministration, das wird ohnehin noch ein bisschen dauern, bis ich SQL oder Python in Angriff nehme.
Aber mich persönlich reizt es, mich mit Computersprachen zu beschäftigen, und je tiefer ich in die Materie tauche, umso faszinierender finde ich sie und will noch mehr lernen, darum eben auch Python/Ruby on Rails/Datenbanken etc.pp.
Außerdem bin ich der Meinung, dass man nie zu alt ist, um etwas Neues zu lernen. Und wer weiß: Vielleicht bin ich eines Tages tatsächlich so gut, dass ich anderen Menschen mit meinem Fachwissen weiterhelfen kann.
Linux-Admins sind eine gesuchte Spezies. Und es ist ein Thema, bei dem man niemals auslernt :-) Früher oder später wirst Du dabei auch auf "Perl" stoßen.
Ich weiß ja nicht, wie alt Du bist - ich bin 66 und lerne immer noch mit sehr viel Spaß :-) Es gibt immer noch so viel Neues zu entdecken.
Ich bin ein Stückchen jünger: In zwei Monaten werde ich 57. Aus reiner Neugier gefragt: Hat man Dir zum 66. dann den Udo Jürgens Klassiker gespielt ...? ;-)
Und ja, ich bin da bei Dir: Es gibt viel Neues zu entdecken, und lernen - auch im höheren Alter - ist gut für den Kopf.
Von Perl habe ich schon gehört, dies allerdings nur am Rand. So wirklich habe ich diese Sprache nicht auf dem Schirm.
Nein, die Nummer von Udo Jürgens hat mir keiner gespielt - die haben sich wohl nicht getraut :-)
Perl ist ein bisschen aus der Mode gekommen, deshalb würde ich auch nicht mehr empfehlen, damit zu beginnen. Aber gerade in der Unix-Administration wurde es halt sehr häufig verwendet, um administrative Aufgaben zu automatisieren. Man stolpert also immer wieder darüber. Ich habe mit Perl viele Jahre mein Geld verdient, also benutze ich es immer noch sehr gern.
Ich würde gerne noch einen Schritt zurück gehen. SQL ist eine Abfragesprache (Structured Query Language). Es gibt nun verschiedene Produkte, die diese Abfragesprache unterstützen. Hierzu gehören MySQL, MS SQL Server, Postgresql, Oracle und noch einige mehr. Sie unterscheiden sich im Detail aber grundsätzlich machen sie alle das Gleiche. In dem jeweiligen Produkt wird eine relationale Datenbank betrieben, die über SQL erstellt, geändert, befüllt, gelöscht, abgefragt, .... werden kann.
Relationale Datenbanken kommen häufig zum Einsatz. Je nach Anwendungsfall sind sie großartig oder unglaublich unpraktisch. In den letzten Jahren sind zusätzlich andere Datenhaltungsformen in Mode gekommen, die andere Vorteile aber auch Nachteile haben.
Alternativ sind hier NoSql Datenbanken zu nennen.
Hierzu gehören Graph Datenbanken in denen du jedes Objekt mit jedem in Relation setzen kannst (das ist in einem relationalen Datenbank System keine triviale Aufgabe).
Auch Schema-Lose Datenbanken sind im NoSql Kontext zu nennen. Hier kannst du beispielsweise Führerscheindaten und Ausweisdaten in der gleichen Tabelle speichern auch wenn sie nur teilweise die gleichen Daten enthalten. Das ist in relationalen Datenbanken nicht so.
Fazit, SQL ist wichtig. Lern es, es wird sehr nützlich sein. Denk dran, es gibt andere Datenbanksysteme, die für den Anwendungsfall geschickter sein könnten.
Hallo,
vielen lieben Dank auch für Deine Antwort.
Ich habe SQL zwar auch meine Lernliste gesetzt, auf Empfehlung mancher hier Antwortender jedoch erst nach dem Lernen von Python 3 (und davon habe ich gerade Linuxserver-Adminstration am Wickel)
SQL ist die Programmiersprache.
MySQL ist ein DBMS und unterstützt SQL in einem eigenen Dialekt (auch MySQL genannt).
Es gibt noch andere DBMS', MySQL ist nur eines von vielen.
Wenn Du SQL im allgemeinen kannst, kommst Du mit den ganzen Dialekten auch klar, die sind sehr ähnlich. Irgendwelche Sonderlocken wirst Du natürlich nicht aus dem Stand können, aber das ist normal. Und manche Dialekte oder DBMS' bieten Funktionen, die andere nicht bieten, aber da reicht ein Blick in die Doku, am Grundkonzept ändert das nichts.
Und wenn Du Datenbankprogrammierung lernen willst, fang ohne Datenbanken an ;)
Lieber erst Mal nur Programmierung lernen, wenn das sitzt und Du erste Projekte mit einer Datenbank aufbauen willst, dann kannst Du dich an Datenbankprogrammierung wagen.
Es gibt zwar auch Firmen, die reine Datenbankentwickler einstellen, aber ich würde mich nicht rein darauf spezialisieren, die große Mehrheit versucht eher, SQL zu meiden, als ausschließlich auf SQL zu setzen.
In zwei Monaten werde ich 57
Demnach machst Du das wohl nicht für den Job?
Dann ist natürlich egal, was Du machen willst, solange es Spaß macht.
Aber auch da solltest Du erst mit den Grundlagen anfangen.
Außerdem solltest Du dir vorher überlegen, was Du damit alles machen willst, das schränkt die Wahl der Programmiersprache nämlich ein. SQL ist überall Standard, aber Du wirst nicht mit SQL alleine z.B. eine Handy-App auf die Beine stellen können.
Hallo Palladin007,
auch Dir ein dickes Dankeschön für die Antwort.
Ich hatte aufgrund der Antworten von Euch schon beschlossen, das Erlernen der Datenbankprogrammierung weit nach hinten zu schieben.
Ja, ich mache das Ganze nicht für meinen Job, auch wenn mir ein User hier auf GF den Tipp gegeben hat, dass ich - wenn ich wirklich großes Fachwissen in dem Bereich vorweisen kann - sogar im höheren Alter noch Chancen habe, mit der IT ein bisschen Geld zu verdienen (sozusagen Rente aufbessern).
Derzeit möchte ich das Ganze aber eher für mich privat, für ein Projekt, welches mir vorschwebt, lernen.
Und ja, ich werde definitiv mit den Grundlagen anfangen. Versprochen. :-)
sogar im höheren Alter noch Chancen habe, mit der IT ein bisschen Geld zu verdienen
Schon, ja, aber mach dir da nicht zu viele Hoffnungen.
Du hast es ja auch schon gemerkt, dass die Lernfähigkeit im Alter nachlässt und die Softwareentwicklung erfordert einige eher ungewöhnliche Denkmuster, die Du so im täglichen Leben sonst nicht brauchst. Solange Du Spaß daran hast, ist das nicht weiter wild, aber Du wirst länger brauchen, um komplexe Zusammenhänge zu verstehen oder (viel wichtiger) selber zu entwickeln.
Und dann ist das A und das O in der Softwareentwicklung die Erfahrung. Chefs sind gerne Mal der Meinung, dass ein Azubi in dem Beruf nach der Ausbildung "ausgelernt" sein, aber das ist Quatsch. Die Ausbildung ist mehr ein "Ich erkläre dir deine Werkzeuge", die tatsächlich echte Ausbildung kommt erst danach.
Oder mit anderen Worten: Es dauert lange, um so gut zu werden, dass jemand dich dafür bezahlt, besonders auch, da dich niemand vollzeit einstellen wird und Du also als Freelancer arbeiten muss.
Du musst also mit dem Preis punkten, Softwareentwicklung ist für Viele zu teuer, aber das würde ja zu deinem Plan neben der Rente passen. Nur darfst Du dir nicht zu große Hoffnungen machen, sonst wirst Du nur enttäuscht. Bleib lieber dabei, dass es dir Spaß macht, nach ein paar Jahren, wenn Du die ersten großen Hürden und den zwangsläufig darauf folgenden Dunning-Kruger-Effekt überwunden hast, dann wird dir auch irgendwann klar: Jetzt kann ich mit gutem Gewissen Geld damit verdienen.
Also ja, was Du schreibst, klingt sehr sinnvoll :)
Such dir aber auch Hilfe, Rat, Meinungen, etc. in einem darauf spezialisierten Forum (also nicht hier). Vieles ist sehr schwer alleine zu lernen (insbesondere das Thema Architekturen), da ist Rat von erfahrenen Kollegen sehr hilfreich. Z.B. Architekturen wirst Du mit der Zeit auch alleine verstehen, aber es dauert viel länger und Du brauchst eine gewusste Frustresistenz, weil Du häufig gegen selbst im Weg platzierte Steine laufen wirst, deren Beseitigung häufig ein komplett neu begonnenes Projekt erfordert. Das ist normal, teilweise notwendig für's Verständnis und kann auch Spaß machen, aber Tipps in die richtige Richtung erleichtern es sehr.
Hallo noch einmal,
danke für Deine Anmerkung.
Du hast es ja auch schon gemerkt, dass die Lernfähigkeit im Alter nachlässt
Da muss ich ein zaghaftes Jein entgegenschleudern. Es ist zwar richtig, dass das Gehirn im Alter langsamer lernt (im Gegensatz zu einem jüngeren), gleichzeitig aber lernt das ältere Gehirn gründlicher als ein jüngeres.
Such dir aber auch Hilfe, Rat, Meinungen, etc. in einem darauf spezialisierten Forum (also nicht hier). Vieles ist sehr schwer alleine zu lernen (insbesondere das Thema Architekturen), da ist Rat von erfahrenen Kollegen sehr hilfreich. Z.B. Architekturen wirst Du mit der Zeit auch alleine verstehen, aber es dauert viel länger und Du brauchst eine gewusste Frustresistenz, weil Du häufig gegen selbst im Weg platzierte Steine laufen wirst, deren Beseitigung häufig ein komplett neu begonnenes Projekt erfordert. Das ist normal, teilweise notwendig für's Verständnis und kann auch Spaß machen, aber Tipps in die richtige Richtung erleichtern es sehr.
Okay, mache ich. (auch wenn ich hier schon den einen oder anderen Tipp bekommen habe, der mich beim Lernen bzw. Verstehen gut weiterbrachte).
Wobei ich ein wenig "Angst" vor zwei Extremen habe: Einerseits vor jenem, dass einfach vorausgesetzt wird, dass ich schon ein gewisses Fachwissen haben MUSS, um eine gegebene Antwort zu verstehen, auch wenn ich in dem Bereich blutiger Anfänger bin, andererseits keine Antwort bekomme, eben weil ich in dem Bereich blutiger Anfänger bin :-(
Das mit der Frusttoleranz kenne ich, ich kenne sogar sehr gut; hin und wieder komme ich auch in die Phase, wo ich alles in die Ecke pfeffern möchte aus Wut und Frust. Andererseits bin ich auch der Typ, der aus Trotz die Sachen wieder aus der Ecke holt und weitermacht.
[...] wenn Du die ersten großen Hürden und den zwangsläufig darauf folgenden Dunning-Kruger-Effekt überwunden hast,
Das ist eine interessante Sache mit dem D-E-Effect.
Ich weiß ehrlich gesagt nicht, ob ich diesem schon unterliege.
Ein Bekannter von mir ist gelernter Fachinformatiker, der neben seinem Job als Arbeitnehmer nebenher selbständig ist und seinen Kunden bei Problemen mit deren Computern hilft. Er hatte mir erzählt, dass er bei dem Großteil seiner Kunden (egal ob jung oder ob alt) bei Adam und Eva anfangen muss.
Und er hilft auch mir, und weil er es gewohnt ist, bei seinen anderen Kunden bei Adam und Eva anzufangen, macht er dieses auch bei mir.
Was fast immer zu einem genervten Gesicht bei mir führt und ich ihn frage, warum er mir das alles erzählt, dass weiß ich schließlich schon. Irgendwann komme er aber dann zu einem Punkt, wo ich dann doch die weiße Fahne schwenken muss.
Von daher kann ich mir schon vorstellen, dass ich dem Dunning-Kruger-Effect erliege, weil ich mir einerseits einbilde, tatsächlich ein wenig mehr Fachwissen (im Computerbereich) zu haben als so manch anderer, andererseits weiß ich auch, dass auch ich meine Grenzen an Fachwissen habe, und wenn jemand mit einer sehr speziellen Frage ankommt, die ich absolut nicht beantworten kann, dann halte ich auch meinen Mund und tue nicht so, als ob ich es wüsste.
Auch wenn ich hin und wieder dem Größenwahn verfallen bin: ich bin irgendwo auch ein Realist (und dank dieses Realismus glaube ich auch, dass mein Fachwissen noch um einen Mount Everest an Wissen braucht, um vielleicht annähernd so gut zu sein, um das von Dir erwähnte Gute Gewissen, um damit Geld zu verdienen zu erreichen).
auch wenn ich hier schon den einen oder anderen Tipp bekommen habe, der mich beim Lernen bzw. Verstehen gut weiterbrachte
Meiner Erfahrung nach sind die Hilfen hier allerdings eher schlecht, als recht, auch wenn es Ausnahmen gibt. Am Anfang mag das völlig ausreichen, aber sobald Du in den Bereich von Architekturen kommst, sieht das häufig anders aus und da ist Erfahrung absolut kriegsentscheidend.
Du musst natürlich nicht jetzt sofort auf ein anderes Forum wechseln, für den Anfang tut's auch gutefrage.net oder KI (Claude ist teuer, aber mMn. am besten).
Ggf. ist KI sogar die beste Unterstütrzung für den Anfang, zumindest sagen das unsere Azubis, allerdings haben die zur Not auch noch Kollegen, die sie fragen können.
Nur übertreiben sollte man es mit der KI nicht, auch das lange lange Suchen nach Fehlern gehört zum Lernprozess dazu, daraus entwickelt sich dann mit der Zeit eine sehr strukturierte Herangehensweise, die sehr hilfreich ist.
Das mit der Frusttoleranz kenne ich, ich kenne sogar sehr gut
Ja, das kennt vermutlich jeder.
Die spannende Frage ist aber, wie lange es dauert, bis man aufgibt ^^
Mein Rekord war z.B. > 24h am Stück (ja, war eine lange Nacht ^^), nur Pausen für Essen und andere "Grundbedürfnisse" ^^
Das ist natürlich nicht normal und ich habe danach auch gelernt, dass es klüger ist, vorher gezielt eine längere Pause einzulegen, aber wer schon nach wenigen Stunden verzweifelt, wird nicht weit kommen.
Ich will dir damit nichts unterstellen, sondern nur einen Eindruck vermitteln, wie es aussehen kann.
Das "aus Trotz die Sachen wieder aus der Ecke" holen und weitermachen ist dabei aber eine ziemlich wertvolle Eigenschaft - zumindest für private Projekte und zum Lernen. Für berufliche Projekte sollte man schon ein gutes Mittelmaß finden, kostet ja alles Zeit = Geld.
Irgendwann komme er aber dann zu einem Punkt, wo ich dann doch die weiße Fahne schwenken muss.
Das ist normal ^^
Ist auch eine Diskussion, die ich regelmäßig mit einem Kollegen habe. Der will beim Wissenstransfer immer den direkten Praxisbezug haben, versteht dabei aber nicht, dass der Baum an aufeinander aufbauenden Themen gigantisch sein kann und man nicht zu weit oben starten sollte. Wobei zu weit unten starten auch schädlich sein kann, sonst kommt man nie ganz oben an ^^
Die Herangehensweise von einem Bekannten, erst einmal vorne anzufangen und somit einen roten Faden zu schaffen und Grundlagen in Erinnerung zu rufen, klingt für mich aber durchaus sinnvoll, auch wenn es manchmal nervig wirkt. Du kannst das dann ja umdrehen und das, was Du glaubst, bereits zu wissen, einfach selber erklären, das festigt das Wissen, macht mehr Spaß, als das bloße Zuhören und der Bekannte kann kontrollieren und ggf. Lücken schließen. Ich mache das bei unseren Azubis auch manchmal, lasse sie erklären, meistens fallen dann recht schnell die Lücken auf.
Von daher kann ich mir schon vorstellen, dass ich dem Dunning-Kruger-Effect erliege
Dann würde ich aber zwei Dunning-Kruger-Effekt-Stufen sehen ^^
Einmal das, was Du jetzt schon merkst, es gibt aber auch den Punkt, wo das von dir beschriebene Problem nicht mehr so stark hast und dann eine gewisse Selbstsicherheit einsetzt.
Zumindest habe ich bei mir gemerkt, dass mit dem Einsetzen dieser Selbstsicherheit auch eine Art Dunning-Kruger-Effekt eingesetzt hat, den ich dann erst mit der Zeit überwinden musste.
Wobei diese zweite Dunning-Kruger-Effekt-Stufe vermutlich nie wirklich ganz überwunden wird, dafür ist das alles einfach zu komplex. Es gibt immer irgendetwas, was Du noch nicht weißt und selbst wenn Du jetzt alles lernen könntest (was utopisch ist), dann würde in der Zwischenzeit was Neues auftauchen und Du hättest die Hälfte wieder vergessen, weil die tatsächlich praktische Erfahrung mit dem neu gelernten Wissen fehlt.
Das ist aber ganz normal und macht irgendwo auch den Reiz aus.
SQL ist die Sprache, die du lernen solltest.
MySQL ist ein spezielles Datenbanksystem, das du mit SQL bedienen kannst.
Hallo,
vielen lieben Dank für Deine Antwort. :-) Dann weiß ich Bescheid und werde mich mit SQL beschäftigen.
Die meisten relationalen Datenbanksysteme halten sich an den SQL-Standard, es gibt aber hin und wieder feine Unterschiede. Wenn du vorhast eine bestimmte Datenbank einzusetzen, MSSQL, Oracle, MySQL ... dann schadet es natürlich auch nicht, sich die Details für die spezielle Datenbank anzusehen.
Ehrlich gesagt bin ich gar nicht sicher, welche Datenbank ich einsetzen will. Bisher kenne ich vom Namen her vier Stück: MySQL, No-SQL,Postgre-SQL und MariaDB. Dank Dir noch zwei weitere, wobei ich davon ausgehe, das MSSQL für MicrosoftSQL steht, und die dürfte für mich nicht in Frage kommen, weil ich gerade dabei bin zu lernen, einen Linuxserver zu administrieren (und da weiß ich nicht, ob Microsft und Linux zusammenpassen ...)
Von MySQL habe ich in unserer hiesigen Bücherei ein Werk entdeckt, mit dem man jemanden erschlagen kann (an die 800 Seiten). Es stehen aber auch dünnere dort ...;-)
Guten Morgen,
danke auch Dir für die Antwort. Du bringst mich da auf etwas, was ich vergessen habe in meine Frage zu schreiben: Zu den Computerthemen, die ich mir autodidaktisch aneignen will, gehört auch die Programmierung, sowohl in Python (schreibst Du ja, dass dies damit geht) als auch Ruby on Rails (wollte ich eigentlich zuerst lernen, aber mir wurde der Tipp gegeben, erst einmal Python zu erlernen, danach dann Ruby. Kennt man eine Programmiersprache - so der Rat - ist es einfacher, auch andere zu lernen).