Data Warehousing. Relationale Datenbanken. Ulf Leser Wissensmanagement in der Bioinformatik



Ähnliche Dokumente
Data Warehousing und Data Mining

Data Warehousing und Data Mining

Informationsintegration

Informationsintegration

Crashkurs: Relationale Datenbanksysteme

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

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

SQL structured query language

SQL (Structured Query Language) Schemata Datentypen

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

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

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

7. Übung - Datenbanken

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL. Fortgeschrittene Konzepte Auszug

Bibliografische Informationen digitalisiert durch

IV. Datenbankmanagement

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Tag 4 Inhaltsverzeichnis

Sructred Query Language

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

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

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

IBM Informix SQL. Seminarunterlage. Version vom

Oracle 10g Einführung

Tag 4 Inhaltsverzeichnis

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

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

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

Kapitel 3: Datenbanksysteme

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

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

Einführung in SQL Datenbanken bearbeiten

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Datenbanken. Zusammenfassung. Datenbanksysteme

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

Abfragen (Queries, Subqueries)

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

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

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

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

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

Einteilung von Datenbanken

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Views in SQL. 2 Anlegen und Verwenden von Views 2

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Praktische SQL-Befehle

SQL und MySQL. Kristian Köhntopp

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

Einführung in die Informatik II

[ SQL] Wissen, das sich auszahlt

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

Relationales Datenbanksystem Oracle

3. Das Relationale Datenmodell

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

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Wirtschaftsinformatik 2. Tutorium im WS 11/12

Labor 3 - Datenbank mit MySQL

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

5.3 Datenänderung/-zugriff mit SQL (DML)

Referenzielle Integrität SQL

Erstellen einer Datenbank. Datenbankabfragen

Die Grundbegriffe Die Daten Die Informationen

Übersicht über Datenbanken

Unterabfragen (Subqueries)

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

9. Einführung in Datenbanken

Michaela Weiss 01. April Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Ein Ausflug zu ACCESS

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

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

Software-Engineering Einführung

105.3 SQL-Datenverwaltung

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

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

Oracle 10g Einführung

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit ACCESS 2013

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

Oracle 9i Einführung Performance Tuning

Allgemeines zu Datenbanken

Datenbanksysteme 1. Organisation. Prof. Stefan F. Keller. Ausgabe Copyright 2005 HSR SS 2005

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Kapitel 8: Physischer Datenbankentwurf

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Informations- und Wissensmanagement

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

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

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Oracle SQL. Seminarunterlage. Version vom

Transkript:

Data Warehousing Relationale Datenbanken Ulf Leser Wissensmanagement in der Bioinformatik

Inhalt dieser Vorlesung Relationale Datenbanken Relationales Modell und relationale Operatoren SQL Anfragebearbeitung Indexstrukturen ER-Modellierung Normalformen Wer das kennt Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 2

Relationale Datenbank Relationale Datenbank Management Systeme (RDBMS) Serverbasierte Software Ein RDBMS viele RDB Aufgaben Speicherverwaltung Transaktionsmanagement Anfragebearbeitung Userverwaltung Systeme Oracle, DB2, Informix, Sybase, NCR Terada, SQL-Server PostGreSQL, Interbase, mysql, Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 3

