Zugriff auf einen stabilen Datenbestand, sodass eine Materialisierung der Sich-
ten sinnvoll erscheint, um den Berechnungsaufwand für häufig wiederkehren-
de Anfrageteile zu reduzieren. Da die Daten außerdem eher selten geändert
werden, ist der Aufwand für eine Aktualisierung der Sichten gering.
Aus diesem Grund bieten die kommerziellen DBMS als Unterstützung für
Data-Warehouse-Systeme sogenannte materialisierte Sichten (engl. Materiali-
zed View, Materialized Query Table oder Summary Table) an. Hierbei handelt
es sich im Prinzip um normale Tabellen, in denen das Ergebnis der Sichtan-
frage abgelegt wird. Im Vergleich zu diesen ist die Nutzung materialisierter
Sichten jedoch weitgehend transparent sowohl bezüglich der Verwendung in
Anfragen als auch der Aktualisierung. Mit materialisierten Sichten sind daher
drei wesentliche Problembereiche verbunden:
die Anfrageersetzung, d.h. das Umschreiben der originalen Anfrage derart,
dass anstelle der ursprünglich genutzten Basisrelationen nun eine oder
mehrere materialisierte Sichten genutzt werden,
die Auswahl materialisierter Sichten, die ein Abwägen zwischen dem Nut-
zen durch die Reduzierung der Antwortzeiten und dem Aufwand in Form
von zusätzlichem Speicherbedarf für redundante Daten sowie Verwal-
tungsaufwand darstellt,
die Wartung materialisierter Sichten im Fall von Änderungen der Basisre-
lationen durch eine Neuberechnung oder Propagierung der Änderungen.
Diese Aspekte werden im Folgenden genauer behandelt. Anschließend werden
wir kurz auf die Umsetzung in kommerziellen DBMS eingehen.
8.3.1 Anfragebeantwortung mit materialisierten Sichten
Materialisierte Sichten werden mit dem Ziel eingeführt, die Antwortzeiten
von Anfragen im Data Warehouse durch die Bereitstellung vorberechneter
(Teil-)Ergebnisse zu verkürzen. Dies soll möglichst transparent erfolgen, d.h.
die ursprünglichen Anfragen auf den Basisrelationen sollen nicht geändert wer-
den müssen. Die Aufgabe ist daher bei einer vorhandenen materialisierten
Sicht M, eine Anfrage Q derart in eine äquivalente Anfrage Q
0
umzuschreiben,
dass sie das gleiche Ergebnis wie Q liefert, dabei jedoch M nutzt.
JBeispiel 8-1I Gegeben sei die materialisierte Sicht MV, die wie folgt definiert
ist:
CREATE MATERIALIZED VIEW MV AS
SELECT P
_
Produktgruppe, V
_
Ort
_
ID,
SUM(V
_
Anzahl
*
P
_
Verkaufspreis) AS Umsatz
FROM Verkauf, Produkt
242 8 Anfrageverarbeitung und materialisierte Sichten
WHERE V
_
Produkt
_
ID = P
_
ID AND P
_
Produktkategorie = ’Wein’
GROUP BY P
_
Produktgruppe, V
_
Ort
_
ID
Weiterhin sei die Anfrage Q gegeben:
SELECT P
_
Produktgruppe, O
_
Stadt,
SUM(V
_
Anzahl
*
P
_
Verkaufspreis) AS Umsatz
FROM Verkauf, Produkt, Ort
WHERE V
_
Produkt
_
ID = P
_
ID AND
V
_
Ort
_
ID = O
_
ID AND
O
_
Bundesland = ’Sachsen-Anhalt’ AND
P
_
Produktkategorie = ’Wein’
GROUP BY P
_
Produktgruppe, O
_
Stadt
Unter Nutzung der materialisierten Sicht MV kann diese Anfrage in die folgende
Anfrage Q
0
umgeformt werden, die aufgrund der vorberechneten Gruppierung
und Aggregation sicher schneller ausgeführt werden kann:
SELECT P
_
Produktgruppe, O
_
Stadt, SUM(Umsatz)
FROM MV, Ort
WHERE MV.V
_
Ort
_
ID = O
_
ID AND
O
_
Bundesland = ’Sachsen-Anhalt’
GROUP BY P
_
Produktgruppe, O
_
Stadt
2
Grundbedingung für eine derartige Umformulierung ist es, dass die neue
Anfrage das gleiche Ergebnis liefert wie die ursprüngliche, d.h. dass sie äqui-
valent zu dieser ist. Wie das Beispiel zeigt, muss die materialisierte Sicht dabei
nicht direkt der Anfrage entsprechen. Vielmehr kann sie eine Obermenge der
Daten liefern (z.B. weniger restriktiv sein oder feingranularere Aggregate bein-
halten) oder auch erst durch einen nachträglichen Verbund die gewünschten
Daten liefern.
Dabei ergeben sich zwei grundlegende Problemstellungen:
die Frage nach der Existenz einer Anfrageersetzung (Query Containment),
die eigentliche Anfrageumformulierung (Query Rewriting)
. Da eine materialisierte Sicht durch eine Anfrage definiert ist, kann die Frage
der Ersetzbarkeit auf das Problem des Enthaltenseins von Anfragen zurückge-
führt werden. Dieses Query-Containment-Problem ist wie folgt definiert: Gege-
ben sind zwei Anfragen Q
1
und Q
2
.
Q
1
ist in Q
2
enthalten (Q
1
v Q
2
), wenn für alle Datenbankinstanzen D die
Ergebnismenge von Q
1
eine Teilmenge des Ergebnisses von Q
2
ist: Q
1
(D)
Q
2
(D).
8.3 Materialisierte Sichten 243

Get Data Warehouse Technologien now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.