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