diff --git a/20231109/dbms-01.txt b/20231109/dbms-01.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ff4a2a9bf18785de10ae274452a27b7dd017a2de
--- /dev/null
+++ b/20231109/dbms-01.txt
@@ -0,0 +1,164 @@
+root@cassini:~# su - postgres
+postgres@cassini:~$ psql
+psql (15.3 (Debian 15.3-0+deb12u1))
+Geben Sie »help« für Hilfe ein.
+
+postgres=# help
+Dies ist psql, die Kommandozeilenschnittstelle für PostgreSQL.
+Geben Sie ein:  \copyright für Urheberrechtsinformationen
+                \h für Hilfe über SQL-Anweisungen
+                \? für Hilfe über interne Anweisungen
+                \g oder Semikolon, um eine Anfrage auszuführen
+                \q um zu beenden
+postgres=# \?
+Allgemein
+  \copyright             PostgreSQL-Urheberrechtsinformationen zeigen
+  \crosstabview [SPALTEN] Anfrage ausführen und Ergebnis als Kreuztabelle
+                          anzeigen
+  \errverbose            letzte Fehlermeldung mit vollen Details anzeigen
+  \g [(OPT)] [DATEI]     SQL-Anweisung ausführen (und Ergebnis in Datei oder
+                         |Pipe schreiben); \g ohne Argumente entspricht Semikolon
+  \gdesc                 Ergebnis der Anfrage beschreiben ohne sie auszuführen
+  \gexec                 Anfrage ausführen, dann jeden Ergebniswert als
+                         Anweisung ausführen
+  \gset [PREFIX]         SQL-Anweisung ausführen und Ergebnis in psql-Variablen
+                         ablegen
+  \gx [(OPT)] [DATEI]    wie \g, aber mit erweitertem Ausgabemodus
+  \q                     psql beenden
+  \watch [SEK]           Anfrage alle SEK Sekunden ausführen
+
+Hilfe
+  \? [commands]          Hilfe über Backslash-Befehle anzeigen
+  \? options             Hilfe über psql-Kommandozeilenoptionen anzeigen
+  \? variables           Hilfe über besondere Variablen anzeigen
+  \h [NAME]              Syntaxhilfe über SQL-Anweisung, * für alle Anweisungen
+
+Anfragepuffer
+  \e [DATEI] [ZEILE]     Anfragepuffer (oder Datei) mit externem Editor bearbeiten
+  \ef [FUNKNAME [ZEILE]] Funktionsdefinition mit externem Editor bearbeiten
+  \ev [SICHTNAME [ZEILE]] Sichtdefinition mit externem Editor bearbeiten
+  \p                     aktuellen Inhalt der Anfragepuffers zeigen
+  \r                     Anfragepuffer löschen
+  \s [DATEI]             Befehlsgeschichte ausgeben oder in Datei schreiben
+  \w DATEI               Anfragepuffer in Datei schreiben
+
+Eingabe/Ausgabe
+  \copy ...              SQL COPY mit Datenstrom auf Client-Host ausführen
+  \echo [-n] [TEXT]      Text auf Standardausgabe schreiben (-n für ohne Newline)
+  \i DATEI               Befehle aus Datei ausführen
+  \ir DATEI              wie \i, aber relativ zum Ort des aktuellen Skripts
+  \o [DATEI]             alle Anfrageergebnisse in Datei oder |Pipe schreiben
+  \qecho [-n] [TEXT]     Text auf Ausgabestrom für \o schreiben (-n für ohne
+                         Newline)
+  \warn [-n] [TEXT]      Text auf Standardfehlerausgabe schreiben (-n für ohne
+                         Newline)
+
+Bedingte Anweisungen
+  \if AUSDRUCK           Beginn einer bedingten Anweisung
+  \elif AUSDRUCK         Alternative in aktueller bedingter Anweisung
+  \else                  letzte Alternative in aktueller bedingter Anweisung
+  \endif                 Ende einer bedingten Anweisung
+
+Informationen
+  (Optionen: S = Systemobjekte zeigen, + = zusätzliche Details zeigen)
+  \d[S+]                 Tabellen, Sichten und Sequenzen auflisten
+  \d[S+]  NAME           Tabelle, Sicht, Sequenz oder Index beschreiben
+  \da[S]  [MUSTER]       Aggregatfunktionen auflisten
+  \dA[+]  [MUSTER]       Zugriffsmethoden auflisten
+  \dAc[+] [AMMUST [TYPMUST]]   Operatorklassen auflisten
+  \dAf[+] [AMMUST [TYPMUST]]   Operatorfamilien auflisten
+  \dAo[+] [AMMUST [OPFMUST]]   Operatoren in Operatorfamilien auflisten
+  \dAp[+] [AMMUST [OPFMUST]]   Unterst.funktionen in Operatorfamilien auflisten
+  \db[+]  [MUSTER]       Tablespaces auflisten
+  \dc[S+] [MUSTER]       Konversionen auflisten
+  \dconfig[+] [MUSTER]   Konfigurationsparameter auflisten
+  \dC[+]  [MUSTER]       Typumwandlungen (Casts) auflisten
+  \dd[S]  [MUSTER]       Objektbeschreibungen zeigen, die nirgendwo anders
+                         erscheinen
+  \dD[S+] [MUSTER]       Domänen auflisten
+  \ddp    [MUSTER]       Vorgabeprivilegien auflisten
+  \dE[S+] [MUSTER]       Fremdtabellen auflisten
+  \des[+] [MUSTER]       Fremdserver auflisten
+  \det[+] [MUSTER]       Fremdtabellen auflisten
+  \deu[+] [MUSTER]       Benutzerabbildungen auflisten
+  \dew[+] [MUSTER]       Fremddaten-Wrapper auflisten
+  \df[anptw][S+] [FUNKMUSTR [TYPMUSTR ...]]
+                         Funktionen [nur Agg/normale/Proz/Trigger/Fenster] auflisten
+  \dF[+]  [MUSTER]       Textsuchekonfigurationen auflisten
+  \dFd[+] [MUSTER]       Textsuchewörterbücher auflisten
+  \dFp[+] [MUSTER]       Textsucheparser auflisten
+  \dFt[+] [MUSTER]       Textsuchevorlagen auflisten
+  \dg[S+] [MUSTER]       Rollen auflisten
+  \di[S+] [MUSTER]       Indexe auflisten
+  \dl[+]                 Large Objects auflisten, wie \lo_list
+  \dL[S+] [MUSTER]       prozedurale Sprachen auflisten
+  \dm[S+] [MUSTER]       materialisierte Sichten auflisten
+  \dn[S+] [MUSTER]       Schemas auflisten
+  \do[S+] [OPMUST [TYPMUST [TYPMUST]]]
+                         Operatoren auflisten
+  \dO[S+] [MUSTER]       Sortierfolgen auflisten
+  \dp     [MUSTER]       Zugriffsprivilegien für Tabellen, Sichten und
+                         Sequenzen auflisten
+  \dP[itn+] [MUSTER]     partitionierte Relationen [nur Indexe/Tabellen]
+                         auflisten [n=geschachtelt]
+  \drds [ROLLMUST [DBMUST]] datenbankspezifische Rolleneinstellungen auflisten
+  \dRp[+] [MUSTER]       Replikationspublikationen auflisten
+  \dRs[+] [MUSTER]       Replikationssubskriptionen auflisten
+  \ds[S+] [MUSTER]       Sequenzen auflisten
+  \dt[S+] [MUSTER]       Tabellen auflisten
+  \dT[S+] [MUSTER]       Datentypen auflisten
+  \du[S+] [MUSTER]       Rollen auflisten
+  \dv[S+] [MUSTER]       Sichten auflisten
+  \dx[+]  [MUSTER]       Erweiterungen auflisten
+  \dX     [MUSTER]       erweiterte Statistiken auflisten
+  \dy[+]  [MUSTER]       Ereignistrigger auflisten
+  \l[+]   [MUSTER]       Datenbanken auflisten
+  \sf[+]  FUNKNAME       Funktionsdefinition zeigen
+  \sv[+]  SICHTNAME      Sichtdefinition zeigen
+  \z      [MUSTER]       äquivalent zu \dp
+
+Large Objects
+  \lo_export LOBOID DATEI
+                         Large Object in Datei schreiben
+  \lo_import DATEI [KOMMENTAR]
+                         Large Object aus Datei lesen
+  \lo_list[+]            Large Objects auflisten
+  \lo_unlink LOBOID      Large Object löschen
+
+Formatierung
+  \a                     zwischen unausgerichtetem und ausgerichtetem Ausgabemodus
+                         umschalten
+  \C [TEXT]              Tabellentitel setzen oder löschen
+  \f [ZEICHEN]           Feldtrennzeichen zeigen oder setzen
+  \H                     HTML-Ausgabemodus umschalten (gegenwärtig aus)
+  \pset [NAME [WERT]]    Tabellenausgabeoption setzen
+                         (border|columns|csv_fieldsep|expanded|fieldsep|
+                         fieldsep_zero|footer|format|linestyle|null|
+                         numericlocale|pager|pager_min_lines|recordsep|
+                         recordsep_zero|tableattr|title|tuples_only|
+                         unicode_border_linestyle|unicode_column_linestyle|
+                         unicode_header_linestyle)
+  \t [on|off]            nur Datenzeilen zeigen (gegenwärtig aus)
+  \T [TEXT]              HTML <table>-Tag-Attribute setzen oder löschen
+  \x [on|off|auto]       erweiterte Ausgabe umschalten (gegenwärtig aus)
+
+Verbindung
+  \c[onnect] {[DBNAME|- BENUTZER|- HOST|- PORT|-] | conninfo}
+                         mit neuer Datenbank verbinden (aktuell »postgres«)
+  \conninfo              Informationen über aktuelle Verbindung anzeigen
+  \encoding [KODIERUNG]  Client-Kodierung zeigen oder setzen
+  \password [BENUTZERNAME]
+                         sicheres Ändern eines Benutzerpasswortes
+
+Betriebssystem
+  \cd [VERZ]             Arbeitsverzeichnis wechseln
+  \getenv PSQLVAR ENVVAR Umgebungsvariable auslesen
+  \setenv NAME [WERT]    Umgebungsvariable setzen oder löschen
+  \timing [on|off]       Zeitmessung umschalten (gegenwärtig aus)
+  \! [BEFEHL]            Befehl in Shell ausführen oder interaktive Shell starten
+
+Variablen
+  \prompt [TEXT] NAME    interne Variable vom Benutzer abfragen
+  \set [NAME [WERT]]     interne Variable setzen, oder alle anzeigen
+  \unset NAME            interne Variable löschen
+postgres=#
diff --git a/20231109/dbms-02.txt b/20231109/dbms-02.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64f598a6f2404419c05f7169ae81631befc57561
--- /dev/null
+++ b/20231109/dbms-02.txt
@@ -0,0 +1,19 @@
+postgres=# \l
+                                                 Liste der Datenbanken
+   Name    | Eigentümer | Kodierung | Sortierfolge | Zeichentyp  | ICU-Locale | Locale-Provider |  Zugriffsprivilegien
+-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
+ postgres  | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            |
+ template0 | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            | =c/postgres          +
+           |            |           |              |             |            |                 | postgres=CTc/postgres
+ template1 | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            | =c/postgres          +
+           |            |           |              |             |            |                 | postgres=CTc/postgres
+(3 Zeilen)
+
+postgres=# create database testdb;
+CREATE DATABASE
+postgres=# create user dbs with password '####';
+CREATE ROLE
+postgres=# GRANT ALL ON DATABASE testdb TO dbs;
+GRANT
+postgres=# \q
+postgres@cassini:~$
diff --git a/20231109/dbms-03.txt b/20231109/dbms-03.txt
new file mode 100644
index 0000000000000000000000000000000000000000..48161738ea684e020b22c957aae87a37f6592d5c
--- /dev/null
+++ b/20231109/dbms-03.txt
@@ -0,0 +1,80 @@
+cassini/home/peter/bo/2023ws/dbs> psql --help
+psql ist das interaktive PostgreSQL-Terminal.
+
+Aufruf:
+  psql [OPTION]... [DBNAME [BENUTZERNAME]]
+
+Allgemeine Optionen:
+  -c, --command=ANWEISUNG  einzelne Anweisung ausführen und beenden
+  -d, --dbname=DBNAME      Datenbank, zu der verbunden werden soll
+                           (Standard: »peter«)
+  -f, --file=DATEINAME     Anweisungen aus Datei ausführen und danach beenden
+  -l, --list               verfügbare Datenbanken auflisten und beenden
+  -v, --set=, --variable=NAME=WERT
+                           psql-Variable NAME auf WERT setzen
+                           (z.B. -v ON_ERROR_STOP=1)
+  -V, --version            Versionsinformationen anzeigen, dann beenden
+  -X, --no-psqlrc          Startdatei (~/.psqlrc) nicht lesen
+  -1 (»eins«), --single-transaction
+                           als eine einzige Transaktion ausführen (wenn nicht
+                           interaktiv)
+  -?, --help[=options]     diese Hilfe anzeigen, dann beenden
+      --help=commands      Backslash-Befehle auflisten, dann beenden
+      --help=variables     besondere Variablen auflisten, dann beenden
+
+Eingabe- und Ausgabeoptionen:
+  -a, --echo-all           Skript-Inhalt wiedergeben
+  -b, --echo-errors        fehlgeschlagene Anweisungen wiedergeben
+  -e, --echo-queries       an den Server geschickte Anweisungen zeigen
+  -E, --echo-hidden        von internen Anweisungen erzeugte Anfragen zeigen
+  -L, --log-file=DATEINAME
+                           Sitzungslog in Datei senden
+  -n, --no-readline        erweiterte Zeilenbearbeitung (Readline) ausschalten
+  -o, --output=DATEINAME   Anfrageergebnisse in Datei (oder |Pipe) senden
+  -q, --quiet              stille Ausführung (keine Mitteilungen, nur
+                           Anfrageergebnisse)
+  -s, --single-step        Einzelschrittmodus (jede Anfrage bestätigen)
+  -S, --single-line        Einzelzeilenmodus (Zeilenende beendet SQL-Anweisung)
+
+Ausgabeformatoptionen:
+  -A, --no-align           unausgerichteter Tabellenausgabemodus
+      --csv                Tabellenausgabemodus CSV (Comma-Separated Values)
+  -F, --field-separator=ZEICHEN
+                           Feldtrennzeichen für unausgerichteten Ausgabemodus
+                           (Standard: »|«)
+  -H, --html               HTML-Tabellenausgabemodus
+  -P, --pset=VAR[=ARG]     Ausgabeoption VAR auf ARG setzen (siehe
+                           \pset-Anweisung)
+  -R, --record-separator=ZEICHEN
+                           Satztrennzeichen für unausgerichteten Ausgabemodus
+                           (Standard: Newline)
+  -t, --tuples-only        nur Datenzeilen ausgeben
+  -T, --table-attr=TEXT    HTML »table«-Tag-Attribute setzen (z.B. width, border)
+  -x, --expanded           erweiterte Tabellenausgabe einschalten
+  -z, --field-separator-zero
+                           Feldtrennzeichen für unausgerichteten Ausgabemodus auf
+                           Null-Byte setzen
+  -0, --record-separator-zero
+                           Satztrennzeichen für unausgerichteten Ausgabemodus auf
+                           Null-Byte setzen
+
+Verbindungsoptionen:
+  -h, --host=HOSTNAME      Hostname des Datenbankservers oder
+                           Socket-Verzeichnis (Standard: »/var/run/postgresql«)
+  -p, --port=PORT          Port des Datenbankservers (Standard: »5432«)
+  -U, --username=NAME      Datenbank-Benutzername (Standard: »peter«)
+  -w, --no-password        niemals nach Passwort fragen
+  -W, --password           nach Passwort fragen (sollte automatisch geschehen)
+
+Für mehr Informationen, geben Sie »\?« (für interne Anweisungen) oder
+»\help« (für SQL-Anweisungen) in psql ein oder schauen Sie in den psql-
+Abschnitt der PostgreSQL-Dokumentation.
+
+Berichten Sie Fehler an <pgsql-bugs@lists.postgresql.org>.
+PostgreSQL Homepage: <https://www.postgresql.org/>
+cassini/home/peter/bo/2023ws/dbs> psql testdb dbs
+psql: Fehler: Verbindung zum Server auf Socket »/var/run/postgresql/.s.PGSQL.5432« fehlgeschlagen: FATAL:  Peer-Authentifizierung für Benutzer »dbs« fehlgeschlagen
+cassini/home/peter/bo/2023ws/dbs> psql --password testdb dbs
+Passwort:
+psql: Fehler: Verbindung zum Server auf Socket »/var/run/postgresql/.s.PGSQL.5432« fehlgeschlagen: FATAL:  Peer-Authentifizierung für Benutzer »dbs« fehlgeschlagen
+cassini/home/peter/bo/2023ws/dbs>
diff --git a/20231109/dbms-04.txt b/20231109/dbms-04.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4cce59ef1fa2321f1290f2216ab4d08545b54988
--- /dev/null
+++ b/20231109/dbms-04.txt
@@ -0,0 +1,19 @@
+root@cassini:~# su - postgres
+postgres@cassini:~$ psql
+psql (15.3 (Debian 15.3-0+deb12u1))
+Geben Sie »help« für Hilfe ein.
+
+postgres=# \c testdb
+Sie sind jetzt verbunden mit der Datenbank »testdb« als Benutzer »postgres«.
+testdb=# \d
+Keine Relationen gefunden
+testdb=# CREATE TABLE Tier ( Name CHARACTER (30), Tierart CHARACTER (30) );
+CREATE TABLE
+testdb=# \d
+         Liste der Relationen
+ Schema | Name |   Typ   | Eigentümer
+--------+------+---------+------------
+ public | tier | Tabelle | postgres
+(1 Zeile)
+
+testdb=#
diff --git a/20231109/dbms-05.txt b/20231109/dbms-05.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cd27a98ffcb5b722ea79ae4ea963b8c1f3fb428f
--- /dev/null
+++ b/20231109/dbms-05.txt
@@ -0,0 +1,19 @@
+testdb=# \d
+         Liste der Relationen
+ Schema | Name |   Typ   | Eigentümer
+--------+------+---------+------------
+ public | tier | Tabelle | postgres
+(1 Zeile)
+
+testdb=# INSERT INTO tier VALUES ( 'Esmeralda', 'Spinne' );
+INSERT 0 1
+testdb=# INSERT INTO tier VALUES ( 'Timmy', 'Hund' );
+INSERT 0 1
+testdb=# SELECT * FROM tier;
+              name              |            tierart
+--------------------------------+--------------------------------
+ Esmeralda                      | Spinne
+ Timmy                          | Hund
+(2 Zeilen)
+
+testdb=#
diff --git a/20231109/dbms-06.txt b/20231109/dbms-06.txt
new file mode 100644
index 0000000000000000000000000000000000000000..03f76a7eed46ed39fc664815bcf5f6afcc644106
--- /dev/null
+++ b/20231109/dbms-06.txt
@@ -0,0 +1,13 @@
+cassini/home/peter/bo/2023ws/dbs/20231109> psql -U dbs -W testdb
+Passwort:
+psql: Fehler: Verbindung zum Server auf Socket »/var/run/postgresql/.s.PGSQL.5432« fehlgeschlagen: FATAL:  Peer-Authentifizierung für Benutzer »dbs« fehlgeschlagen
+cassini/home/peter/bo/2023ws/dbs/20231109> LANG=C psql -U dbs -W testdb
+Password:
+psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer-Authentifizierung für Benutzer »dbs« fehlgeschlagen
+cassini/home/peter/bo/2023ws/dbs/20231109> psql -h localhost -U dbs -W testdb
+Passwort:
+psql (15.3 (Debian 15.3-0+deb12u1))
+SSL-Verbindung (Protokoll: TLSv1.3, Verschlüsselungsmethode: TLS_AES_256_GCM_SHA384, Komprimierung: aus)
+Geben Sie »help« für Hilfe ein.
+
+testdb=>
diff --git a/20231109/dbms-07.txt b/20231109/dbms-07.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3c8ca7a7f1ec6e0bce9ea24f04bd97445e89980b
--- /dev/null
+++ b/20231109/dbms-07.txt
@@ -0,0 +1,88 @@
+postgres=# \l
+                                                 Liste der Datenbanken
+   Name    | Eigentümer | Kodierung | Sortierfolge | Zeichentyp  | ICU-Locale | Locale-Provider |  Zugriffsprivilegien
+-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
+ postgres  | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            |
+ template0 | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            | =c/postgres          +
+           |            |           |              |             |            |                 | postgres=CTc/postgres
+ template1 | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            | =c/postgres          +
+           |            |           |              |             |            |                 | postgres=CTc/postgres
+ testdb    | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |            | libc            | =Tc/postgres         +
+           |            |           |              |             |            |                 | postgres=CTc/postgres+
+           |            |           |              |             |            |                 | dbs=CTc/postgres
+(4 Zeilen)
+
+postgres=# \c testdb
+Sie sind jetzt verbunden mit der Datenbank »testdb« als Benutzer »postgres«.
+testdb=# \d
+         Liste der Relationen
+ Schema | Name |   Typ   | Eigentümer
+--------+------+---------+------------
+ public | tier | Tabelle | postgres
+(1 Zeile)
+
+testdb=# SELECT * FROM tier;
+              name              |            tierart
+--------------------------------+--------------------------------
+ Esmeralda                      | Spinne
+ Timmy                          | Hund
+(2 Zeilen)
+
+testdb=# SELECT tie
+
+testdb=# SELECT tierart FROM tier;
+            tierart
+--------------------------------
+ Spinne
+ Hund
+(2 Zeilen)
+
+testdb=# SELECT name FROM tier;
+              name
+--------------------------------
+ Esmeralda
+ Timmy
+(2 Zeilen)
+
+testdb=# SELECT name FROM tier WHERE tierart = 'Spinne';
+              name
+--------------------------------
+ Esmeralda
+(1 Zeile)
+
+testdb=# SELECT tierart FROM tier WHERE name = 'Timmy';
+            tierart
+--------------------------------
+ Hund
+(1 Zeile)
+
+testdb=# SELECT tierart FROM tier WHERE name LIKE '%imm*';
+ tierart
+---------
+(0 Zeilen)
+
+testdb=# SELECT tierart FROM tier WHERE name LIKE '%imm%';
+            tierart
+--------------------------------
+ Hund
+(1 Zeile)
+
+testdb=# SELECT * FROM tier WHERE name LIKE '%imm%';
+              name              |            tierart
+--------------------------------+--------------------------------
+ Timmy                          | Hund
+(1 Zeile)
+
+testdb=# SELECT name, tierart FROM tier WHERE name LIKE '%imm%';
+              name              |            tierart
+--------------------------------+--------------------------------
+ Timmy                          | Hund
+(1 Zeile)
+
+testdb=# SELECT tierart, name FROM tier WHERE name LIKE '%imm%';
+            tierart             |              name
+--------------------------------+--------------------------------
+ Hund                           | Timmy
+(1 Zeile)
+
+testdb=#
diff --git a/20231109/dbms-08.txt b/20231109/dbms-08.txt
new file mode 100644
index 0000000000000000000000000000000000000000..576fb59f46bcbfaefbf777fedef51e3594dfbed1
--- /dev/null
+++ b/20231109/dbms-08.txt
@@ -0,0 +1,120 @@
+postgres=# \c testdb
+Sie sind jetzt verbunden mit der Datenbank »testdb« als Benutzer »postgres«.
+testdb=# \d
+         Liste der Relationen
+ Schema | Name |   Typ   | Eigentümer
+--------+------+---------+------------
+ public | tier | Tabelle | postgres
+(1 Zeile)
+
+testdb=# SELECT * FROM tier;
+              name              |            tierart
+--------------------------------+--------------------------------
+ Esmeralda                      | Spinne
+ Timmy                          | Hund
+(2 Zeilen)
+
+testdb=# SELECT tie
+
+testdb=# SELECT tierart FROM tier;
+            tierart
+--------------------------------
+ Spinne
+ Hund
+(2 Zeilen)
+
+testdb=# SELECT name FROM tier;
+              name
+--------------------------------
+ Esmeralda
+ Timmy
+(2 Zeilen)
+
+testdb=# SELECT name FROM tier WHERE tierart = 'Spinne';
+              name
+--------------------------------
+ Esmeralda
+(1 Zeile)
+
+testdb=# SELECT tierart FROM tier WHERE name = 'Timmy';
+            tierart
+--------------------------------
+ Hund
+(1 Zeile)
+
+testdb=# SELECT tierart FROM tier WHERE name LIKE '%imm*';
+ tierart
+---------
+(0 Zeilen)
+
+testdb=# SELECT tierart FROM tier WHERE name LIKE '%imm%';
+            tierart
+--------------------------------
+ Hund
+(1 Zeile)
+
+testdb=# SELECT * FROM tier WHERE name LIKE '%imm%';
+              name              |            tierart
+--------------------------------+--------------------------------
+ Timmy                          | Hund
+(1 Zeile)
+
+testdb=# SELECT name, tierart FROM tier WHERE name LIKE '%imm%';
+              name              |            tierart
+--------------------------------+--------------------------------
+ Timmy                          | Hund
+(1 Zeile)
+
+testdb=# SELECT tierart, name FROM tier WHERE name LIKE '%imm%';
+            tierart             |              name
+--------------------------------+--------------------------------
+ Hund                           | Timmy
+(1 Zeile)
+
+testdb=# ALTER TABLE tier ADD CO
+COLUMN      CONSTRAINT
+testdb=# ALTER TABLE tier ADD COLUMN id INTEGER;
+ALTER TABLE
+testdb=# SELECT * FROM tier;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |
+ Timmy                          | Hund                           |
+(2 Zeilen)
+
+testdb=# SELECT name FROM tier WHERE id IS NULL;
+              name
+--------------------------------
+ Esmeralda
+ Timmy
+(2 Zeilen)
+
+testdb=# UPDATE tier SET id=1 WHERE name='Esmeralda';
+UPDATE 1
+testdb=# SELECT name FROM tier;
+              name
+--------------------------------
+ Timmy
+ Esmeralda
+(2 Zeilen)
+
+testdb=# SELECT * FROM tier;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Timmy                          | Hund                           |
+ Esmeralda                      | Spinne                         |  1
+(2 Zeilen)
+
+testdb=# SELECT * FROM tier WHERE id IS NULL;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Timmy                          | Hund                           |
+(1 Zeile)
+
+testdb=# SELECT * FROM tier WHERE id IS NOT NULL;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+(1 Zeile)
+
+testdb=#
diff --git a/20231109/dbms-09.txt b/20231109/dbms-09.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cecf5883ecc768374314631d533260282119393d
--- /dev/null
+++ b/20231109/dbms-09.txt
@@ -0,0 +1,100 @@
+testdb=# INSERT INTO tier VALUES ( 'Dio', 'Katze' );
+INSERT 0 1
+testdb=# SELECT * FROM tier;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |
+(3 Zeilen)
+
+testdb=# SELECT * FROM tier WHERE id IS NULL;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Dio                            | Katze                          |
+(1 Zeile)
+
+testdb=# SELECT * FROM tier WHERE id=NULL;
+ name | tierart | id
+------+---------+----
+(0 Zeilen)
+
+testdb=# UPDATE tier SET id=3 WHERE id IS NULL;
+UPDATE 1
+testdb=# SELECT * FROM tier WHERE id IS NOT NULL;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |  3
+(3 Zeilen)
+
+testdb=# SELECT * FROM tier ORDER BY tierart;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |  3
+ Esmeralda                      | Spinne                         |  1
+(3 Zeilen)
+
+testdb=# SELECT * FROM tier ORDER BY name;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Dio                            | Katze                          |  3
+ Esmeralda                      | Spinne                         |  1
+ Timmy                          | Hund                           |  2
+(3 Zeilen)
+
+testdb=# SELECT * FROM tier ORDER BY id;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |  3
+(3 Zeilen)
+
+testdb=# insert into animal ( id, name, kind ) values ( 4, 'Tusnelda', 'Spinne' );
+FEHLER:  Relation »animal« existiert nicht
+ZEILE 1: insert into animal ( id, name, kind ) values ( 4, 'Tusnelda'...
+                     ^
+testdb=# INSERT INTO tier ( id, name, kind ) VALUES ( 4, 'Tusnelda', 'Spinne' );
+FEHLER:  Spalte »kind« von Relation »tier« existiert nicht
+ZEILE 1: INSERT INTO tier ( id, name, kind ) VALUES ( 4, 'Tusnelda', ...
+                                      ^
+testdb=# INSERT INTO tier ( id, name, tierart ) VALUES ( 4, 'Tusnelda', 'Spinne' );
+INSERT 0 1
+testdb=# SELECT * FROM tier ORDER BY tierart;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |  3
+ Esmeralda                      | Spinne                         |  1
+ Tusnelda                       | Spinne                         |  4
+(4 Zeilen)
+
+testdb=# SELECT * FROM tier WHERE tierart = 'Spinne';
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Tusnelda                       | Spinne                         |  4
+(2 Zeilen)
+
+testdb=# SELECT COUNT FROM tier WHERE tierart = 'Spinne';
+FEHLER:  Spalte »count« existiert nicht
+ZEILE 1: SELECT COUNT FROM tier WHERE tierart = 'Spinne';
+                ^
+testdb=# SELECT COUNT (*) FROM tier WHERE tierart = 'Spinne';
+ count
+-------
+     2
+(1 Zeile)
+
+testdb=# SELECT COUNT (*) FROM tier GROUP BY tierart;
+ count
+-------
+     2
+     1
+     1
+(3 Zeilen)
+
+testdb=#
diff --git a/20231109/dbms-10.txt b/20231109/dbms-10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5c2f55329c5e30b1d99f475ba030b9862e7a29a5
--- /dev/null
+++ b/20231109/dbms-10.txt
@@ -0,0 +1,87 @@
+testdb=# SELECT * FROM tier WHERE tierart = 'Spinne';
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Tusnelda                       | Spinne                         |  4
+(2 Zeilen)
+
+testdb=# SELECT COUNT FROM tier WHERE tierart = 'Spinne';
+FEHLER:  Spalte »count« existiert nicht
+ZEILE 1: SELECT COUNT FROM tier WHERE tierart = 'Spinne';
+                ^
+testdb=# SELECT COUNT (*) FROM tier WHERE tierart = 'Spinne';
+ count
+-------
+     2
+(1 Zeile)
+
+testdb=# SELECT COUNT (*) FROM tier GROUP BY tierart;
+ count
+-------
+     2
+     1
+     1
+(3 Zeilen)
+
+testdb=# SELECT tierart AND COUNT(tierart) FROM tier GROUP BY tierart;
+FEHLER:  Argument von AND muss Typ boolean haben, nicht Typ character
+ZEILE 1: SELECT tierart AND COUNT(tierart) FROM tier GROUP BY tierart...
+                ^
+testdb=# SELECT tierart FROM tier GROUP BY tierart AND COUNT(tierart);
+FEHLER:  Argument von AND muss Typ boolean haben, nicht Typ character
+ZEILE 1: SELECT tierart FROM tier GROUP BY tierart AND COUNT(tierart)...
+                                           ^
+testdb=# SELECT tierart, name FROM tier;
+            tierart             |              name
+--------------------------------+--------------------------------
+ Spinne                         | Esmeralda
+ Hund                           | Timmy
+ Katze                          | Dio
+ Spinne                         | Tusnelda
+(4 Zeilen)
+
+testdb=# select tierart, count(*) as id FROM tier GROUP by Tierart;
+            tierart             | id
+--------------------------------+----
+ Spinne                         |  2
+ Hund                           |  1
+ Katze                          |  1
+(3 Zeilen)
+
+testdb=# select tierart, count(*) as schnubbel FROM tier GROUP by Tierart;
+            tierart             | schnubbel
+--------------------------------+-----------
+ Spinne                         |         2
+ Hund                           |         1
+ Katze                          |         1
+(3 Zeilen)
+
+testdb=# select tierart as '§$§%$/$(', count(*) as schnubbel FROM tier GROUP by Tierart;
+FEHLER:  Syntaxfehler bei »'§$§%$/$('«
+ZEILE 1: select tierart as '§$§%$/$(', count(*) as schnubbel FROM tie...
+                           ^
+testdb=# select tierart as WatFuernViech, count(*) as schnubbel FROM tier GROUP by Tierart;
+         watfuernviech          | schnubbel
+--------------------------------+-----------
+ Spinne                         |         2
+ Hund                           |         1
+ Katze                          |         1
+(3 Zeilen)
+
+testdb=# select tierart, count(*) as Anzahl FROM tier GROUP by Tierart;
+            tierart             | anzahl
+--------------------------------+--------
+ Spinne                         |      2
+ Hund                           |      1
+ Katze                          |      1
+(3 Zeilen)
+
+testdb=# select tierart, count(*) FROM tier GROUP by Tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Katze                          |     1
+(3 Zeilen)
+
+testdb=#
diff --git a/20231109/dbms-11.txt b/20231109/dbms-11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ad3d007d676dcd95d5937fdf65bd0f1c8cfb1d69
--- /dev/null
+++ b/20231109/dbms-11.txt
@@ -0,0 +1,43 @@
+testdb=# INSERT INTO tier ( name, tierart ) VALUES ( 'Ragnar', 'Katze' );
+INSERT 0 1
+testdb=# INSERT INTO tier ( name, tierart ) VALUES ( 'Putzi', 'Ratte' );
+INSERT 0 1
+testdb=# SELECT * FROM tier;
+              name              |            tierart             | id
+--------------------------------+--------------------------------+----
+ Esmeralda                      | Spinne                         |  1
+ Timmy                          | Hund                           |  2
+ Dio                            | Katze                          |  3
+ Tusnelda                       | Spinne                         |  4
+ Ragnar                         | Katze                          |
+ Putzi                          | Ratte                          |
+(6 Zeilen)
+
+testdb=# select tierart, count(tierart) FROM tier GROUP by Tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Ratte                          |     1
+ Katze                          |     2
+(4 Zeilen)
+
+testdb=# select tierart, count(id) FROM tier GROUP by Tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Ratte                          |     0
+ Katze                          |     1
+(4 Zeilen)
+
+testdb=# select tierart, count(*) FROM tier GROUP by Tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Ratte                          |     1
+ Katze                          |     2
+(4 Zeilen)
+
+testdb=#
diff --git a/20231109/dbms-12.txt b/20231109/dbms-12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ec1bf80d82bce66a5d61127102e2bca9f9ff299e
--- /dev/null
+++ b/20231109/dbms-12.txt
@@ -0,0 +1,46 @@
+testdb=# SELECT tierart, COUNT(*) FROM tier GROUP by tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Ratte                          |     1
+ Katze                          |     2
+(4 Zeilen)
+
+testdb=# SELECT tierart, COUNT(id) FROM tier GROUP by tierart;
+            tierart             | count
+--------------------------------+-------
+ Spinne                         |     2
+ Hund                           |     1
+ Ratte                          |     0
+ Katze                          |     1
+(4 Zeilen)
+
+testdb=# SELECT tierart, MAX(id) FROM tier GROUP by tierart;
+            tierart             | max
+--------------------------------+-----
+ Spinne                         |   4
+ Hund                           |   2
+ Ratte                          |
+ Katze                          |   3
+(4 Zeilen)
+
+testdb=# SELECT tierart, MAX(id) FROM tier GROUP BY tierart;
+            tierart             | max
+--------------------------------+-----
+ Spinne                         |   4
+ Hund                           |   2
+ Ratte                          |
+ Katze                          |   3
+(4 Zeilen)
+
+testdb=# SELECT tierart, SUM(id) FROM tier GROUP BY tierart;
+            tierart             | sum
+--------------------------------+-----
+ Spinne                         |   5
+ Hund                           |   2
+ Ratte                          |
+ Katze                          |   3
+(4 Zeilen)
+
+testdb=#
diff --git a/20231109/x11-01.txt b/20231109/x11-01.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25cc2ee9de67e9faa898abbad8632b17866abf9f
--- /dev/null
+++ b/20231109/x11-01.txt
@@ -0,0 +1,76 @@
+root@streaming:~# su - pult
+pult@streaming:~$ ls -l
+insgesamt 8208
+-rw-r--r-- 1 pult pult    1728  8. Jan 2021  bash-settings.pg
+-rw-r--r-- 1 pult pult    1737  5. Jan 2021  emergency-mirror.py
+-rw-rw-r-- 1 pult pult     287 14. Sep 2006  empty.xbm
+-rw-rw-r-- 1 pult pult     284 14. Sep 2006  full.xbm
+-rw-r--r-- 1 pult pult 8297579 28. Okt 2021  screenshot-vnc6.xwd
+drwxr-xr-x 6 pult pult    4096  2. Jun 13:34 vnc1
+drwxr-xr-x 3 pult pult    4096 30. Mär 2021  vnc15
+drwxr-xr-x 8 pult pult    4096  2. Jun 13:34 vnc2
+drwxr-xr-x 8 pult pult    4096  2. Jun 13:34 vnc3
+drwxr-xr-x 8 pult pult    4096  2. Jun 13:34 vnc4
+drwxr-xr-x 7 pult pult    4096  3. Jun 22:07 vnc5
+drwxr-xr-x 8 pult pult    4096  3. Jun 22:07 vnc6
+drwxr-xr-x 3 pult pult    4096 14. Jun 2021  vnc7
+-rw-r--r-- 1 pult pult   55498  3. Apr 2020  vnc-testbild.pdf
+pult@streaming:~$ cd vnc6
+pult@streaming:~/vnc6$ HOME=/home/pult/vnc6 DISPLAY=:6 xteddy
+^C
+pult@streaming:~/vnc6$ HOME=/home/pult/vnc6 DISPLAY=:6 xwininfo -root
+
+xwininfo: Window id: 0x51a (the root window) (has no name)
+
+  Absolute upper-left X:  0
+  Absolute upper-left Y:  0
+  Relative upper-left X:  0
+  Relative upper-left Y:  0
+  Width: 1920
+  Height: 1080
+  Depth: 24
+  Visual: 0x21
+  Visual Class: TrueColor
+  Border width: 0
+  Class: InputOutput
+  Colormap: 0x20 (installed)
+  Bit Gravity State: ForgetGravity
+  Window Gravity State: NorthWestGravity
+  Backing Store State: NotUseful
+  Save Under State: no
+  Map State: IsViewable
+  Override Redirect State: no
+  Corners:  +0+0  -0+0  -0-0  +0-0
+  -geometry 1920x1080+0+0
+
+pult@streaming:~/vnc6$ HOME=/home/pult/vnc6 DISPLAY=:6 xwininfo -root -children
+
+xwininfo: Window id: 0x51a (the root window) (has no name)
+
+  Root window id: 0x51a (the root window) (has no name)
+  Parent window id: 0x0 (none)
+     20 children:
+     0x1200088 (has no name): ("ssvncviewer" "Ssvnc")  1920x1080+0+0  +0+0
+     0x1200081 "chat": ("chat" "Ssvnc")  410x359+0+0  +0+0
+     0x20012a "Xpdf: /home/pult/vnc6/vnc-testbild.pdf": ("win" "Xpdf")  1920x1080+0+0  +0+0
+     0x14009ba "Pan Icon": ("display-im6.q16" "Display-im6.q16")  96x72+960+960  +960+960
+     0x14008c4 "Magnify 3X": ("display-im6.q16" "Display-im6.q16")  256x256+960+960  +960+960
+     0x14007c5 (has no name): ("display-im6.q16" "Display-im6.q16")  1x1+960+960  +960+960
+     0x14006cb (has no name): ("display-im6.q16" "Display-im6.q16")  1x1+960+960  +960+960
+     0x14005d1 "Commands": ("display-im6.q16" "Display-im6.q16")  134x410+960+670  +960+670
+     0x14003df "janus-1 Camera 0": ("display-im6.q16" "Display-im6.q16")  1440x1080+960+960  +960+960
+     0x14001f3 (has no name): ("display-im6.q16" "Display-im6.q16")  96x72+960+960  +960+960
+     0x6007eb (has no name): ()  1x1+3+2  +3+2
+     0x5b9 (has no name): ()  100x100+0+0  +0+0
+     0x20013f "Xpdf: Print": ("printDialog_popup" "Xpdf")  5x5+0+0  +0+0
+     0x20013e "Xpdf: Find": ("findDialog_popup" "Xpdf")  5x5+0+0  +0+0
+     0x200130 "Xpdf: About": ("aboutDialog_popup" "Xpdf")  450x300+0+0  +0+0
+     0x200116 (has no name): ()  5x5+0+0  +0+0
+     0x20010e "Xpdf: Password": ("passwordDialog_popup" "Xpdf")  5x5+0+0  +0+0
+     0x400001 (has no name): ()  10x10+-100+-100  +-100+-100
+     0x200002 (has no name): ()  1x1+0+0  +0+0
+     0x200001 "xpdf.real": ("xpdf.real" "Xpdf")  1x1+0+0  +0+0
+
+pult@streaming:~/vnc6$ HOME=/home/pult/vnc6 DISPLAY=:6 xdotool windowraise 0x20012a
+pult@streaming:~/vnc6$ HOME=/home/pult/vnc6 DISPLAY=:6 xdotool windowraise 0x1200088
+pult@streaming:~/vnc6$