Crashkurs: Relationale Datenbanksysteme



Ähnliche Dokumente
Data Warehousing. Relationale Datenbanken. Ulf Leser Wissensmanagement in der Bioinformatik

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

3. Das Relationale Datenmodell

SQL (Structured Query Language) Schemata Datentypen

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

7. Übung - Datenbanken

Wiederholung VU Datenmodellierung

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Wiederholung VU Datenmodellierung

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

SQL. Fortgeschrittene Konzepte Auszug

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Informationsintegration I Einführung

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Allgemeines zu Datenbanken

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

IV. Datenbankmanagement

OPERATIONEN AUF EINER DATENBANK

SQL structured query language

Datenbanken. Prof. Dr. Bernhard Schiefer.

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL und MySQL. Kristian Köhntopp

Sructred Query Language

Arbeiten mit einem lokalen PostgreSQL-Server

Schlüssel bei temporalen Daten im relationalen Modell

Objektrelationale Datenbanken

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Informatik 12 Datenbanken SQL-Einführung

Labor 3 - Datenbank mit MySQL

9. Einführung in Datenbanken

Software-Engineering Einführung

Views in SQL. 2 Anlegen und Verwenden von Views 2

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Datenbanken: Relationales Datenbankmodell RDM

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

SQL: statische Integrität

Bibliografische Informationen digitalisiert durch

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Einteilung von Datenbanken

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

105.3 SQL-Datenverwaltung

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Oracle: Abstrakte Datentypen:

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Einführung. Kapitel 1 2 / 508

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Referenzielle Integrität SQL

Übersicht über Datenbanken

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Kapitel 3: Datenbanksysteme

Relationale Datenbanken in der Praxis

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

Datenbanken. Sommersemester 2010 Probeklausur

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

Kapitel 3: Datenbanksysteme

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

3. Übung. Einführung MS Access. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Tag 4 Inhaltsverzeichnis

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Raumbezogene Datenbanken (Spatial Databases)

Fachhochschule Deggendorf Platzziffer:...

Vorlesung Dokumentation und Datenbanken Klausur

Einführung. Informationssystem als Abbild der realen Welt

Wirtschaftsinformatik 2. Tutorium im WS 11/12

Themen. M. Duffner: Datenbanksysteme

MIN oder MAX Bildung per B*Tree Index Hint

Transkript:

Crashkurs: Relationale Datenbanksysteme 3.0.2004 Felix Naumann Überblick Vormittag Motivation Warum sind RDBMS und XML Systeme für die Informationsintegration wichtig? RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 2

Überblick Nachmittag RDBMS Anfragebearbeitung Anfrageoptimierung XML Grundkonzepte XML Schema 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 3 Quellen RDBMS Folien u.a. in Anlehnung an VL Data Warehousing, Prof. Leser VL Einführung in Datenbanken, Prof. Freytag 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 4

Was ist Informationsintegration? Informationsintegration ist die Zusammenführung von Daten und Inhalt verschiedener Quellen zu einer einheitlichen Informationsmenge. Informationsintegration ist die korrekte, vollständige und effiziente Zusammenführung von Daten und Inhalt verschiedener, heterogener Quellen zu einer einheitlichen und strukturierten Informationsmenge zur effektiven Interpretation durch Nutzer und Anwendungen. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 5 Integrierte Informationssysteme Anfrage Integriertes Informationssystem Oracle, DB2 Anwendung Dateisystem Web Service HTML Form Integriertes Info.-system 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 6

Motivation RDBMS Oracle, DB2 Am weitesten verbreitetes Datenbankmodell Gut verstanden, weitgehend erforscht Integriertes Informationssystem Oft selbst ein RDBMS Anfrage Anwendung Dateisystem Web Service HTML Form Integriertes Info.-system 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 7 Motivation XML Anfrage Integriertes Informationssystem Oracle, DB2 Anwendung Dateisystem Web Service HTML Form Integriertes Info.-system Transformation nach XML Input/Output XML Gute XML Werkzeuge (SAX/DOM) Einfache Kommunikation, Interoperabilität 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 8

