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
Der Standardbenutzer heisst postgres
. Damit könnten Sie bereits einzelne DQL-Statements ausführen.
Für die lokale Entwicklung erlauben wir den Zugriff ohne Passwort, indem wir die Datei pg_hba.conf
entsprechend anpassen.
psql -U postgres -c "SHOW hba_file;"
Ändern Sie in der Datei pg_hba.conf
folgende Zeilen.
Old: `host all all 127.0.0.1/32 <color #ed1c24>scram-sha-256</color>` New: `host all all 127.0.0.1/32 <color #22b14c>trust</color>` Old: `host all all ::1/128 scram-sha-256` New: `host all all ::1/128 trust`
C:/PetersPrograms/PostgreSQL/17/data/pg_hba.conf
Dank der Konfiguration in der Datei pg_hba.conf
sollte der Zugriff auf postgres
lokal kein Password erfordern.
psql -U postgres -c "SELECT * FROM pg_catalog.pg_user;"
Erstellen Sie einen Benutzer mit einem Namen und Passwort Ihrer Wahl.
psql -U postgres -c "CREATE USER localuser WITH PASSWORD 'secret' 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;"