KDD - Universität Wien

Werbung
Datenbanksysteme
Grundlegende Themen
Peter Brezany
Institut für Softwarewissenschaften
Universität Wien
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Knowledge Discovery in Databases
(KDD)
• It is ein stark interdisziplinäres Thema an der
Schnittstelle von Statistik, Maschinellem Lernen und
Datenbanksystemen.
• Zuerst behandeln wir einige Grundlagen des KDD aus
dem Gebiet Datenbaksystemen.
• Dann aus dem Gebiet Statistik.
• Dann werden die relevanten Techniken des
Maschinellen Lernen eingeführt.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 1
2
Grundbegriffe
• Das Datenbaksystem (DBS) dient der Beschreibung,
dauerhaften Speicherung und effizienten
Wiedergewinnung großer Datenmengen, die von
verschiedenen Anwendungsprogrammen benutzt
werden.
• Ein DBS besteht aus 2 Komponenten:
– Datenbank (DB): Sammlung aller gespeicherten Daten sowie der
zugehörigen Beschreibungen.
– Datenbank-Managementsystem (DBMS): Programmsystem zur
Verwaltung der DB.
• Alle Zugriffe von Anwendungsprogrammen auf die DB
erfolgen nicht direkt, sondern zentral über das
DBMS.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
3
Architektur eines Datenbanksystems
Anwendungsprogramm 1
Anwendungsprogramm 2
Datenbanksystem
DatenbankManagementsystem
Datenbank
Anwendungsprogramm N
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 2
4
Abstraktionsebenen eines DBS
• Externe Ebene – Sie erlaubt unterschiedliche Sichten
verschiedener Benutzer oder Benutzergruppen auf den
Datenstand.
• Konzeptionelle Ebene – Das ist die zentrale Ebene. Sie
spezifiziert die logische Gesamtsicht (d.h. unabhängig von
der tatsächlichen Speicherung) aller Daten, die von
irgendeinem Anwendungprogramm benötigt werden. Es
erfolgt eine Beschreibung aller Objet- und Beziehungstypen sowie deren Wertebereiche.
• Interne Ebene – Sie beschreibt die physische
Datenorganisation, d.h. sie legt fest wie die im
konzeptionellen Schema beschriebenen Objekte und
Beziehungen physisch abgespeichert werden und welche
Zugriffsmöglichkeitenbestehen. Es werden etwa
Zugriffsmöglichkeiten zu den Datensätzen durch
Indexstrukturen wie Hashtabellen, invertierte Listen oder
B-Bäume spezifiziert.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
5
Datenmodelle
• Datenmodelle sind Formalismen zur Beschreibung
aller in der Datenbank enthaltenen Objekte und
ihrer Beziehungen untereinander (im
Datebankschema), wie sie auf der konzeptionellen
und externen Ebene benötigt werden.
• Sie unterscheiden sich hinsichtlich der Art und
Weise, wie Objekte und Beziehungen zwischen
Objekten dargestellt werden.
• Wie stellen im foldenden beispielhaft das relationale
Datenmodell vor, das weite Verbreitung gefunden
hat.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 3
6
Relationales Datenmodell
• Das relationale Datenmodell basiert auf dem Strukturierungsprinzip „Mengen“ (Tabellen, Relationen).
• Ein Wertebereich (Domain) ist eine (logisch zusammengehörige Menge von Werten, z.B. INTEGER, STRING,
DATUM, {1, ..., 10}.
• Ein Wertebereich kann endliche oder unendlichen
Kardinalität besitzen.
• Eine Relation R ist eine Teilmenge des kartesischen
Produktes von k ≥ 1 Wertebereichen D1, ..., Dk.
• Einzelne Elemente einer Relation heißen Tupel.
• Für R ⊆ D1 x D2 x ... x D k ist k der Grad oder die
Stelligkeit der Relation; alle Tupel in R haben k
Komponenten.
• Relationen kann man als Tabellen verstehen und
darstellen. Die Zeilen einer Tabelle entsprechen den
Tupeln. Die Spalten heißen Attribute und können Namen
tragen.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
7
Relationales Datenmodell (2)
• Ein Relationenschema ist ein k-Tupel (D1, ..., Dk) aus
Bezeichnungen von Wertebereichen.
• Die Komponenten eines Relationenschemas heißen
Attribute; sie können benannt sein: (A1:D1, ..., Ak :Dk).
• Eine minimale Teilmenge der Attribute eines
Relationenschemas, anhand derer alle Tupel einer
(möglichen) Relation unterscheidbar sind, heißt Schlüssel.
• Ein Schema beschreibt alle möglichen Tupel, während eine
Relation die tatsächlichen Tupel enthält.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 4
8
Relationales Datenmodell (3)
Beispiel
Städte
Name
München
Bremen
...
Einwohner
1.211.617
535.058
...
Land
Bayer
Bremen
...
Schema: (Name: STRING, Einwohner: INTEGER, Land: STRING
Relation:
{(München, 1.211.617, Bayern), (Bremen, 535.058, Bremen), ...}
Schlüssel : {Name}
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
9
Relationale Datenbanksprachen
• SQL (Structured Query Language) wurde 1974 im IBM Almaden
Research Laboratory als DDL (Data Definition Language) und DML (Data
Manipulation Language) entwickelt.
• SQL ist heute der Industriestandard für relationale Datenbanksprachen.
• Definition einer Relation
CREATE TABLE <Name>(<Spaltendefinition>{, <Spaltendefinition>})
<Spaltendefinition> ::= <Attributname> <Typ> {<Option>}
<Option> ::= DEFAULT <Ausdruck> | NOT NULL | UNIQUE |
PRIMARY KEY
Beispiel
CREATE TABLE Kunde
( KName CHAR (20) NOT NULL,
KAdresse VAR CHAR (50),
Kto DECIMAL (7) )
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 5
10
Datenbankanfragen
• Die Grundform einer SQL-Anfrage lautet:
SELECT
FROM
[WHERE
[GROUP BY
[HAVING
[ORDER BY
P.Brezany
<Liste von Attributnamen>
<ein oder mehrere Relationennamen>
<Bedingung>]
< Liste von Attributnamen>]
<Bedingung>]
<Liste von Attributnamen]
Institut für Softwarewissenschaften – Universität Wien
11
Relationale Basisoperationen
Es seien 3 Relationen R, S und T mit den Schemata R(A, B, C, D),
S(E, F,G) und T(A, B, C, D) gegeben. Im folgenden werden die
wichstigsten Basisoperationen relationaler Datenbankanfragen
und ihre Formulierung in SQL aufgeführt:
• Vereinigung R ∪ T
SELECT * FROM R UNION SELECT * FROM T
•Differenz R – T
SELECT * FROM R MINUS SELECT * FROM T
•Kartesisches Produkt R x S
SELECT * FROM R, S
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 6
12
Relationale Basisoperationen (2)
•Selektion σB=b(R)
SELECT * FROM R WHERE B = `b´
Diese operation selektiert alle Tupel aus R, die Bedingung B=`b´
erfüllen.
•Projektion πA, C (R)
SELECT DISTINCT A, C FROM R
Die Projektion liefert für alle Tupel aus R die Attribute A und C.
•Join (Verbund)
SELECT * FROM R, S WHERE B θ F
Der Join liefert alle Paare (r,s) mit r ∈ R, s ∈ S und r.B θ s.F.
Dabei bezeichnet θ ein Prädikat auf dem Wertebereich der
Attribute B und F, z.B. Das Prädikat „=„ oder das Prädikat „<„ auf
dem Wertebereich INTEGER.
13
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Relationale Basisoperationen (3)
Die folgenden Beispielanfragen beziehen sich aud ads folgende
Datenbankschema (Schlüssel sind unterstrichen):
Kunde (KName, KAdr, Kto)
Auftrag (KName , Ware, Menge)
Lieferant (LName , LAdr, Ware, Preis)
•Welche Lieferanten liefern Milch oder Mehl?
SELECT DISTINCT LName
FROM Lieferant
WHERE Ware = `Mehl´OR Ware = `Milch´
•Welche Lieferanten liefern irgendetwas, das der Kunde Huber
bestellt hat?
SELECT DISTINCT LName
FROM Lieferant, Auftrag
WHERE Lieferant.Ware = Auftrag.Ware
AND KName = `Huber´
14
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 7
Relationale Basisoperationen (4)
Die Aggregatfunktionen COUNT, MIN, MAX, SUM, AVG etc.
können auf eine Menge von Werten, die als Spalte einer Relation
gegeben ist, angewandt werden.
•Wieviele Lieferanten gibt es?
SELECT COUNT (DISTINCT LName)
FROM Lieferant
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
15
Gruppieren und Sortieren
Die Klausel GROUP BY faßt Mengen von Tupeln mit gleichen
Werten der angegebenen Attribute zu Gruppen zusammen. Die
Ergebnisrelation enthält ein Tupel für jede Gruppe. Die Ergebnisrelation enthält ein Tupel für jede Gruppe. In der SELECT-Klausel
sind dann nur Ausdrücke zugelassen, die einen Wert pro Gruppe
annehmen. Mit Hilfe einerHAVING-Klausel werden Gruppen
anhand der spezifizierten Bedingung ausgewählt. In der Bedingung
dürfen nur Argumente mit einem Wert pro Gruppe auftreten. Die
Operation ORDER BY sortiert die Ergebnisrelation nach einem
oder mehren Attributen auf- oder absteigend (ASC | DESC).
Beispiele – die nächste Folie
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 8
16
Gruppieren und Sortieren (2)
•Gibt die Namen aller Lieferanten aus, die mehr als fünf
Teile liefern.
SELECT LName
FROM Lieferant
GROUP BY Lname
HAVING COUNT (*) > 5
•Erstelle eine alphabetisch sortierte Liste aller Waren, in der
für jede Ware der minimale, maximale und der Durschnittspreis
angegeben ist.
P.Brezany
SELECT Ware, MIN (Preis), MAX (Preis), AVG (Preis)
FROM Lieferant
GROUP BY Ware
ORDER BY Ware
Institut für Softwarewissenschaften – Universität Wien
17
Anfragebearbeitung
Meist gibt es viele verschiedene Möglichkeiten, eine gegebene
SQL-Anfrage zu beantworten, die jeweils durch einen Anfrageplan
Beschrieben werden.
Ein Anfrageplan läßt sich durch einen sogenannten Operatorbaum
Repräsentieren:
•Die Blätter enthalten die auftretenden Relationen.
•Die inneren Knoten repräsentieren die verwendeten Operationen.
Beispiel;
Städte (Sname, SEinw, Land)
Länder (LName, LEinw, Partei)
Nächste Abbildung präsentiert 2 mögliche Anfragepläne für die
Anfrage „Finde alle Namen von Städten in CDU-regierten Ländern“
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 9
18
Zwei Anfragepläne
πSName
πSName
σLand=LName
σLand=LName
σPartei=CDU
Plan A
X
Städte
X
Städte
P.Brezany
Plan B
σPartei=CDU
Länder
Länder
Institut für Softwarewissenschaften – Universität Wien
19
Anfragebearbeitung
Die Anfragebearbeitung erfolgt in 2 Hauptschritten:
• Generierung von Anfrageplänen – Mit Hilfe von heuristischen
Regeln zur Anordnung der Basisoperationen werden
verschiedene alternative Anfragepläne erzeugt.
• Bewertung der Anfragepläne – basierend auf einem
Kostenmodell und statistischen Angaben werden die zu
erwartenden Kosten berechnet.
---------------------------------------------• Effiziente Implementierung der relationalen Basisoperationen ist notwendig. Die Implementierung der Selektion
erfolgt mit Hilfe von Basisanfragen wie z.B. Einer
Punktanfrage (x1, ..., xk), die k Attribute exakt
spezifiziert oder einer Bereichsanfrage ([u1,o1], ...,[uk,ok]),
die k Bereiche mit ui ≤ oi, 1 ≤ i ≤ k spezifiziert.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 10
20
Physische Speicherung der Daten
• Es ist notwendig, Persistenz zu gewährleisten –
dauerhafte Speicherung der Daten.
• Große Datenmengen im Gigabyte-Bereich zu
verwalten – diese anforderungen lassen sich nur mit
Hilfe von Sekundärspeichern erfüllen, wobei in der
Regel Magnetplatten zum Einsatz kommen.
• Eine Magnetplatte ist aufgeteilt in Seiten (Blöcke)
als kleinste Transfereinheit, die zwischen Hauptund Sekundärspeicher übertragen wird.
• Seiten besitzen folgende Eigenschaften:
– Direkter Zugriff auf eine Seite mit gegebener Seitennummer.
– Feste Größe zwischen 128 Byte und 16 Kbyte.
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
21
Indexstrukturen
Um die Basisanfragen wie z.B. Bereichsanfragen effizient
durchführen zu können, setzt die interne Ebene des Datenbanksystems geeignete Datenstrukturen und Speicherungsvervahren (Indexstrukturen) ein.
Indexstrukturen bestehen aus Dateiseiten, die die abzuspeichernden Datensätze enthalten, und aus Directoryseiten, die
zusätzliche Informationen zur Beschreibung des Zugriffs auf
die Daten enthalten.
Directory
...............
Datei mit Datensätzen
Prinzip einer Indexstruktur
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 11
22
Indexstrukturen (2)
Baumbasierte Indexstrukturen nutzen das Konzept der
Suchbäume. Ein binärer Suchbaum ist ein binärer Baum, der
für jeden Knoten folgende Suchbaumeigenschaft erfüllt:
alle Schlüssel im linken Teilbaum sind kleiner, alle Schlüssel im
rechten Teilbaum sind größer als der Schlüssel k im gegebenen
Knoten.
k
<k
>k
linker Teilbaum
rechter Teilbaum
Prinzip eines binären Suchbaums
P.Brezany
Institut für Softwarewissenschaften – Universität Wien
Page 12
23
Herunterladen