Was sind Daten? Digitale Repräsentation von Dingen Entitäten Wissen Information in der wirklichen Welt. Kernfragen: Welche Daten speichere ich? Wie speichere ich die Daten? Wie frage ich Daten ab? Wie erledige ich all dies effizient? Unterstützung durch Datenbanksystem 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 9 Datenbanksysteme Bestandteile Datenbank Die Daten selbst + Metadaten (Beschreibung der Daten) Datenbankmanagementsystem (DBMS) Softwarekomponente zum Zugriff auf eine oder mehrere Datenbanken. Server-basiert 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 0

DBMS Beispiele DBMS Oracle, DB2 Informix, Sybase NCR Terada, SQL- Server PostGreSQL, Interbase mysql,... Data Warehouses OLTP OLAP Alle großen Softwaresysteme nutzen ein, mehrere oder sehr viele DBMS SAP Siebel SRS Sogar das geplante Microsoft Windows File- System (Longhorn) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 DBMS Aufgaben Unterstützung des Datenmodells Bereitstellung einer Anfragesprache (DDL & DML) Robustheit Wahrung der Datenintegrität (Konsistenz etc.) Abfangen von Systemfehlern Speicherverwaltung Transaktionsmanagement Auch im Mehr-Benutzer-Betrieb Effiziente Anfragebearbeitung Userverwaltung & Zugangskontrolle 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 2

Schichtenmodell (ANSI/X3/SPARC) Externes Schema Externes Schema Externes Schema Sichten (Anwendungen, Nutzer) Konzeptionelles Schema Logisches Modell (Tabellen, Attribute, Anfragen Internes Schema Physisches Modell (Indexierung, Speicherung) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 3 Schichtenmodell Interne (physische) Sicht Speichermedium (Tape, Festplatte) Speicherort (Zylinder, Block) Konzeptionelle (logische) Sicht Unabhängig von physischer Sicht Definiert durch Datenmodell Stabiler Bezugspunkt für interne und externe Sichten Externe (logische) Sicht Anwendungsprogramme Nur auf die relevanten Daten Enthält Aggregationen und Transformationen 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 4

Schichtenmodell Objekte Interne (physische) Sicht Dateien Konzeptionelle (logische) Sicht Schema Relationen, Typen, Integritätsbedingungen Externe (logische) Sicht Views 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 5 Schichtenmodell Beispiel (Vorschau) Konzeptionelle (logische) Sicht CREATE TABLE Book( ISBN VARCHAR(00) Title VARCHAR(00) Price DECIMAL(6,2)) Externe (logische) Sicht CREATE VIEW cheapbooks AS ( SELECT * FROM Book WHERE Price < 0,00 ) Interne (physische) Sicht CREATE INDEX BookIndex ON Book (ISBN) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 6

Datenbankentwurf. Konzeptioneller Entwurf ER-Modell & ER-Diagramm Relationenmodell... 2. Physischer Entwurf HW und SW abhängig 3. Konzeptioneller Entwurf der externen Anwendungen Konzeptioneller Entwurf ist unabhängig vom physischen Entwurf! 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 7 Überblick RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) Anfragebearbeitung Optimierung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 8

Relationales Modell Auch Relationenmodell Relationales Datenmodell Ziele Daten-Unabhängigkeit Trennung vom hierarchischen und Netzwerk- Modellen 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 9 Relationales Modell Definitionen Domäne Integer, Real, String {rot, grün, blau} Relation (Tabelle) Seien D,..,D n Domänen Relation R ist Teilmenge aus D D 2... D n...vom Grad n Tupel (Zeile) Ein Element aus R Attribut (Spalte) Relationenschema R(A :D,..., A n :D n ) Kardinalität R ist die (aktuelle) Anzahl der Tupel in R 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 20

Relationales Datenmodell Extension Extension einer Relation Die Menge der momentanen Tupel Kann sich durch Operationen ändern Kann als Tabelle dargestellt werden Beispiel Domänen: D = Integer, D 2 = String, D 3 = String, D 4 = Integer Relationenschema: Mitarbeiter(P_ID: D, Vorname: D 2, Nachname: D 3, Alter: D 4 ) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 2 Relationales Datenmodell Zeilen/ Tupel Mitarbeiter P_ID Vorname Peter 2 Stefanie 5 Petra 7 Andreas...... Spalten/Attribute Nachname Alter Müller 32 Meier 34 Weger 28 Zwickel 44...... 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 22

