+ All Categories
Home > Documents > Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht...

Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht...

Date post: 27-Aug-2019
Category:
Upload: nguyenque
View: 213 times
Download: 0 times
Share this document with a friend
35
Vorlesung Datenbanksysteme vom 3.12.2007 Deduktive Datenbanken Grundidee Rekursion Datalog Auswertung von Datalog-Regeln Ausdruckskraft von Datalog
Transcript
Page 1: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Vorlesung Datenbanksysteme vom 3.12.2007

Deduktive Datenbanken

GrundideeRekursionDatalogAuswertung von Datalog-RegelnAusdruckskraft von Datalog

Page 2: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Grundidee

• EDB / IDB

Page 3: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

3

Grundidee einer deduktiven Datenbank

IDBintensionale Datenbasis(hergeleitete Relationen)

Regeln als Datalog Programm

EDBextensionale Datenbasis

(Basis-Relationen)

Page 4: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

4

TerminologieDie extensionale Datenbasis (EDB):

besteht aus einer Menge von Relationenentspricht einer "ganz normalen" relationalen Datenbasis.

Die Deduktionskomponente: besteht aus einer Menge von (Herleitungs-)Regeln . Die Regelsprache heißt Datalog (= Data + Prolog).

Die intensionale Datenbasis (IDB):Besteht aus einer Menge von hergeleiteten Relationen. Die IDB wird durch Auswertung des Datalog-Programms aus der EDB generiert.

Page 5: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Rekursion

• Transitive Hülle• Beispiele• Rekursion in SQL

Page 6: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

6

Transitive HülleDefinition: Transitive Hülle der 2-stelligen Relation R(A,B):

trans(R)= {(a,b) | ∃k ∈ N, ∃Γ1, ..., Γk ∈ R, Γ1.A= a ÆΓ1.B= Γ2.A ÆM

Γk-1.B= Γk.A Æ

Γk.B= b}Problem in der relationalen Algebra (und SQL-92):

Die Tiefe k der Rekursion ist a priori nicht bekannt.Beliebig tiefe Rekursion lässt sich in der relationalen Algebra (und in SQL-92) nicht ausdrücken.

Page 7: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

7

Beispiel: Pfad in einem Graph5

1 2 3 4 kante(1,2).6 7 kante(2,3).

kante(3,4).kante(3,6).kante(4,5).kante(4,6).kante(6,7).

Page 8: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

8

Beispiel: Pfad in einem Graph5

1 2 3 4 kante(1,2).6 7 kante(2,3).

kante(3,4).kante(3,6).kante(4,5).kante(4,6).kante(6,7).

Datalog Programm: Intensionale Relation "pfad":pfad(V,N) :- kante(V,N).pfad(V,N) :- kante(V,Z), pfad(Z,N).

Page 9: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

9

Weitere Beispiele:Relationale Uni-DB:

EDB-Relation: voraussetzen (Vorgänger, Nachfolger)

IDB-Relation: aufbauend (Vorl1, Vorl2), d.h.:

Vorl2 setzt Vorl1 entweder "direkt" oder "indirekt" voraus.

Komponenten eines Produkts: EDB-Relation: enthaelt (Artikel, Teil)

IDB-Relation: komponenten (Teil1, Teil2), d.h.:

Teil1 enthält Teil2 entweder "direkt" oder "indirekt".

Problem: Diese IDB-Relationen erfordern beliebig tiefe Rekursion=> Solche Anfragen lassen sich in der relationalen Algebra (und in SQL-92) nicht ausdrücken!

Page 10: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

10

Rekursion in SQL

select Vorgängerfrom voraussetzen, Vorlesungenwhere Nachfolger= VorlNr and

Titel= `Der Wiener Kreis´

21374Die 3 Kritiken4630

21342Glaube und Wissen5022

21332Der Wiener Kreis5259

gelesenVon

SWSTitelVorlNr

21374Grundzüge5001

21262Bioethik5216

21263Wissenschaftstheorie5052

21254Logik4052

21252Mäeutik5049

21263Erkenntnistheorie5043

21254Ethik5041

Vorlesungen

NachfolgerVorgänger50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 11: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

11

Der Wiener Kreis 5259

Wissenschaftstheorie 5052

Bioethik 5216

Erkenntnistheorie

5043

Ethik 5041

Mäeutik5049

Grundzüge

5001

Page 12: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

12

Rekursion in SQL: Tiefe 2select v1.Vorgänger

from voraussetzen v1, voraussetzen v2, Vorlesungen v

where v1.Nachfolger= v2.Vorgänger and

v2.Nachfolger= v.VorlNr and

v.Titel=`Der Wiener Kreis´

