Dies ist eine alte Version des Dokuments!
LU01d - DB
Damit wir im späteren Verlauf des Semesters Objekte persistieren können, benötigen wir eine Datenbank.
Folgende Datenbankmanagementsysteme (DBMS), beziehungsweise Database Engines sind in der Software-Entwicklung gebräuchlich:
- MySQL – weit verbreitetes Open-Source-DBMS, häufig für Webanwendungen im Einsatz. https://www.mysql.com/
- PostgreSQL – objektrelationales Open-Source-DBMS mit starkem Fokus auf Standards und Erweiterbarkeit. https://www.postgresql.org/
- Oracle Database – kommerzielles, leistungsfähiges Enterprise-DBMS mit umfassenden Features für große Unternehmen. https://www.oracle.com/database/
- Microsoft SQL Server – relationales DBMS von Microsoft, oft in Kombination mit dem .NET-Ökosystem genutzt. https://www.microsoft.com/en-us/sql-server
- SQLite – leichtgewichtiges, dateibasiertes DBMS, das häufig in mobilen Apps und Embedded-Systemen verwendet wird. https://sqlite.org/
- H2 – schlankes, Java-basiertes In-Memory-DBMS, oft in Testszenarien und kleineren Projekten eingesetzt. https://www.h2database.com/html/main.html
- MongoDB – dokumentenorientiertes NoSQL-DBMS, das JSON-ähnliche Datenstrukturen speichert und hohe Flexibilität bietet. https://www.mongodb.com/
In diesem Modul werden wir PostgreSQL einsetzen. Laden Sie dazu die Version 17 herunter und installieren Sie diese.
Die Installation kann mit folgendem Befehl überprüft werden.
psql --version
Falls psql
nicht als Befehl gefunden wird, überprüfen Sie, ob der Ordner bin
der PostgreSQL-Installation der Umgebungsvariable path
hinzugefügt ist.
Der Standardbenutzer heisst postgres
. Damit könnten Sie bereits einzelne DQL-Statements ausführen.
Für die lokale Entwicklung erlauben wir den lokalen Zugriff ohne Passwort, indem wir die Datei pg_hba.conf
entsprechend anpassen.
psql -U postgres -c "SHOW hba_file;"
Nur für lokale Entwicklung, niemals für produktive Datenbanken!
Ändern Sie in der Datei pg_hba.conf
folgende Zeilen.
Old: `host all all 127.0.0.1/32 scram-sha-256` New: `host all all 127.0.0.1/32 trust` Old: `host all all ::1/128 scram-sha-256` New: `host all all ::1/128 trust`
Damit die Änderung wirksam wird, muss der Datenbankserver mit Admin-Rechten neu gestartet werden.
net stop postgresql-x64-17 && net start postgresql-x64-17
Zeigen Sie die aktuellen Benutzer an.
psql -U postgres -c "SELECT * FROM pg_catalog.pg_user;"
Erstellen Sie einen neuen Benutzer mit einem Namen und Passwort Ihrer Wahl.
psql -U postgres -c "CREATE USER localuser WITH LOGIN;"
Dieser Benutzer sollte nun aufgelistet sein.
psql -U postgres -c "SELECT * FROM pg_catalog.pg_user;"
Sie können nun eine Datenbank anlegen und anstatt postgres
Ihren eigenen Benutzer als Besitzer definieren. Damit trennen Sie die Serveradministration von der Datenbankadministration.
psql -U postgres -c "CREATE DATABASE localdb OWNER localuser;"
Diese Datenbank ist nun bereit und kann aus einem Backend aufgerufen werden.