Relationales Datenmodell vs. XML Relationen sind Mengen Keine Duplikate Tupel sind ungeordnet Attributwerte sind Atomar XML ist Graphbasiert Duplikate erlaubt (bzw. nicht definiert) In XML Dokumenten ist Reihenfolge wichtig Elemente sind geschachtelt 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 23 Relationales Modell Definitionen Datenbankschema Menge von Relationenschemata Relationale Datenbank Datenbankschema und alle zu dem Schema gehörenden Extensionen 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 24

Relationales Modell Schlüssel Sei R(A :D,..., A n :D n ) ein Relationenschema und sei S {A,..., A n } S ist Schlüssel, falls Eindeutigkeit: Falls zwei Tupel such unterscheiden, unterscheiden sie auch in den Attributen des Schlüssels. Minimalität: Es gibt kein S S, welches Eindeutigkeit erfüllt. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 25 Relationales Modell Schlüssel P_ID Vorname Nachname Alter Peter Müller 32 2 Stefanie Meier 34 5 Petra Weger 28 7 Andreas Müller 44 Peter Schmidt 32 Schlüssel: {PID}, {Vorname, Nachname} Nicht Schlüssel (z.b.): {Vorname}: Nicht eindeutig {Vorname, Alter}: Nicht eindeutig {PID, Vorname}: Nicht minimal {Vorname, Nachname, Alter}: Nicht minimal 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 26

Relationales Modell Schlüssel Primärschlüssel Ein ausgezeichneter Schlüssel Schlüssel als Meta-Information Kann nicht aus Extension abgelesen werden Wichtige Entwurfsentscheidung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 27 Relationales Modell Fremdschlüssel Seien R(A,..., A n ) und S(B,..., B m ) zwei Relationenschemata. Sei F ein Schlüssel für S Also F = {B d,..., B dl } {B,..., B m } Falls zusätzlich F {A,..., A n }, heißt F Fremdschlüssel von S in R. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 28

Relationales Modell Fremdschlüssel mitarbeiter p_id 2 5 7... projekte proj_id 2 5... vorname Peter Stefanie Petra Andreas... p_id 7... nachname Müller Meier Weger Zwickel... name DWH ecommerce SAP... alter 32 34 28 44... kunde BMW Metro RAG... p_id ist Schlüssel proj_id ist Schlüssel p_id ist Fremdschlüssel 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 29 Relationales Modell Integritätsbedingungen Jede Relation hat mindestens einen Schlüssel. Attribute im Schlüssel dürfen nicht NULL sein. Attributwerte in Domäne Zu jedem Fremdschlüsselwert muss es einen entsprechenden Schlüsselwert geben. Zusicherungen (Assertions) Das Alter von Angestellten ist immer >5. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 30

Relationales Modell Schemata 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 3 Relationales Modell Schemata 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 32

Pause Überblick RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) Anfragebearbeitung Optimierung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 34

Relationale Algebra Anfragesprache 5 Grundoperationen Vereinigung Differenz Kartesisches Produkt Projektion Selektion Abgeleitete Operationen Join, Natural Join, Semi-Join Division Schnittmenge Operationen bilden von Relation zu Relation ab (Abgeschlossenheit). Operationen können zu Ausdrücken zusammengesetzt werden. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 35 Relationale Algebra Vereinigung R S Attribute von R und S Gleiche Anzahl Gleiche Domänen Ergebnis Mengentheoretische Vereinigung gleiche Struktur wie R bzw. S Duplikat-frei R S R + S 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 36

Relationale Algebra Vereinigung Mitarbeiter m p_id vorname Peter 2 Stefanie Employees e nachname Müller Meier alter 32 34 m e p_id vorname Peter 2 Stefanie 5 Petra nachname Müller Meier Weger alter 32 34 28 p_id vorname nachname alter 7 Andreas Zwickel 44 5 Petra Weger 28 7 Andreas Zwickel 44 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 37 Relationale Algebra Vereinigung Jetzt: Kleine Vorschau, warum Informationsintegration so schwierig ist Anderes Schema Null Werte Gleiche IDs Gleiche real-world Objekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 38

