# Verschiedene Datenbanken - Was sollte ich lernen?



## Kenta1561 (12. Jul 2016)

Hallo,

ich interessiere mich derzeit neben Java auch ein wenig für Datenbanken und plane in der Zukunft so etwas zu lernen.
Ich habe schon bei den Tags hier im Forum "Datenbankprogrammierung" gesehen, dass es verschiedene "Datenbanken" (kann man das so sagen?) gibt und ich kenne mich da natürlich nicht gut aus, mein Wissensstand ist einfach nur, dass ich mal was von SQL, MySQL und solchen Wörtern was gehört habe.
Nun ist meine Frage, welchen "Datenbanktyp"? ich lernen sollte, wenn man folgende Aspekte betrachtet:
- Zukunft des "Datenbanktyps"
- Vorteile
- Nachteile
- Popularität
- Anwendung in Jobs

Oder kann man diese Frage nur sehr schwer beantworten? Ich würde gerne mal wissen, was ihr dazu sagt und ganz wichtig, bitte keine Fachwörter, ich kenne mich da fast gar nicht aus 
Danke 

LG
Kenta1561


----------



## kiwara (12. Jul 2016)

Es gibt verschiedene Arten von Datenbankmanagementsystemen(umgangssprachlich Datenbanken). Häufig werden relationale Datenbanken verwenden, wie MySQL, Oracle, die Microsoft Variante, etc.

Wenn du erstmal beginnst SQL zu lernen, und mit MySQL ist das erstmal ein guter Anfang, verstehst du relationale Datenbanken ganz schnell.

Wenn man erstmal fest darin ist, kann man sich dann mit NoSQL-Datenbanken beschäftigen, wobei es auch dort mehrere Arten gibt.

Wenn es darum geht, Daten zu speichern, wird am häufigsten auf Datenbanken zurückgegriffen, was bedeutet, dass es (aus meiner Sicht) ein MUSS ist, zumindest SQL zu können.


----------



## mrBrown (12. Jul 2016)

"Seven Databases in Seven Weeks" ist da als Buch ganz empfehlenswert


----------



## Thallius (12. Jul 2016)

Ich kann Dir nur empfehlen Dich richtig einzulesen. Sonst wirst du da niemals richtig machen. Gerade am Anfang ist es wichtig, dass man erstmal die Normalisierung kapiert hat und seine Tabellen enstsprechend designed. Hier gibt es im Internet leider viel zu viel Mist.

Ich kann Dir dazu das mySQL Handbuch von Kröll empfehlen. Hier wird sehr gut erklärt wie man eine Datenbank aufsetzt, wie man die Tabellen richtig erstellt und wie man die Datenbank dann eben auch managed. Ist halt aber ziemlich trockener Stoff.

Gruß

Claus


----------



## Kenta1561 (12. Jul 2016)

@kiwara 



kiwara hat gesagt.:


> Wenn du erstmal beginnst SQL zu lernen, und mit MySQL ist das erstmal ein guter Anfang, verstehst du relationale Datenbanken ganz schnell.



Meinst du damit:
- erst SQL, dann MySQL
oder
- direkt MySQL

Oder ist das eine dumme Frage weil vielleicht SQL und MySQL das Gleiche ist?  Wie gesagt, ich kenne mich gar nicht aus 

LG
Kenta1561


----------



## thet1983 (12. Jul 2016)

Wie @Thallius schon gesagt hat und ich hab's auch so gemacht beginne mit MySQL.
Lese dich gut in die Normalisierung ein das ist sehr wichtig , ich selbst wollte es nicht wahr haben..nur wenn du größere Projekte schreibst dann wird dir das nicht erspart bleiben...


----------



## Tobse (12. Jul 2016)

Kenta1561 hat gesagt.:


> Oder ist das eine dumme Frage weil vielleicht SQL und MySQL das Gleiche ist?


 Es gibt nur dumme Antworten  wie diese hier: google das doch :O
Ich geb dir trotzdem die Antwort: SQL ist eine standardisierte Sprache für relationale Datenbanken (RDMBS). Datenbanken müssen mit ihrem jeweiligen "Dialekt" von SQL programmiert werden. MySQL, MariaDB und Amazon Aurora werden mit dem selben Dialekt programmiert. OracleDB, PostreSQL, H2DB, SQLite u.s.w. haben alle ihre eigenen Dialekte mit mehr oder weniger Features als SQL spezifiziert...


