Datenbanken und Datawarehouses Übersicht Datenbank

Werbung
†bersicht
Datenbanken und Datawarehouses
¥ EinfŸhrung
¥ GROUP BY
Niels Schršter
¥ Roll UpÔs
¥ Kreuztabellen
¥ Cubes
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Datenbank
Datenbanksysteme
¥ Ansammlung von Tabellen, die einen
ãAusschnitt der WeltÒ fŸr eine Benutzergruppe
beschreiben. Sie beschreiben die funktionalen
ZusammenhŠnge der Daten aus der Sicht der
Benutzer. Die Verwaltung der Tabellen
geschieht mit Hilfe eines Datenbanksystems [2]
¥ Software, ggf. auch Hardware und
administrative Ma§nahmen, die die Verwaltung
der Daten fŸr Benutzer Ÿbernehmen,
Datenschutz und Datensicherheit zu
gewŠhrleisten und den Benutzern Zugang zu
den Datenbanken zu ermšglichen
[2]
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Tabelle
¥ In der relationalen Darstellung werden Daten in
Tabellen gespeichert, die eine Menge von
Attribute besitzen. WŠhrend Ÿblicherweise die
Spalten einer Tabelle die einzelnen Attribute
reprŠsentieren, werden die eigentlichen Daten
durch Zeilen (Tupel) dargestellt
[3]
¥
¥
¥
¥
Attribute
¥ Vertikal angeordneter Teil einer Tabelle, mit
dem ein Name und ein Datentyp verknŸpft ist.
¥ Alle Attributwerte haben den mit dem Attribut
verknŸpften Datentyp
[2]
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Datenanalyse
Datenanalysetools
Formulierung einer Abfrage
Extrahierung der zusammengefassten Daten in
einer Tabelle oder Datei
Visualisierung der Ergebnisse
Analyse der Ergebnisse und Formulierung
einer neuen Abfrage
Datenbanken und Datawarehouses
¥
¥
¥
¥
Tendenzen
Anomalien
Cluster
Darstellung der extrahierten Daten im NDimensionalen Raum
Datenbanken und Datawarehouses
Extraktion
¥ Untermenge der ursprŸnglichen Daten, die fŸr
den Benutzer interessant sind
(Dimensionsreduktion)
SQL: SELECT
¥ Anweisung zum Auffinden von Daten, die in
einer Datenbank gespeichert sind. SELECT
stellt somit die ãzentraleÒ Anweisung dar.
¥ VielfŠltige Auswahlkriterien
[2]
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
SQL: SELECT
SQL
¥ Die Daten kšnnen aus mehreren Tabellen
zusammengebracht werden
¥ Die Auswahl der Zeilen kann gewissen
Bedingungen genŸgen
¥ Einige Spalten kšnnen von der Darstellung
ausgeschlossen werden
[2]
Datenbanken und Datawarehouses
¥ SQL Operator GROUP BY
¥ SQL Erweiterung: CUBE und ROLLUP
¥ Funktionen: COUNT(), SUM(), MIN(),
MAX(), AVG()
Datenbanken und Datawarehouses
Transaktion
Aggregation
¥ Eine Folge von Datenbankoperationen Ð dass
hei§t eine ZustandsŠnderung - , die bezŸglich
der DatenintegritŠt eine Einheit bilden
¥ Die Datenbank ist vor und nach der Transaktion
in konsistentem Zustand45
¥ Unter einer Aggregation versteht man das
Zusammenfassen von Daten mittels einer
Berechnungsvorschrift.
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Aggregationsoperator
Definitionen
¥ Ein Aggregationsoperator ist die
Berechnungsvorschrift, wie z.B. SUM(), AVG()
oder MAX(), mit der die betrachteten Daten bei
DurchfŸhrung einer Roll-Up -Operation
zusammengefasst werden kšnnen.
Datenbanken und Datawarehouses
¥ Histogramm: Aggregationen Ÿber berechnete
Kategorien
Datenbanken und Datawarehouses
Ê
Tabelle Sales
SQL Beispiel
ÊModel
Year
Chevy
Ê1990Ê
Red
5
Chevy
1990
White
87
Chevy
1990
Blue
62
Chevy
1991
Red
54
Chevy
1991
White
95
Chevy
1991
Blue
49
Chevy
1992
Red
31
Chevy
1992
White
54
ÊColorÊ
Sales
Chevy
1992
Blue
71
FORD
1990
Red
64
FORD
1990
White
62
FORD
1990
Blue
63
FORD
1991
Red
52
FORD
1991
White
9
FORD
1991
Blue
55
FORD
1992
Red
27
FORD
1992
White
62
FORD
1992
Blue
39
¥ Berechnung der Anzahl aller verkaufter Autos
SELECT SUM(Sales)
FROM
Sales;
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
SQL Bespiel
Probleme mit GROUP BY
¥ Anwendung des GROUP BY Operators:
SELECT
FROM
GROUP BY
Model, SUM(Sales)
Sales
Model;
Datenbanken und Datawarehouses
¥ Histogramme
¥ Roll UpÕs
¥ Kreuztabellen
Datenbanken und Datawarehouses
Roll Ups
Roll Up
¥ Roll-Up bezeichnet das Zusammenfassen von
Fakten aufgrund gleicher AusprŠgungen der
qualifizierenden Eigenschaften, wobei die
einzelnen quantifizierenden Eigenschaften unter
Verwendung von Aggregationsoperatoren
zusammengefŸhrt werden. [3]
ÊModelÊ
Year
ÊColorÊ
Sales by Model
by Year by Color
Chevy
Ê1994
Black
50
White
40
Black
85
White
115
Sales by Model
by Year
Sales by Model
90
1995
200
290
Anzahl der Spalten:
ÊModelÊ
Year
Color
2N
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Roll Up
Pivot Tabelle
ÊSalesÊ
Sales by Model
by Year
Year/Color
Sales by
Model
Chevy
Chevy
Ê1994Ê
1994
Black
White
50
40
90
90
290
290
Chevy
Chevy
1995
1995
Black
White
85
114
200
200
290
290
1994
White
Black
Chevy
50
40
90
85
Ford
50
10
60
Grand
Total
100
50
150
Anzahl der Spalten
Datenbanken und Datawarehouses
1994
Total
1995
Black
White
Model
1995
Total
Grand
Total
115
200
290
85
75
160
220
170
190
360
510
M ↔N
Datenbanken und Datawarehouses
EinfŸhrung des ALL Werts
UNION
¥ Vereinigung mehrerer Tabellen. Vorraussetzung
hierbei ist, dass die Spalten (Attribute) der zu
vereinigenden Tabellen vom gleichen Typ sind
SELECT ÔALLÕ, ÔALLÕ, ÔALLÕ, SUM(Sales)
Ê FROMÊ Sales
Ê WHEREÊ Model = ÔChevyÕ
UNION
SELECT Model, ÔALLÕ, ÔALLÕ, SUM(Sales)
Ê FROMÊ Sales
Ê WHEREÊ Model = ÔChevyÕÊÊ
GROUP BY Model
UNION
SELECT Model, Year, ÔALLÕ, SUM(Sales)
Ê FROMÊ Sales
Ê WHEREÊ Model = ÔChevyÕÊÊ
GROUP BY Model, Year
UNION
SELECT Model, Year, Color, SUM(Sales)
Ê FROMÊ Sales
Ê WHEREÊ Model = ÔChevyÕ
GROUP BY Model, Year, Color;
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Dreidimensionaler Roll Up
Asymmetrie von Rollups
ÊModelÊ
Year
Color
Sales
Model
Year
Color
Sales
Chevy
Ê1994Ê
Black
50
Chevy
ALL
Black
135
Chevy
1994
White
40
1994
ALL
90
Chevy
ALL
Chevy
White
155
Chevy
1995
Black
85
Chevy
1995
White
115
Chevy
1995
ALL
200
Chevy
ALL
ALL
290
Datenbanken und Datawarehouses
UNION
SELECT
FROM
WHERE
GROUP BY
Model, ÔALLÔ, Color, SUM(Sales)
Sales
Model = ÔChevyÔ
Model, Color;
Datenbanken und Datawarehouses
Kreuztabellen
Datacubes
¥ Die Tabellen werden Kreuztabellen genannt
¥ Kreuztabellen sind zweidimensionale Aggregationen
¥ †blicherweise werden Kreuztabellen kompakter
dargestellt:
Chevy
1994
1995
Total(ALL)
Black
50
85
135
White
40
115
155
Total(ALL)
90
200
200
¥ Wird z.B. eine andere Automarke hinzugefŸgt,
wird die Kreuztabelle Dreidimensional
¥ Der GROUP BY CUBE Operator generalisiert
GROUP BY, Roll Up und Kreuztabellen
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Erzeugen von Datacubes in SQL
Snowflakes
SELECT
Model, Year, Color,
SUM(sales) AS Sales
FROM
Sales
WHERE
Model in (ÔFordÕ, ÔChevyÕ)
AND Year BETWEEN 1990 AND 1992
GROUP BY CUBE Model, Year, Color;
Datenbanken und Datawarehouses
¥ Ein Snowflake ist ein Datenmodell fŸr den
logischen Entwurf einer Datenbank, das die
relationale ReprŠsentation multidimensionaler
Daten ermšglicht.
Datenbanken und Datawarehouses
Snowflake
ALL
Snowflake
ALL
Division
Group
Unit
ALL
ALL
black
Ford
Discount
Chevy
Product
Seller
Price
Office
white
Model
Year
District
Channel
Sales
1990
Region
Geography
ALL
Color
ALL
1991
1992
ALL
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Zugriff auf den Datacube
Zugriff auf Datacube
¥ Grenze zwischen Query und Visualisierung
unscharf
¥ Der Datenbankprogrammierer muss selber die
Abfragefunktionen aufsplitten in Query und
Visualisierung
¥ Dies bedingt Turing-VollstŠndige
Programmiersprache
¥ SQL3 ist Turing-VollstŠndig
Datenbanken und Datawarehouses
Berechnung einer Percent of Total Tabelle:
SELECT Model, Year, Color, SUM(Sales),
SUM(Sales)/
(SELECT SUM(Sales)
FROM
Sales
WHEREÊ
Model IN {ÔChevyÕ, ÕFordÕ}
AND
Year BETWEEN 1990 AND 1992
)
FROM SALES
WHEREÊ
Model IN {ÔChevyÕ, ÕFordÕ}
AND
Year BETWEEN 1990 AND 1992
GROUP BY CUBE Model, Year, Color;
Datenbanken und Datawarehouses
ALL
Vereinfachung
SELECT Model, Year, Color, SUM(Sales) AS
total,
ÊÊÊÊÊSUM(Sales) / total(ALL, ALL, ALL)
FROMÊÊ Sales
WHEREÊ Model IN {ÔChevyÕ, ÔFordÕ}
AND Year BETWEEN 1990 AND 1992
GROUP BY CUBE Model, Year, Color;
Indizierung eines 2D Cubes
SELECT
FROM
WHERE
AND
v
cube
row
= :i
column = :j
oder:
Cube.v(:i, :j)
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Berechnung von Aggregationen
Berechnen von Aggregationen
¥ Um Datenbewegungen und Kosten zu minimieren, sollten
Aggregationen auf mšglichst niedrigem System Level berechnet
werden
¥ Wenn mšglich Arrays oder Hashing benutzen um
Aggregationsspalten im Speicher zu organisieren, jeweils ein
Aggregationswert pro Array oder Hash Entry
¥ Sind die Aggregationswerte gro§e Strings, sollten diese mit
Hilfe von Hashes auf Integers gemappt werden
¥ Ist die Anzahl der Aggregate zu gro§, um in den
Hauptspeicher zu passen, sollte man die Daten
sortieren und dann mit einen sequentiellen Scan
aggregieren
¥ Wenn die Quelldaten Ÿber viele Festplatten
verteilt sind, sollten die einzelnen Teile parallel
aggregiert und anschlie§end verschmolzen
werden
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Distributive
Aggregationsfunktionen
Berechnung des Cube
¥ ALL erweitert jede Dimension um ein Element
¥ Ein N-Dimensionaler WŸrfel mit N Attributen,
die jeweils die KardinalitŠt Ci haben wird
Werte enthalten
⊆ (Ci + 1)
¥ Normalerweise
wird Ci sehr gro§ sein, was dann
nur noch wenig Auswirkungen auf die Summe
hat
¥ COUNT(), MIN(), MAX(), SUM()
F() ist distributiv, wenn es eine Funktion G() gibt und es gilt:
F ({ Xi , j}) = G ({F ({ Xi , j | i = 1,..., I }) | j = 1,...J })
Datenbanken und Datawarehouses
Datenbanken und Datawarehouses
Algebraische
Aggregationsfunktionen
Holistische Aggregationsfunktionen
¥ AVG(), standard deviation, MaxN(), MinN(),
center_of_mass()
F() ist algebraisch, wenn es eine M-Tupel wertige Funktion G()
gibt und eine Funktion H(), so da§ gilt:
F ({ Xi , j}) = H ({G ({ Xi , j | i = 1,..., I }) | j = 1,...J })
Datenbanken und Datawarehouses
¥
MostFrequent(), Rank()
F() ist holistisch, wenn die Anzahl der Attribute einer Aggregation nicht
konstant ist. Es gibt kein konstantes M, so dass ein M-Tupel die
Berechnung von
beschreiben
wŸrde.
F ({ Xi , j | i = 1,...,
I })
Datenbanken und Datawarehouses
Literaturverzeichnis:
[1] GRAY et al.
Data Cube: A Relational Aggregation Operator Gerneralizing Group-By,
Cross-Tab, and Sub-Totals
[2] Achilles
SQL: Standardisierte Datenbanksprache vom PC bis zu Mainframes
[3] Glossar Datawarehousing
http://www6.informatik.uni-erlangen.de:8080/ak-proj_offen/glossar.html
Datenbanken und Datawarehouses
Herunterladen