Relationale Algebra Vereinigung Mitarbeiter m p_id vorname nachname alter Peter Müller 32 2 Stefanie Meier 34 Employees e p_id vorname nachname age 5 Petra Weger 28 7 Andreas Zwickel 44 Anderes Schema: m e nicht definiert! 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 39 Relationale Algebra Vereinigung Mitarbeiter m p_id vorname nachname alter Null-Werte Peter 7 Andreas Employees e p_id vorname 5 Petra 7 Andreas Müller Zwickel nachname Weger Zwickel 32 34 alter 28 NULL m e p_id vorname Peter 7 Andreas 5 Petra 7 Andreas nachname Müller Zwickel Weger Zwickel alter 32 34 28 NULL 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 40

Relationale Algebra Vereinigung Mitarbeiter m p_id vorname nachname alter Peter Müller 32 7 Stefanie Meier 34 Employees e p_id vorname nachname age 5 Petra Weger 28 7 Andreas Zwickel 44 IDS: Schlüsseleigenschaft gilt nicht mehr! m e p_i d 7 5 7 vorname Peter Stefani Petra e Andreas nachname Müller Meier Weger Zwickel alter 32 34 28 44 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 4 Relationale Algebra Vereinigung Mitarbeiter m p_id vorname Peter 8 Andreas Employees e p_id vorname nachname Müller Zwickel nachname alter 32 44 age m e p_i d 8 5 7 vorname Peter Andreas Petra Andreas nachname Müller Zwickel Weger Zwickel alter 32 44 28 44 5 7 Petra Andreas Weger Zwickel 28 44 IDS: Schlüsseleigenschaft gilt zwar, aber Duplikate! 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 42

Relationale Algebra Differenz R / S Attribute von R und S Gleiche Anzahl Gleiche Domänen Ergebnis Mengentheoretische Differenz gleiche Struktur wie R bzw. S R - S R / S R 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 43 Relationale Algebra Differenz Mitarbeiter m p_id vorname nachname alter Peter Müller 32 7 Andreas Zwickel 34 Employees e Peter Müller 32 p_id vorname nachname alter 7 Andreas Zwickel 34 m / e p_id vorname nachname alter 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 44

Relationale Algebra Kartesisches Produkt R S Attribute Unterschiedliche Anzahl Unterschiedliche Domäne Ergebnis Keine doppelten Attributnamen Alle Kombinationen von Tupeln in R und S Größe: R S Eher von theoretischem Interesse 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 45 Relationale Algebra Kartesisches Produkt mitarbeiter p_id vorname nachname alter projekte proj_id p_id name kunde Peter Müller 32 DWH BMW 2 Stefanie Meier 34 2 ecommerce Metro mitarbeiter x projekte p_id vorname nachname alter proj_id p_id name kunde Peter Müller 32 DWH BMW Peter Müller 32 2 ecommerce Metro 2 Stefanie Meier 34 DWH BMW 2 Stefanie Meier 34 2 ecommerce Metro 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 46

Relationale Algebra Projektion proj (R) Sei R(A,..., A n ) ein Relationenschema. Proj = {A j,..., A jn } {A,..., A n } Ergebnis Hat Struktur A j,..., A jn Es können Duplikate entstehen, die entfernt werden müssen. proj (R) R 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 47 Relationale Algebra Projektion mitarbeiter mitarbeiter p_id 2 vorname Peter Stefanie nachname Müller Meier alter 32 34 p_i d 2 vorname Peter Stefani e nachnam Müller e Müller alte 32r 34 Π vorname,nachname (mitarbeiter) vorname nachname Peter Müller Stefanie Meier Π nachname (mitarbeiter) nachnam Müller e 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 48