Schichtenmodell Externes Schema Externes Schema Externes Schema Sichten Konzeptionelles Schema Logisches Modell (Tabellen, Attribute, Anfragen Internes Schema Physisches Modell (Indexierung, Speicherung) Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 4

Client-Server Konzept JAVA (JDBC) JAVA (JDBC) JAVA (JDBC) Native (SQL*Plus, Native (SQL*Plus, Native OCI) (SQL*Plus, OCI) OCI) Listener Server Sekundärspeicher Andere Datenbank Konsistenz Multiplexing Parallelisierung Lastverteilung Authentifizierung Authorisierung. Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 5

Relationales Datenmodell Repräsentation aller Daten in Tabellen Zeilen/ Rows/ Tupel Tabellenname Attribute Datentypen Mitarbeiter 1 2 5 7 P_ID Vorname Peter Stefanie Petra Andreas Spalten/Attribute Nachname Müller Meier Weger Zwickel Alter 32 34 28 44 Adresse 10101 Berlin 11202 Berlin 80223 München 80443 München Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 6

Tabellen Mitarbeiter p_id vorname nachname alter adresse 1 Peter Müller 32 10101 Berlin 2 Stefanie Meier 34 11202 Berlin 5 Petra Weger 28 80223 München 7 Andreas Zwickel 44 80443 München Projekte Arbeitet_in proj_id p_id Anteil 1 1 50 1 2 80 2 5 100 2 1 50 proj_id name kunde status 5 7 100 1 DWH BMW Akquisition 2 ecommerce Metro Läuft 5 SAP RAG Abgeschlossen Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 7

Operationen Selektion Alle Zeilen von Mitarbeiter mit Alter>40 und Name= Müller Projektion Alle Mitarbeiter-Spalten Vorname, Nachname Kartesisches Produkt Alle Zeilen von Mitarbeiter verknüpft mit jeweils allen Zeilen von Arbeitet_in Komposition von Operationen Die Spalten Nachname und Proj_id aller Zeilen des kartesischen Produkts von Mitarbeiter und Arbeitet_in, bei denen Mitarbeiter.P_ID=Arbeitet_in.P_ID mit Anteil größer als 0.1 Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 8

SQL Grundkonzepte SELECT FROM WHERE M.nachname, A.arbeitet_in mitarbeiter M, arbeitet_in A M.p_id = A.p_id AND A.anteil > 0.1 SQL: Structured Query Language ANSI-SQL, SQL-92, SQL-3 Deklarativer Charakter: Was, nicht wie Vier Grundbefehle: Insert, Update, Delete, Select DDL versus DML Andere Sprachen: Tupel/Domänenkalkül, relationale Algebra, QBE Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 9

Insert Einfügen von Werten in Tabelle Prinzipiell ein Tupel pro Insert INSERT INTO mitarbeiter VALUES (1, Peter, Müller, 38, 10101 Berlin ); INSERT INTO projekte (proj_id, name, kunde) VALUES (1, Stammhaus-BMW, BMW ); Erweiterungen Bulk-Insert INSERT INTO SELECT Insert in mehrere Tabellen: INSERT INTO INTO INTO Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 10

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) Erweiterungen UPSERT / MERGE Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 11

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) Löschen ist eine performancekritische Operation DELETE, DROP TABLE, TRUNCATE Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 12

Select Selektieren von Werten aus mehreren Tabellen SELECT FROM WHERE M.nachname, A.anteil mitarbeiter M, arbeitet_in A M.p_id = A.p_id AND a.anteil > 0.1 SELECT M.nachname, P.name, A.anteil FROM mitarbeiter M, projekte P, arbeitet_in A WHERE M.p_id = A.p_id AND A.proj_id = P.proj_id SELECT M.nachname, A.anteil FROM mitarbeiter M, arbeitet_in A WHERE M.p_id = A.proj_id? Ergebnis ist Tabelle Ausführung ist Sache des RDBMS - Optimierung Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 13

