Frage von DIGGER6, 61

Wie funktioniert die Nutzung einer Datenbank?

Hallo um Daten aus Programmen abzuspeichern um sie ggf nach neustart des PCs wieder zur Verfügung zu haben gibt es doch Datenbanken. Nach einiger Recherche bin ich auf SQLite(einfach und langsamer) und MySQL(komplexer und schneller) gestossen und frage mich wie das funktioioniert mit der Verbindung zwischen einem geschriebenen Programm und einer Datenbank. Ist es so das die Datenbank wie ein eigenes Programm geöffnet ist und dann die Daten von aussen empfängt und zu Verfügung stellt oder wird die Datenbank direkt durch die Programme die darauf zugreifen aktiviert...? Wie kann man sich das vorstellen?

Antwort
von Alextoexplain, 31

Hello there,

Datenbanken sind ein Konzept zur strukturierten Speicherung und Abfrage von Daten.

Viele Programme oder auch Webanwendungen benötigen einen Ort, an dem Daten abgelegt werden können, wie du erkannt hast. Ursprünglich waren das eigentlich einfach Dateien mit Text. Das macht man heutzutage so aber nicht mehr, es gibt Datenbanken.

Die Datenbank SQLite ist dateibasiert. Die gesamte Datenbankengine ist eine einzige ausführbare Datei und das wars. Die einzelnen Datenbanken sind auch eine einzelne Datei. Fertig. Viele Programme, die portabel und schnell sein sollen, nutzen dieses einfache, schnelle und leichtfüßige Konzept, um Programmdaten zu speichern. Auch SEHR!!!!!!!! viele Androidapps haben im Hintergrund noch ne kleine SQLLite Datenbank hinten dran stehen, etwa Whatsapp oder auch die normale Kontakteapp.

MySQL ist eine komplexere Anwendung, sie ist ein eigenständiger "Server". Dies kann tatsächlich ein richtiger Server sein auf dem das läuft, oder es ist einfach ein Dienst oder ein laufender Prozess auf einem normalen Computer.

Es ist ein Programm, das aus vielen Dateien besteht. Auch die Datenbanken mit ihren Tabellen werden nicht mehr in einer Datei abgebildet, sondern aufgeteilt (etwa 3 Dateien pro Tabelle bei MyISAM). Als Serveranwendung hat MySQL den Vorteil, dass auch große Datenmengen besser zu verwalten sind und man kann die Datenbank einfach über das Netzwerk zur Verfügung stellen.

Nein die Datenbank wird nicht "aktiviert". MySQL ist ein permanent aktiver Dienst und mit dem Netzwerkport 3306 verknüpft. MySQL lauscht ständig, ob auf diesem Port Anfragen herein kommen und wertet diese aus, da der MySQL-Dienst in der Regel angesprochen wird, wenn Port 3306 adressiert wird. Hier können dann von Programmen oder auch Skripten, etwa PHP-basierten Webseiten SQL-Befehle geschickt werden. Diese werden auf dem Datenbankserver ausgeführt und der Server schickt eine Ergebnismenge oder eben einen Fehler an das anfragende Programm oder Skript, welches die abgefragten Daten dann weiter verarbeitet.

Das soll erstmal genügen.
Hoffe ich konnte dir helfen.
MfG
Alex

Antwort
von johdl, 61

Das kommt voll und ganz auf den Datenbank-Typ an. SQLite wird meist über nur lokal ausgeführt. Programme, die diese verwenden, greifen direkt mit Hilfe eines kleinen Unterprogramms darauf zu.

MySQL ist da ein wenig komplizierter. MySQL ist ein sogenanntes Datenbank-Management-System, d.h. es managet die Datenbank und den Zugriff darauf. Vom Programm wird über ein spezielles Protokoll durch eine Netzwerk-Schnittstelle auf das MySQL zugegriffen und MySQL gibt dann die angeforderten Daten aus der Datenbank zurück.

Kommentar von DIGGER6 ,

Das mit der Netzwerkschnittstelle, bedeutet das, dass MySQL dann eher für Programme die Internet oder Netzwerke nutzen geeignet ist?

Kommentar von johdl ,

Nicht unbedingt. Der große Vorteil an MySQL ist, dass du nicht für jede Applikation den vollen Datenbank-Adapter wie bei SQLite laden musst. Außerdem kannst du mit mehreren Prozessen auf die Datenbank zugreifen ohne um die Datenintegrität in Sorge zu sein.

Und MySQL ist halt auch einfach noch performanter als SQLite.

Keine passende Antwort gefunden?

Fragen Sie die Community