Relationale Algebra Selektion σ cond (R) Sei R(A :D,..., A n :D n ) ein Relationenschema cond ist Selektionsbedingung Form: A i op A j oder Ai op const Ai, Aj {A,..., An} Di = Dj, und const Di Op {=,,,,<,>} Boolescher Ausdruck Junktoren: UND, ODER, NICHT Ergebnis Alle Tupel aus, die cond erfüllen Gleiche Struktur wie R σ cond (R) = sf cond R R 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 49 Relationale Algebra Selektion mitarbeiter p_id 2 5 7 vorname Peter Stefani e Petra Andreas nachname Müller Meier Weger Zwickel alter 32 34 28 44 σ alter>33 (mitarbeiter) p_id vorname nachname alter 2 Stefanie Meier 34 7 Andreas Zwickel 44 σ alter>33, nachname = Meier (mitarbeiter) p_id vorname nachname alter 2 Stefanie Meier 34 σ alter= p_id (mitarbeiter) p_id vorname nachname alter 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 50

Relationale Algebra Join R >< cond S Seien R(A :D,..., A n :D n ) und S(B :E,..., B m :E m ) Relationenschemata. cond ist Joinbedingung Wichtigster, schwierigster Form: A i op B j und somit interessantester Op {=,,,,<,>} Operator! D i und E j kompatibel Boolescher Ausdruck Junktoren: UND, ODER, NICHT R >< cond S = σ cond (R X S) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 5 Relationale Algebra Join mitarbeiter p_id vorname Peter 2 Stefanie 5 Petra 7 Andreas nachname Müller Meier Weger Zwickel alter 32 34 28 44 projekte proj_id p_id 2 5 7 name DWH ecommerce SAP kunde BMW Metro RAG mitarbeiter >< p_id = p_id projekte p_id vorname nachname Alter proj_id p_id name kunde Peter Müller 32 DWH BMW Peter Müller 32 2 ecommerce Metro 7 Andreas Zwickel 44 5 7 SAP RAG 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 52

Relationale Algebra Schnittmenge R S Attribute von R und S Gleiche Anzahl Gleiche Domänen Ergebnis Mengentheoretische Schnittmenge gleiche Struktur wie R bzw. S Duplikat-frei R S = R / (R / S) nachdenken! 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 53 Relationale Algebra Schnittmenge Mitarbeiter m p_id vorname nachname alter Peter Müller 32 7 Andreas Zwickel 34 Employees e 7 Andreas Zwickel 34 p_id vorname nachname alter 5 Petra Weger 28 7 Andreas Zwickel 34 m e p_id vorname nachname alter 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 54

Relationale Algebra Weitere Operatoren Join Varianten Semi-Join Natural Join θ-join Outer Join (Left-, Right- und Full-Outer Join) Division 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 55 Relationale Algebra - Anfragen mitarbeiter p_id vorname nachname alter Peter Müller 32 2 5 7 Stefanie Petra Andreas Meier Weger Zwickel 34 28 44 Vor- und Nachname aller Mitarbeiter älter als 40?............ Π vorn., nachn. (σ alter > 40 (mitarbeiter)) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 56

Relationale Algebra - Anfragen mitarbeiter p_id 2 5 7... projekte proj_id 2 5... vorname Peter Stefanie Petra Andreas... p_id 7... DWH SAP nachname Müller Meier Weger Zwickel... name ecommerce... alter 32 34 28 44 BMW RAG... Π m.nachn.,p.name (σ m.p_id = p.p_id (mit. x proj.)) kunde Metro... Nachname und Projektname aller Mitarbeiter Π m.nachn.,p.name (mit. >< m.p_id = p.p_id proj.) Π m.nachn.,p.name (mit. >< proj.) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 57 Überblick RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) Anfragebearbeitung Optimierung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 58

SQL Structured Query Language Erstmals: System R, IBM Almaden ANSI-SQL (89), SQL-2(92), SQL-3(98) Sehr weit verbreitet. Deklarativer Charakter: Was soll das DBMS zeigen? Nicht: Wie soll das DBMS das zu Zeigende finden (prozedural)? Fünf Grundbefehle: Create, Insert, Update, Delete, Select DDL versus DML 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 59 SQL Anfragen Grundform SELECT R i.a, R i2.a 2,, R im.a m FROM R i, R i2,, R im WHERE <cond> Beispiel SELECT Vorname, Nachname FROM mitarbeiter WHERE Alter > 40 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 60

