Wie greift ein Web-Server auf die PostgreSQL Datenbank zu?

3 Antworten

Bei deinem Kenntnisstand wirds noch ne Weile dauern, bis du ne große Webapp gebaut hast und diese auch viel Traffic verkraftet.

Zu einem PostgreSQL-Server verbindet man sich über Port 5432. Die genauen Details musst du als Entwickler selten wissen, weil die Sprache oder das Framework das du in der Entwicklung nutzt entweder schon Befehle für das Verbinden mit der Datenbank bereit hält, oder es gibt zumindest eine Library mit der das geht.

Und wenn ich entwickle und mehrere Datenbanken auf meinem PC in meine Node.js Web App eingebunden habe, muss ich die Datenbanken dann nochmal bei entwickeln, wenn ich sie auf einen Server packe?

Also diese Frage ist sehr ungünstig formuliert. Du musst die Datenbank nicht "nochmal entwickeln". Aber du musst natürlich, wenn die Webapplikation Live gehen soll diese Datenbanken und nötige Inhalte auch auf dem Live Datenbankserver anlegen. Schließlich verwendest du dann für deine produktive Seite ja nicht mehr deine Entwicklungsdatenbank

Woher ich das weiß:Berufserfahrung – Berufserfahrung
malbuchta 
Fragesteller
 22.11.2021, 10:45

Ja, ich weiß, ich bin auch gerade in der Lern-Phase. Das war eher langfristig gedacht, sodass ich später ein Wissen über professionelle Abläufe habe :)

0

Der Webserver selbst greift überhaupt nicht auf die Datenbank zu. (Es seid denn Du benutzt die Datenbank zur Authentifizierung auth_DBD o.ä.)

Die Datenbankzugriffe muss Deine Programmierung machen.

Für node.js gibt es diese Module: https://node-postgres.com/
Alles Weitere, wie man es installiert und benutzt ist dort erklärt.

Wenn Du phpPgAdmin nutzen willst, installierst Du am Besten Apache als Webserver und ein PHP dazu. Wie genau alles installiert werden muss, ist stark von der Plattform abhängig. Besonders leicht ist es sicher mit Linux-Systemen, die ein ausgeklügeltes Package-Management und eine grosse Anzahl verfügbarer Packages haben. Bei Debian z.B. reichen ein paar apt-get install Befehle, und Du hast dann einen grundsätzlich funktionierenden Webserver mit PHP und phpPgAdmin (natürlich sollte man die Konfiguration dann noch etwas anpassen).

Die Funktionsweise ist die, dass z.B. in PHP oder node.js geschriebene Programme auf dem Webserver in Abhängigkeit der Seitenaufrufe ausgeführt werden. Wenn irgendwo etwas in der DB abgefragt werden soll, geht das über ein entsprechendes PostgreSQL-Modul/ Extension der jeweiligen Sprache.

Die Kommunikation zwischen dem Interpreter und dem DB-System geschieht meistens über Sockets, kann aber auch anders implementiert sein.

Für eine node.js Applikation, die in JavaScript geschrieben ist, würde ich eher eine DB wie mongodb oder redis empfehlen, da deren Objektmodell besser zur Sprache passt als eine klassische relationale DB wie MySQL oder PostgreSQL.

malbuchta 
Fragesteller
 22.11.2021, 10:47

Aber ich habe gehört, dass die kostenlosen Datenbanken von MongoDB nicht verschlüsselt und sicher sind, stimmt das?

0
davegarten  22.11.2021, 10:50
@malbuchta

Eine PostgreSQL-DB ist aber auf der Festplatte auch nicht verschlüsselt. Falls Du vielleicht gemeint hast, dass die *Verbindung* zur DB nicht verschlüsselbar ist bei MongoDB, dann wäre das ein Irrtum. MongoDB hat hier wie die meisten anderen DB's SSL/TLS connection encryption Support. Das passiert natürlich nicht out-of-the-box, sondern Du musst es konfigurieren und Du brauchst entspr. ein SSL-Zertifikat und den privaten Schlüssel.

0
TheQ86  22.11.2021, 10:48

Wobei man die Entscheidung des Datenbanktyps der Struktur der verwalteten Daten zugrunde legen sollte, nicht der verwendeten Sprache.

0