Varianten Subqueries Korreliert oder nicht Umschreiben möglich? Self-Join Begrenzte Rekursion SQL in FROM Klausel In-Line Views Nützlich bei Top-Ten / Sortieranfragen SELECT vorname, nachname FROM mitarbeiter M WHERE EXISTS ( SELECT A.p_id FROM arbeitet_in A WHERE A.p_id = M.p_id SELECT P1.name, P1.name FROM projekte P1, projekte P2 WHERE P1.vorgaenger=p2.proj_id AND P2.status= abgeschlossen SELECT X.nachname, X.status FROM ( SELECT M.nachname, p.status FROM mitarbeiter, projekte, arbeitet_in WHERE M.p_id=A.p_id AND A.proj_id=P.proj_id ) X WHERE X.status= Akquisition Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 14

Weitere Operationen Aggregation und GROUP BY SELECT FROM WHERE GROUP BY proj_id, COUNT(*), SUM(alter)/COUNT(*) mitarbeiter M, arbeitet_in A, projekte P M.p_id=A.p_id AND A.proj_id=P.proj_id P.proj_id? SELECT proj_id, P.name, COUNT(*) FROM mitarbeiter M, arbeitet_in A, projekte P WHERE M.p_id=A.p_id AND A.proj_id=P.proj_id GROUP BY P.proj_id ORDER BY SELECT FROM WHERE ORDER BY P.name, M.nachname mitarbeiter M, arbeitet_in A, projekte P M.p_id=A.p_id AND A.proj_id=P.proj_id P.name, M.nachname Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 15

Views Definition von benamten Queries CREATE VIEW proj_pers AS SELECT P.proj_id, P.name, M.P_id, M.name, M.alter, FROM mitarbeiter M, arbeitet_in A, projekte P WHERE M.p_id=A.p_id AND A.proj_id=P.proj_id Können viel Schreibarbeit sparen SELECT proj_id, COUNT(*), SUM(alter)/COUNT(*) FROM proj_pers GROUP BY proj_id Views werden i.d.r. syntaktisch expandiert Erweiterungen Materialisierte Sichten Rekursive Views Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 16

DDL DML: Data Manipulation Language DDL: Data Definition Language Definition von Tabellen, Indexen, Views, Administration: Tablespaces, Segmente, Rollen Benutzerverwaltung: User, Gruppen, Rechte, CREATE TABLE mitarbeiter ( p_id NUMBER, vorname VARCHAR2(100), nachname VARCHAR2(100), alter NUMBER(2) CHECK (alter>0 AND alter<150), adresse VARCHAR2(1000) ); Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 17

Anfrageübersetzung und -optimierung Prinzipieller Ablauf Parsen der Anfrage (Syntax) Überprüfen der Schemaelemente ( Semantik ) Expandieren von Views Berechnung von Ausführungsplänen Exponentiell viele Wahl des optimalen Ausführungsplans Regelbasierter Optimierer Kostenbasierter Optimierer Ausführung Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 18

Ausführungspläne SELECT FROM WHERE M.nachname, A.anteil mitarbeiter M, arbeitet_in A M.p_id = A.p_id AND a.anteil > 0.1 π(nachname, anteil) π(nachname, anteil) σ(anteil>0.1) NLJ(p_id=p_id) NLJ(p_id=p_id) σ(anteil>0.1) π(p_id,nachname) Arbeitet_in mitarbeiter Arbeitet_in mitarbeiter Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 19

Ausführungspläne Freiheitsgrade Algebraische Anfrageumformung Joinreihenfolge Joinmethode (Nested Loop, Sort-Merge, Hash ) Indexzugriff oder Full-Table-Scan (7% Regel) Operatorreihenfolge Kostenbasierter Optimierung Einbeziehung von Werteverteilungen, Tabellengrößen, Anzahl NULL-Werten, Histogrammen, Selektivität, Heuristische Ziele Minimierung von Zwischenergebnissen Minimierung von Sekundärspeicherzugriff Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 20

Balancierter B und B* Baum Knoten enthalten höchstens 2m Schlüssel Knoten enthalten mindestens m Schlüssel, die Wurzel mindestens 1 Schlüssel Knoten mit x Schlüsseln - x+1 Kinder Balancierter Baum: Alle Blätter haben gleiche Tiefe B*: Daten nur in Blättern K C F O T A B D E G H I J L M N P Q R S U V W Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 21

Indexstrukturen + Sehr schneller Zugriff auf einzelne Elemente (O(log(n)) + Schnelle Bereichsanfragen im B* Baum + Indexierung von Attributkombinationen - Elemente müssen geordnet werden können - B Bäume degenerieren bei vielen Duplikaten - Sequentieller Blockzugriff eventuell schneller (7%) - Zusammengesetzte Indexe duplizieren Tabellen - Indexaktualisierung kostet Zeit - Auch Indexe müssen gesperrt werden Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 22

ER-Modellierung Relationales Modell sehr semantikarm Modellieren in Tabellen und Joins wenig intuitiv Modellierungssprachen: ER, EER, UML, Entity-Relationship Modell Entities Mitarbeiter Projekte Attribute p_id vorname proj_id p_id Beziehungen nachname arbeitet_in kunde Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 23

Übersetzung in relationales Modell Entity Tabelle Attribute Attribute dieser Tabelle Beziehung 1:1 Verschmelzen der Tabelle oder FK-Beziehung 1:n Fremdschlüsselbeziehung m:n Brückentabelle mit zwei Fremdschlüsselbeziehungen professor Student Professor p_id 10 11 name lehrt s_id P_id 1 10 student 2 10 lehrt s_id 1 name 1 2 11 11 2 Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 24

Normalformen Attribute hängen funktional voneinander ab p_id Vorname, Nachname, Alter proj_id Kunde, Status, Schlüsselkandidaten Minimale Menge von Attributen, die alle anderen Attribute einer Tabelle funktional bestimmen Zerlegung nach funktionalen Abhängigkeiten Datenbankentwurf Armstrongkalkül Ziel: Redundanzfreies Schema Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 25

Normalformen (nicht exakt ) Relationenschema R, Primärschlüssel P Erste Normalform (1NF) Alle Attribute von R sind atomar (Adresse!) Zweite Normalform (2NF) R ist in 1NF Kein Attribut A hängt von P P funktional ab Schlecht: lehrt(p_id,s_id,termin,stud_name) Dritte Normalform (3NF) R in 1NF Kein Attribut A hängt von A P ab Schlecht: mitarbeiter(p_id,plz,ort) Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 26

Weitere Themen Transaktionsverarbeitung, ACID Sperrenverwaltung Datenintegrität, Constraints Theorie: Relationenkalkül, algebraische Umformungen, Armstrongkalkül, Backup & Recovery Block- / Buffer- / Speichermanagement, Caching Datenmodellerweiterungen: EER, NF2, objektrelationale und oo Systeme, XML Datenbanken Programmierung: Trigger, PL/SQL, JDBC, Ulf Leser: Data Warehousing, Vorlesung, Sommersemester 2004 27