SQL Beispiele SELECT Name Projektion FROM projekt SELECT * Selektion FROM project Kartesisches WHERE Budget < 40.000 Produkt SELECT mitarbeiter.nachname, projekt.name FROM mitarbeiter, projekt SELECT mitarbeiter.nachname, projekt.name FROM mitarbeiter, projekt Join WHERE mitarbeiter.p_id = projekt.p_id 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 6 SQL Beispiele SELECT mitarbeiter.nachname, projekt.name FROM mitarbeiter, projekt WHERE mitarbeiter.p_id = projekt.p_id AND projekt.budget < 40.000 SELECT m.nachname, p.name FROM mitarbeiter m, projekt p Abkürzung WHERE m.p_id = p.p_id SELECT m.nachname FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id Es muss nicht jede AND p.budget < 40.000 Relation im SELECT auftauchen. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 62

SQL Weitere Funktionen DISTINCT ORDER BY UNION, DIFFERENCE, INTERSECTION Schachtelung Aggregation GROUP BY Alle sind für die Informationsintegration wichtig. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 63 SQL Beispiele SELECT DISTINCT mitarbeiter.vorname FROM mitarbeiter, projekt WHERE mitarbeiter.p_id = projekt.p_id AND projekt.budget < 40.000 SELECT m.nachname, p.name FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id ORDER BY p.budget ASC (bzw. DESC) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 64

SQL Beispiele SELECT mitarbeiter.vorname, projekt.name FROM mitarbeiter, projekt WHERE mitarbeiter.p_id = projekt.p_id AND projekt.budget < 40.000 UNION SELECT mitarbeiter.vorname, projekt.name FROM mitarbeiter, projekt WHERE mitarbeiter.p_id = projekt.p_id AND projekt.budget > 00.000 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 65 SQL Beispiele SELECT m.vorname, p.name FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id AND p.partner IN (SELECT company.name FROM company WHERE company.country = DE ) Schachtelung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 66

SQL Beispiele Aggregation AVG, COUNT, SUM, MIN, MAX SELECT AVG(Budget) FROM projekt SELECT SUM(p.Budget), MAX(p.Budget) FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id AND m.nachname = Schmidt SELECT COUNT(*) FROM mitarbeiter 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 67 SQL Beispiele SELECT m.nachname, SUM(p.Budget) FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id GROUP BY m.nachname SELECT m.nachname, AVG(p.Budget) FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id GROUP BY m.nachname HAVING MIN(p.Budget) > 50,000 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 68

SQL DDL DDL: Data Definition Language Definition von Tabellen, Indexen, Views,... Administration: Tablespaces, Segmente, Parameter Benutzerverwaltung: User, Gruppen, Rechte,... CREATE TABLE mitarbeiter ( p_id NUMBER, vorname VARCHAR2(00), nachname VARCHAR2(00), alter NUMBER(2) CHECK (alter>0 AND alter<50), adresse VARCHAR2(000) ); 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 69 DQL DDL Datentypen INTEGER, SMALLINT REAL, DOUBLE, NUMERIC(a,b), DECIMAL(a,b) CHAR(n), VARCHAR(n) BIT DATE, TIME, TIMESTAMP, INTERVAL Attributnamen eindeutig 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 70

Datentypen CHAR(n) n maximal 256 VARCHAR(n) n maximal 4000 Falls n > 254: Kein Group By Order By DISTINCT Mengenoperationen (UNION, DIFFERENCE, INTERSECTION) BLOB Binary large object Max 2GB Binärdaten CLOB Character large object 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 7 SQL Insert Einfügen von Werten in Tabelle Prinzipiell ein Tupel pro Insert: INSERT INTO mitarbeiter VALUES (, Peter, Müller, 38, 00 Berlin ); INSERT INTO projekte (proj_id,p_id,name) VALUES (, 3, BMW ); Erweiterungen Bulk-Insert INSERT INTO... SELECT... Insert in mehrere Tabellen: INSERT INTO... INTO... INTO... 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 72