----------



## Kenta1561 (12. Jul 2016)

@Tobse
Also wenn ich das jetzt richtig verstanden habe: Mit SQL kann man MySQL programmieren?
Und was heißt relational?
Noch eine zusätzliche Frage: Ist Microsoft SQL das Gleiche wie SQL oder auch ein "Dialekt"?

LG
Kenta1561


----------



## Tobse (12. Jul 2016)

Kenta1561 hat gesagt.:


> Mit SQL kann man MySQL programmieren?


Nein. MySQL Datenbanken muss man mit dem MySQL Dialekt programmieren. MySQL hat alle wichtigen Features und ist sehr nahe am puren SQL-Standard dran, weshalb er sich gut zum Lernen eignet.




Kenta1561 hat gesagt.:


> Und was heißt relational?


Relational ist eine Art Datenbanksystem, wie @kiware schon sagte. Es gibt relationale- , graphen- und Dokument-Datenbanken (uvm). Einfach mal googlen


----------



## VfL_Freak (13. Jul 2016)

Moin,

ja, das mag etwas verwirrend sein ... vielleicht wird es so klarer:

_*MySQL*_ ist ein sog. Datenbankmanagementsystem, quasi die Datenbank selbst (https://de.wikipedia.org/wiki/MySQL). Es gibt aber, wie oben schoin erwähnt wurde, auch zig andere Produkte (Oracle, ...)

_*SQL*_ ist eine Sprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen (https://de.wikipedia.org/wiki/SQL)

Gruß Klaus


----------



## stg (13. Jul 2016)

Kenta1561 hat gesagt.:


> Und was heißt relational?



Das "relational" leitet sich von Relation ab. 
Eine Datenbank ist mehr als ein bloßer Speicher von Daten. Vielmehr entscheidend ist, dass du auf gesuchte Informationen "leicht" zugreifen kannst und die Daten konsistent sind. Hierfür gibt es, wie bereits gesagt wurde, einige grundverschiedene Ansätze. 
Bei relationalen Datenbank kannst du Daten über Relationen mit einander in Verbindung bringen. Du hast zum Beispiel eine Liste (Tabelle) mit Personen und eine Liste mit Wohnorten. Willst du nun etwa den Wohnort einer bestimmten Person auslesen, so musst du (nur) aus allen denkbaren Paaren von (Person, Wohnort) das richtige Wertepaar finden. Das ist im Grunde das, was eine _relationale _Datenbank ausmacht.

Vorbereitend für den Einstieg ist es nicht verkehrt sich zunächst mir relationaler Algebra zu befassen - jedenfalls die Grundlagen. Dann versteht man auch, was man da in SQL für wirres Zeug schreibt.

Ob du für den Einstieg MySQL, PostGreSQL, Oracle DB oder sonst was nimmst, ist eigentlich nahezu egal. 



Tobse hat gesagt.:


> Relational ist eine Art Datenbanksystem, wie @kiware schon sagte. Es gibt relationale- , graphen- und Dokument-Datenbanken (uvm).


Ergänzend hierzu: 
Das eine schließt das andere übrigens nicht aus. Es gibt auch viele "Mischformen".


----------



## Meniskusschaden (13. Jul 2016)

Ich finde, gerade beim Thema SQL gibt es zumindest bei den Grundlagen eine erstaunlich große Übereinstimmung zwischen dem, was richtig ist und dem, was einem der gesunde Menschenverstand sagt. Deshalb würde ich nur kurz nachlesen, was eine relationale Datenbank und was Normalisierung ist. Damit weiß man bereits das Wesentliche. Dann würde ich mir ein Datenbanksystem installieren (da finde ich z.B. MySQL gut, weil es eine komfortable Workbench gibt) und in die Praxis einsteigen, indem ich eine kleine Datenbank aufbaue. Dann hat man eine Übungsumgebung, um zunächst ein wenig mit SQL-Befehlen herum zu spielen. Danach kann man sich einerseits etwas mit theoretischen Grundlagen beschäftigen und andererseits die vorhandenen Java-Kenntnisse nutzen, um auf die DB zuzugreifen. Für beides hat man dann von Beginn an ein Übungssystem zur Verfügung, so dass man alles ausprobieren kann.


----------