21374Die 3 Kritiken4630

21342Glaube und Wissen5022

21332Der Wiener Kreis5259

gelesenVon

SWSTitelVorlNr

21374Grundzüge5001

21262Bioethik5216

21263Wissenschaftstheorie5052

21254Logik4052

21252Mäeutik5049

21263Erkenntnistheorie5043

21254Ethik5041

Vorlesungen

NachfolgerVorgänger50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzenNachfolgerVorgänger

50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 13: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

13

select v1.Vorgängerfrom voraussetzen v1

M

voraussetzen vn_minus_1voraussetzen vn,Vorlesungen v

where v1.Nachfolger= v2.Vorgänger andM

vn_minus_1.Nachfolger= vn.Vorgänger andvn.Nachfolger = v.VorlNr andv.Titel= `Der Wiener Kreis´

Rekursion in SQL: Tiefe n

Page 14: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

14

SELECT Vorgaenger, Nachfolger FROM voraussetzenSTART WITH Nachfolger =

( SELECT VorlNrFROM VorlesungenWHERE Titel = 'Der Wiener Kreis' )

CONNECT BY PRIOR Vorgaenger = Nachfolger;

Bemerkungen:Die "voraussetzen"-Tabelle stellt keinen Baum dar sondern einen DAG (directed acyclic graph). Hierarchische Anfragen kommen mit beliebigen Graphen (die Zyklen enthalten können) nicht zurecht!

Rekursion in Oracle 10g

Page 15: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

15

Graph-Erreichbarkeitsproblem in Oracle 10g (1)

5

1 2 3 4 6 7

CREATE TABLE Kante(von INTEGER,nach INTEGER,CONSTRAINT kantePK PRIMARY KEY(von,nach));

SELECT LEVEL as pfadlaenge, nachFROM KanteSTART WITH von = 2CONNECT BY PRIOR nach = von;

Page 16: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

16

Graph-Erreichbarkeitsproblem in Oracle 10g (2)

5

1 2 3 4 6 7

SELECT LEVEL as pfadlaenge, nachFROM KanteSTART WITH von = 2CONNECT BY PRIOR nach = von;

Bemerkung: Diese hierarchische Anfrage scheitert in Oracle, weil der Graph nun zyklisch ist.

Page 17: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Datalog

• Datalog-Regeln• Abhängigkeitsgraph

Page 18: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

18

Datalog-Regeln

Jedes qj (...) ist eine atomare Formel: q ist dabei

der Name einer Basisrelation,

der Name einer abgeleiteten Relation oder

ein eingebautes Prädikat: <,=,>,…

X1, ...,Xm sind Variablen, die mindestens einmal auch im Rumpf vorkommen müssen.

Logisch äquivalente Form der obigen Regel:p(...) ∨ ¬q1 (...) ∨... ∨ ¬qn (...)

).,...,(),...,,...,( -: ),...,( 111111 1 nnmnnmm AAqAAqXXp

Kopf (head) Rumpf (body)

Page 19: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

19

Datalog-Regelnp, q, … : Prädikate.

EDB-Prädikate: kommen nur im Rumpf von Regeln vor.IDB-Prädikate: kommen (auch) im Kopf von Regeln vor.

Beispiel: Vorlesungen von Sokrates mit mehr als 2 SWSsokLV(T,S) :- vorlesungen(V,T,S,P ),

professoren(P, 'Sokrates',R,Z ), >(S,2).

Äquivalenter Domänenkalkül-Ausdruck:{[t,s] | ∃v,p ([v,t,s,p] ∈ Vorlesungen ∧

∃n,r,z ([p,n,r,z] ∈ Professoren ∧n = 'Sokrates' ∧ s > 2))}

Page 20: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

20

Beispiel Datalog-ProgrammgeschwisterVorl(N 1, N 2) :- voraussetzen(V, N 1),

voraussetzen(V, N 2), N 1 < N 2.

geschwisterThemen(T 1, T 2) :- geschwisterVorl(N 1, N 2),vorlesungen(N 1, T 1, S 1, R 1),vorlesungen(N 2, T 2, S 2, R 2).

aufbauen(V,N ) :- voraussetzen(V,N )aufbauen(V,N ) :- aufbauen(V,M ), voraussetzen(M,N ).

verwandt(N,M ) :- aufbauen(N,M ).verwandt(N,M ) :- aufbauen(M,N ).verwandt(N,M ) :- aufbauen(V,N ), aufbauen(V,M ).

Basis-Relationen: voraussetzen: {[Vorgänger, Nachfolger]}vorlesungen: {VorlNr, Titel, SWS, gelesenVon]}

Page 21: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

21

Abhängigkeitsgraph

geschwisterThemen

vorlesungenvoraussetzen

geschwisterVorlaufbauen

verwandt

Abhängigkeitsgraph: = "wird verwendet von"Ein Datalog-Programm ist rekursiv, wenn der Abhängigkeitsgraph einen (oder mehrere) Zyklen hat

Unser Beispielprogramm ist rekursiv wegen des Zyklusaufbauen → aufbauen

Page 22: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Auswertung von Datalog-Regeln

• nicht-rekursive Regeln• rekursive Regeln• Negation im Regel-Rumpf

Page 23: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

23

Nicht-rekursive Regeln

Auswertung der IDB-RelationengeschwisterVorl(N 1, N 2)geschwisterThemen(T 1, T 2)

mit Hilfe der Basisrelationenvorlesungen(N 2, T 2, S 2, R 2).voraussetzen(V, N 2)

geschwisterThemen

vorlesungenvoraussetzen

geschwisterVorl

Page 24: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

24

Auswertung nicht-rekursiver Datalog-Programme

1. Topologische Sortierung der Relationen, z.B.: voraussetzen, geschwVorl, vorlesungen, geschwThemen

2. Für jede Regel mit dem Kopf p(...), alsop(...) :- q1(...), ..., qn(...).

bilde eine Relation, in der alle im Regel-Rumpf vorkommenden Variablen als Attribute vorkommen, z.B.: GV(N1, N2, V).

3. Diese Relation wird im wesentlichen durch einen natürlichen Verbund der Relationen Q1, ..., Qn, die den Relationen der Prädikate q1, ..., qn entsprechen, gebildet.

4. Projektion auf die Variablen, die im Regel-Kopf vorkommen.5. Das Prädikat p kann durch mehrere Regeln definiert sein.

=> Die Relationen aus den vorigen Schritten werden vereinigt.

Page 25: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

25

Auswertung von geschwisterVorl

Ausdruck der relationalen Algebra für die Relation GV:

σN1<N2 (Vs1(V, N1) A Vs2(V, N2))

Vs1(V, N1) := ρV←$1(ρN1 ←$2 (ρVs1(Voraussetzen)))

Die dadurch definierte Relation enthält Tupel [v, n1, n2] mit:

Das Tupel [v, n1] ist in der Relation Voraussetzen enthalten,

das Tupel [v, n2] ist in der Relation Voraussetzen enthalten

und n1 < n2.

Formel zur Berechnung der Relation GV:

GV(N1, N2) := ΠN1, N2 (σN1<N2(Vs1(V, N1) A Vs2(V, N2)))

Page 26: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

26

Rekursive Regeln

Auswertung der IDB-Relationaufbauen(V,N )

mit Hilfe der Basisrelationvoraussetzen(V, N 2)

voraussetzen

aufbauen

Page 27: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

27

(Naive) Auswertung durch Iteration

A := {}: /*Initialisierung auf die leere Menge */repeat

until A' = Aoutput A;

)),(),((),(),( , NMVsMVANVVsNVA NV AΠ∪=

/* Regel zweite* /));,(),('(:/* Regel erste * /);,(:

;:'

, NMVsMVAAANVVsA

AA

NV AΠ∪===

d.h.: A = kleinster Fixpunkt

Page 28: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

28

(Naive) Auswertung durch Iteration

wie in Schritt 3 (keine Veränderung, also Terminierung

des Algorithmus

4

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259][5001,5216], [5001,5052], [5041,5259], [5043,5259],

[5001,5259]

3

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259][5001,5216], [5001,5052], [5041,5259], [5043,5259],

2

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259]

1ASchritt

NachfolgerVorgänger

50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 29: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

29

Regeln mit Negation im Rumpf

indirektAufbauen(V,N) :- aufbauen(V,N), ¬voraussetzen(V,N)

Stratifizierte Datalog-Programme:Eine Regel mit einem negierten Prädikat im Rumpf, wie z.B.p (...) :- q1 (...), ..., ¬qi (...), ..., qn (...).kann nur dann sinnvoll ausgewertet werden, wenn die Relation Qi schon vollständig materialisiert ist. Also müssen zuerst alle Regeln mit Kopf qi (...) :- ...ausgewertet sein. Das geht nur, wenn qi nicht von p abhängt.Also darf der Abhängigkeitsgraph keine Pfade von qi nach p enthalten. Wenn das für alle Regeln der Fall ist, nennt man das Datalog-Programm stratifiziert.

Page 30: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

30

( ) ( )

( ) ( ) ( )( )( ) ( )

( ) i

malk

i

NV

QDOMDOMQ

BildungKomplement

NVVsNVANVVsNVANViA

NVvsNVaNViA

−××=

−=

Π=

¬−

−444 3444 21 ...:

,,,,,

).,(,,:,

, A

Regeln mit Negation im Rumpf

Page 31: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

Ausdruckskraft von Datalog

• Datalog mit/ohne Negation und Rekursion• relationale Algebra-Operatoren in Datalog

Page 32: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

32

Ausdruckskraft von Datalog

Die Sprache Datalog mit Negation, aber eingeschränkt auf nicht-rekursive Programme, wird auch als Datalog ¬

non-recbezeichnet.

Diese Sprache Datalog ¬non-rec hat genau die gleiche

Ausdruckskraft wie die relationale Algebra. => Damit hat sie auch die gleiche Ausdruckskraft wie der relationale Tupel- und Domänenkalkül.

Datalog mit Negation und Rekursion geht natürlich über die Ausdruckskraft der relationalen Algebra hinaus, z.B.: man kann in Datalog die transitive Hülle einer Relation definieren.

Page 33: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

33

Datalog-Formulierung der relationalen Algebra-Operatoren

( )( ) ( )( ) ( ).,,"",:,,

.3,,,,:,,,

,3

RSMäeutikVnvorlesungeRSVquerySRSTVnvorlesungeRSTVquery

nVorlesungeSWSσ

−>−

>

Selektion

Projektion).,,,(:),( RaumRangNamePersNrnprofessoreRangNamequery −

Join(

( ) ( ) ( ).,,,,,,,:,

,

RaRgNRnprofessoreRSTVnvorlesungeNTquery

ProfessorennVorlesunge A gelesenVon=gelesenVonNameTitel

Π )

Page 34: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

34

Datalog-Formulierung der relationalen Algebra-Operatoren

Kreuzprodukt

nVorlesunge n Professore

).4,3,2,1( ),4,3,2,1(:)4,3,2,1,4,3,2,1(

×

−PPPPnprofessoreVVVVnvorlesungePPPPVVVVquery

Vereinigung

( ) ( )

).,,,(:),().,,,(:),(

,

RaRgNamePersNrnprofessoreNamePersNrqueryBFNamePersNrnassistenteNamePersNrquery

nProfessorenAssistente PersNr,NameNamePersNr

−−

Π∪Π

Page 35: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis.

35

Datalog-Formulierung der relationalen Algebra-Operatoren

Mengendifferenz

( ) ( )

( ) ( )( ) ( )

( ) ( ) ( ).,:.,:

.,,,:

VgrundlagenVvorlNrVqueryNVenvoraussetzVgrundlagen

RSTVnvorlesungeVvorlNr

enVoraussetznVorlesunge VorgängerVorlNr

¬−−

Π−Π


Recommended