SQL Update Ändern von Werten in Tabellen Ändert mehrere Werte in einer Tabelle UPDATE projekte SET status = abgebrochen, kunde = kunde -insolvent WHERE kunde= Grundig Typisches Muster UPDATE tabelle SET... = (SELECT... FROM... WHERE) WHERE id in (SELECT... FROM... WHERE) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 73 Delete Löschen von Tupeln in einer Tabellen DELETE FROM projekte WHERE status= abgeschlossen Typisches Muster DELETE FROM projekte WHERE id in (SELECT... FROM... WHERE) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 74

Pause & Übung Überblick RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) Anfragebearbeitung Optimierung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 76

Anfragebearbeitung - Problem Anfragen sind deklarativ. Anfragen müssen in ausführbare (prozedruale) Form transformiert werden. Ziele QEP prozeduraler Query Execution Plan Effizienz Schnell Wenig Ressourcenverbrauch (CPU, I/O, RAM, Bandbreite) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 77 Anfragebearbeitung Prinzipieller Ablauf. Parsen der Anfrage (Syntax) 2. Überprüfen der Elemente (Semantik) 3. Berechnung von Ausführungsplänen Exponentiell viele 4. Wahl des optimalen Ausführungsplans Regelbasierter Optimierer Kostenbasierter Optimierer 5. Anfrageausführung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 78

Abfragebearbeitung Syntax SQL Anfrage wird in interne Darstellung übersetzt: Z.B: Relationale Algebra Syntaktische Korrektheit prüfen 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 79 Anfragebearbeitung Semantik Während der Übersetzung semantische Korrektheit prüfen Existieren die Relationen/Attribute? Korrekte Typen für Vergleiche? Aggregation korrekt?... 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 80

Anfragebearbeitung Beispiel SELECT m.nachname FROM mitarbeiter m, projekt p WHERE m.p_id = p.p_id AND p.budget < 40.000 Π m.nachname (σ m.p_id = p.p_id, p.budget < 40.000 (m x p)) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 8 Anfragebearbeitung Anfragebaum Π m.nachname (σ m.p_id = p.p_id, p.budget < 40.000 (m x p)) π(nachname) σ(p.budget < 40.000) σ(m.p_id = p.p_id) X mitarbeiter projekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 82

Anfragebearbeitung Ausführung Interpretation des Baums als Ausführungsplan. Kartesisches Produkt 2. Zwei Selektionen 3. Projektion Sehr aufwendig! π(nachname) σ(p.budget < 40.000) σ(m.p_id = p.p_id) X mitarbeiter projekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 83 Anfragebearbeitung Transformationsregeln Transformation der internen Darstellung Ohne Semantik zu verändern Zur effizienteren Ausführung Insbesondere: Kleine Zwischenergebnisse Äquivalente Ausdrücke Zwei Ausdrücke der relationalen Algebra heißen äquivalent, falls Gleiche Operanden (= Relationen) Stets gleiche Antwortrelation 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 84

Anfragebearbeitung einige Transformationsregeln Kommutativität m x p = p x m Assoziativität (m x p) x q = m x (p x q) Kaskade von Projektionen Π m.nachname (Π m.vorname, m.nachname m) = Π m.nachname (m) Kaskade von Selektionen σ m.p_id = p.p_id (σ p.budget < 40.000 (m)) = σ m.p_id = p.p_id AND p.budget < 40.000 (m) 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 85 Anfragebearbeitung einige Transformationsregeln Zusammenfassen von Selektion und Kartesischen Produkt zu Join σ m.p_id = p.p_id (m x p) = m >< m.p_id = p.p_id p Vertauschen von Selektion und Projektion Π m.nachname,m (σ m.p_id = p.p_id (m x p)) = Π m.nachname (σ m.p_id = p.p_id (Π m.nachname,m.p_id, p.p_id (m x p))) Vertauschen von Selektion und Join σ p.budget < 40.000 (p >< m.p_id = p.p_id m) = σ p.budget < 40.000 (p) >< m.p_id = p.p_id m Vertauschen von Projektion und Join 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 86

Anfragebearbeitung Beispiel π(nachname) π(nachname) σ(p.budget < 40.000) σ(p.budget < 40.000) σ(m.p_id = p.p_id) X >< m.p_id = p.p_id mitarbeiter projekte mitarbeiter projekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 87 Anfragebearbeitung Beispiel π(nachname) π(nachname) σ(p.budget < 40.000) >< m.p_id = p.p_id >< m.p_id = p.p_id σ(p.budget < 40.000) mitarbeiter projekte mitarbeiter projekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 88

Anfragebearbeitung Beispiel π(nachname) π(nachname) >< m.p_id = p.p_id >< m.p_id = p.p_id π(m.nachname, m.p_id, p.p_id) σ(p.budget < 40.000) σ(p.budget < 40.000) mitarbeiter projekte mitarbeiter projekte 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 89 Überblick RDBMS Relational Database Management System Relationale Datenbanken Relationales Modell (Datenmodell) Relationale Algebra (Datenanfrage) SQL (Anfragesprache) Anfragebearbeitung Optimierung 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 90

Anfragebearbeitung - Optimierung Regelbasierte Optimierung Fester Regelsatz schreibt Transformationen gemäß der genannten Regeln vor. Prioritäten unter den Regeln Nicht hier. Kostenbasierte Optimierung Kostenmodell Transformationen um Kosten zu verkleinern 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 9 Anfragebearbeitung - Optimierung Kostenmodell Kardinalitäten der Relationen Werteverteilungen (Histogramme) Selektivität Selektionen Joins Hardware Speichergröße Bandwidth I/O Zeiten 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 92

Anfragebearbeitung Optimierung π(nachname) π(nachname) [20] σ(p.budget < 40.000) σ(p.budget < 40.000) [20] [990] σ(m.p_id = p.p_id) [00.000] X >< m.p_id = p.p_id [990] mitarbeiter projekte [.000] [00] mitarbeiter projekte [.000] [00] 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 93 Anfragebearbeitung Optimierung π(nachname) π(nachname) σ(p.budget < 40.000) [20] >< m.p_id = p.p_id [20] >< m.p_id = p.p_id [990] σ(p.budget < 40.000) [5] mitarbeiter projekte [.000] [00] mitarbeiter projekte [.000] [00] 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 94

Anfragebearbeitung Optimierung Freiheitsgrade: Algebraische Anfrageumformung Joinreihenfolge Joinmethode Nested Loop, Sort-Merge, Hash... Indexzugriff oder Full-Table-Scan Operatorreihenfolge... 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 95 Anfragebearbeitung Optimierung Joinreihenfolge Join ist i.d.r. teuerster Operator. Optimierung konzentriert sich auf beste Reihenfolge. Bei n Relationen n! Alternativen Aber: Die meisten haben kartesisches Produkt. Viele Algorithmen Dynamische Programmierung (in VL) Bei mehr-prozessor Systemen nicht nur Reihenfolge sondern auch Parallelisierung. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 96

Anfragebearbeitung Optimierung Joinmethode Nested Loops Join Zwei geschachtelte Schleifen Innere und äußere Relation Aufwand: n m Sort Merge Join Sortiere jede Relation Ein mischender Cursor-Durchlauf durch jede Relation Aufwand: n log n + m log m + n + m Günstig, falls Relationen sowieso sortiert, oder bei Index Hash Join 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 97 Anfragebearbeitung Optimierung Nested Loops Äußere vs. Innere Relation FOR EACH r in R FOR EACH s in S IF(r.A = s.a) THEN Output (r,s) Aufwandsunterschied R und S? Ja, wegen Organisation der Tupel als Seiten auf Festplatte... 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 98

Anfragebearbeitung Optimierung R: S:...... P R = Anzahl Seiten R P S = Anzahl Seiten S R außen: P R + T R P S = 8 + 48 6 = 296 S außen: P S + T S P R = 6 + 8 8 = 50 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 99 Literatur RDBMS Principles of Database Systems, Jeffrey Ullman, Computer Science Press, 988 Informationsintegration Principles of Distributed Database Systems M. Tamer Özsu, Patrick Valduriez ISBN: 036597076 Mediators in the Architecture of Future Information Systems"; Gio Wiederhold IEEE Computer, March 992, pages 38-49. 3.0.2004 Felix Naumann, CK Informationssysteme, WS 04/05 00