Data Warehousing. Answering Queries using Views. Anfrageplanung mit materialisierten Views. Materialisierte Views mit Aggregation
|
|
- Kajetan Kohl
- vor 6 Jahren
- Abrufe
Transkript
1 Data Warehousing Answering Queries using Views Materialisierte Views mit Aggregation Anfrageplanung mit materialisierten Views Ulf Leser Wissensmanagement in der Bioinformatik
2 Inhalt dieser Vorlesung Einführung Theorie Answering Queries using Views Materialisierte Views in DWHs Query Rewriting Bedingungen, Joins, Gruppierungen Anfrageoptimierung mit MVs Materialisierte Views in Oracle Ulf Leser: Data Warehousing, Vorlesung, SoSe
3 Beispiel Product product_id product_name pg_id pg_name Time day_id day month_id month year_id year Sales Product_id Day_id Shop_id amount price Localization shop_id shop_name region_id region_name Ulf Leser: Data Warehousing, Vorlesung, SoSe
4 Teil 1. Materialisierte Sichten (MV) Grundidee Viele Anfragen wiederholen sich häufig Bilanzen, Bestellungsplanung, Produktionsplanung Kennzahlenberechnung Viele Anfragen sind Variationen derselben Anfrage Alle Verkäufe nach Produkt, Monat und Region Alle Verkäufe in Region X nach Produkt, Monat und Shop Materialisierter View Einmaliges Berechnen und Speichern der Anfrage Transparente Verwendung in folgenden Anfragen Ulf Leser: Data Warehousing, Vorlesung, SoSe
5 Arbeiten mit einem Cube führt zu... SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND P.shop_id = 159 GROUP BY L.shop_id, P.product_id, S.time_id Roll-Up SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND L.region_name = NRW GROUP BY L.shop_id, P.product_id, S.time_id SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L Slice WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id(+) = L.shop_id AND L.region_name = NRW AND T.year = 1999 GROUP BY L.shop_id, P.product_id, S.time_id Ulf Leser: Data Warehousing, Vorlesung, SoSe
6 Materialisierter View CREATE MATERIALIZED VIEW all_groups AS SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.shop_id, P.product_id, S.time_id SELECT * FROM all_groups A WHERE A.shop_id = 159 OK SELECT * FROM all_groups A WHERE A.region_name = NRW Nein SELECT * FROM all_groups A WHERE A.region_name = NRW AND A.year = 1999 Nein Ulf Leser: Data Warehousing, Vorlesung, SoSe
7 MV Themen und Probleme Wahl von Views zur Materialisierung MVs kosten: Platz und Aktualisierungsaufwand Wahl der optimalen MVs hängt von Workload ab Ziel ist Auswahl der optimale Menge von MV Automatische Aktualisierung von MV Aktualisierung bei Änderungen U.U. schwierig: Aggregate, Joins, Outer-Joins,... Ziel ist inkrementelle Aktualisierung Automatische Verwendung von MV Theorie der Answering Queries using Views Schwierigkeit hängt von Komplexität der Anfrage / Views ab Ziel ist transparente und kostenoptimale Verwendung Ulf Leser: Data Warehousing, Vorlesung, SoSe
8 Teil 2. Answering Queries using Views Gegeben Eine Query q Eine Menge V von materialisierten Views Fragen Kann man q unter Verwendung von V beantworten? Kann man q nur mit V beantworten? Kann man q mit V vollständig beantworten? Ist es günstig, Views aus V zur Beantwortung von q zu verwenden? Welche? Schwierige Probleme Ulf Leser: Data Warehousing, Vorlesung, SoSe
9 Datalog Notation Im Folgenden: Nur konjunktive Anfragen Equi-joins und Bedingungen mit =,<,> zw. Attr. und Wert Kein NOT, EXISTS, GROUP BY,, X>Y,... Schreibweise: Datalog (Prolog, Domänenkalkül) q(x,y):-sales(x,a,b,c),time(a,y,d),d>1999 SELECT Klausel Regelkopf, Exported Variables FROM Klausel Relationen werden zu Prädikaten Attribute werden über Position statt Name adressiert WHERE Klausel Joins werden durch gleiche Variablen angezeigt Bedingungen werden explizit angegeben Gleichheitsbedingungen Attribut-Wert werden durch Konstante in Literal angegeben Ulf Leser: Data Warehousing, Vorlesung, SoSe
10 SQL Datalog SELECT S.price, L.region_name FROM sales S, time T, localization L, product P WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND L.shop_name = KB AND T.year > 1999 SELECT FROM WHERE Joins q(p,rn) :- sales(sid,pid,tid,lid,p,...), time(tid,d,m,y), localization(lid, KB,RN), product(pid,pn,pgn), Y > 1999 Ulf Leser: Data Warehousing, Vorlesung, SoSe
11 Begriffe q(p,rn) :- sales(sid,pid,tid,lid,p,...), time(tid,d,m,y), localization(lid, KB,RN), product(pid,pn,pgn), Y > 1999 q ist der Kopf (oft synonym für ganze Query) Variablen sind in GROSSBUCHSTABEN sales, time,.. sind Prädikate sales(sid,...), time(tid,...) sind Literale Eine Query kann ein Prädikat mehrmals enthalten - mehrere Literale desselben Prädikats Literale sind eindeutig Ulf Leser: Data Warehousing, Vorlesung, SoSe
12 Query Containment Gegeben Query q View v (zunächst nur einer) Anfrageäquivalenz Ist Ergebnis von v identisch dem Ergebnis von q? Kurz: Ist v äquivalent zu q, v q Anfragecontainment ( enthalten in ) Ist das Ergebnis von v im Ergebnis von q enthalten? Kurz: Ist v in q enthalten, v q Rückführung v q, q v v q Definition von äquivalent, enthalten in für Queries? Ulf Leser: Data Warehousing, Vorlesung, SoSe
13 Definition Definition Sei S ein Schema. Seien q 1 und q 2 Anfragen gegen S Eine Instanz von S ist eine beliebige Datenbank D mit Schema S, geschrieben D S Das Ergebnis einer Query q in einer Datenbank D S, geschrieben q(d S ), ist die Menge aller Tupel, die die Ausführung von q in D S ergibt (siehe Domänen / Tupelkalkül) q 1 ist äquivalent zu q 2, geschrieben q 1 q 2, gdw. q 1 (D S ) = q 2 (D S ) für jede mögliche D S q 1 ist enthalten in q 2, geschrieben q 1 q 2, gdw. q 1 (D S ) q 2 (D S ) für jede mögliche D S Semantische Definition: Es zählt das Ergebnis einer Query, nicht die Syntax Ulf Leser: Data Warehousing, Vorlesung, SoSe
14 Beispiele Regelkopf wird hier unterschlagen product(pid,pn,pgid, Wasser ) product(pid,pn,pgid,pgn) product(pid,pn,pgid,pgn), PGN> Wasser sales(sid,pid,...,p,...), P>80, P<150 sales(sid,pid,...,p,...), P>100,P<=150,P<170,P>=150 sales(sid,pid,...,p,...), q product(pid,pn,...) q product(pid,pn,pgid,pgn) localization(sid,sn,rid,rn) product(pid,pn,pgid,pgn) sales(sid,pid,...,p,...), P>100, P<150 sales(sid,pid,...,150,...) sales(sid,pid,...,p,...) (Bei Projektion auf sales) Ulf Leser: Data Warehousing, Vorlesung, SoSe
15 Weitere Beispiele q 1 (B,D) :- path(a,b), path(b,c), path(c,d), path(d,e) q 2 (A,C) :- path(a,b), path(b,c), path(c,d) q 1 q 2 q 1 (C,B) :- path(a,b), path(c,a), path(b,c), path(a,d) q 2 (X,Z) :- path(x,y), path(y,z) q 1 q 2 q 1 (A,C) :- path(a,b), path(b,c) q 2 (A,C) :- threenodepath(a,b,c) q 1 q 2 q 1 (B,D):-path(A,B),path(B,C),path(C,D),path(A,E),path(E,D) q 2 (A,C):-path(A,C),path(C,E),path(E,A),path(A,B),path(D,B)? q 1 q 2 Ulf Leser: Data Warehousing, Vorlesung, SoSe
16 Wie kann man Containment beweisen? Definition: Sei q eine Query: q(e 1,E 2,...,E n ) :-.... Dann ist exp(q)={e 1,E 2,...E n } die Menge der exportierten Variablen von q Definition: Ein Containment Mapping (CM) zwischen zwei Queries q 1, q 2 ist eine Funktion h: sym(q 2 ) a sym(q 1 ) mit Jede Konstante in q 2 wird auf dieselbe Konstante in q 1 abgebildet Jede exportierte Variable in q 2 wird auf eine exportierte Variable in q 1 abgebildet Jedes Literal in q 2 wird auf mindestens ein Literal in q 1 abgebildet Der Kopf von q 2 wird auf den Kopf von q 1 abgebildet Die Bedingungen von q 1 implizieren die Bedingungen von h(q 2 ) Ulf Leser: Data Warehousing, Vorlesung, SoSe
17 CM Query Containment Theorem q 1 q 2 gdw. es ein CM von q 2 nach q 1 gibt Lemma q 1 q 2 gdw. es ein CM von q 2 nach q 1 und ein CM von q 1 nach q 2 gibt Beweise Literatur Richtungen beachten! Containment Mapping von q 2 nach q 1 Bedingungen von q 1 implizieren Bedingungen von q 2 Ulf Leser: Data Warehousing, Vorlesung, SoSe
18 Beispiel q 1 q 2? q 2 (A,C) :- path(a,b), path(b,c), path(c,d) q 1 (B,D) :- path(a,b), path(b,c), path(c,d), path(d,e) Mapping: A A, B B, C C, D D q 2 (A,C) :- path(a,b), path(b,c), path(c,d) q 1 (B,D) :- path(a,b), path(b,c), path(c,d), path(d,e) Mapping: A B, B C, C D, D E Ulf Leser: Data Warehousing, Vorlesung, SoSe
19 Beispiel q 2 (DID,P) :- sales(sid,tid,p,...),time(tid,d,...),d>28,d<31 q 1 (Y,Z) :- sales(x,y,z...),time(y,u,...), U>1,U<30 CM: SID X, TID Y, P Z, D U h(d)=u Aber: U>1 U<30 h(d)>28 h(d)<31 Q 1 Q 2 Ulf Leser: Data Warehousing, Vorlesung, SoSe
20 Wie findet man CMs? q v dann und nur dann, wenn es ein Containment Mapping von v nach q gibt Wie findet man Containment Mappings? Problem ist NP vollständig Prinzip: Alles ausprobieren Ulf Leser: Data Warehousing, Vorlesung, SoSe
21 Suchraum v = a(...),b(...),b(...),c(...) q = b(...),c(...),a(...),b(...),d(...) Lit. nummerieren v = a(...),b 1 (...),b 2 (...),c(...) q = b 1 (...),c(...),a(...),b 2 (...),d(...)... jedes Literal von v muss auf mindestens ein Literal in q gemapped werden... Möglichkeiten: a a b 1 b 1 b 1 b 2 b 2 b 1 b 2 b 2 c c Ulf Leser: Data Warehousing, Vorlesung, SoSe
22 V = a(...), b(...), b(...), c(...) Suchbaum a b 1 b 2 b 1 b 2 b 1 b 2 c c c c Ulf Leser: Data Warehousing, Vorlesung, SoSe
23 Voraussetzungen Definition Seien R, S zwei Literale. R wird dominiert von S bzgl. h, R h S, wenn h ein Containment Mapping von S nach R ist Note: Wenn so ein h existiert, ist es eindeutig Seien h 1,h 2 zwei Containment Mapping. h 1 und h 2 heißen kompatibel, wenn gilt: (x A) h 1 (x B) h 2 A=B Seien h 1,h 2 zwei kompatible C. Mapping. Dann ist h = h 1 h 2 die kanonische Union der beiden Mappings Ulf Leser: Data Warehousing, Vorlesung, SoSe
24 Grobablauf Algorithmus durchläuft den Suchbaum Depth-First und versucht, ein wachsendes CM aufzubauen Sei h das aktuelle Mapping, l das aktuelle Literal aus q 2 Berechne alle von l dominierten Zielliterale aus q 1 Teste für diese Zielliterale (t) Kompatibilität von h und (l t) h und (l t) sind kompatibel Ist l das letzte, noch nicht gemappte Literal?» Ja, terminiere und melde Erfolg h = h (l t) Pushe alle Kinder von t Untersuche nächstes Literal von q 2 h und (l t) sind nicht kompatibel Sind noch Geschwister von t vorhanden?» Ja testen» Nein terminiere und melde Misserfolg Ulf Leser: Data Warehousing, Vorlesung, SoSe
25 Datenstruktur Positionen im Suchbaum wird in einem Stack gespeichert Stackelemente sind Tripel: (X,Y,Z) X: CM bis zu dieser Position (alle Väter/ Vorgängerliterale sind gemapped) Y: Weitere Mappingkandidaten im aktuellen Zweig (= noch nicht untersuchte Geschwister) Z:Literaleaus q 2, die noch nicht gemapped sind (= Noch nicht besuchte Level des Suchbaums) Ulf Leser: Data Warehousing, Vorlesung, SoSe
26 Depth-First Algorithmus Input: Two queries q 1, q 2 ; Output: True, if q 1 q 2, else false; 1: R = new stack(); 2: L = {l l q 2 }; % Alle Literale in q 2 3: l = L.first(); % Schon erledigte Lits von q 2 4: H = {h l q 1 l h l } % Alle von l dominierten in q 2 5: R.push([], H, L\l); % Startpunkt 6: repeat 7: (h,h,l) = R.pop(); % Hier weitermachen 8: if H= then % Keine Kandidaten - aufhören 9: return false; 10: else 11: g = H.first(); 12: R.push(h, H\g, L); % Geschwister später untersuchen 13: if compatible(h,g) then % CM kann erweitert werden 14: if L = then 15: return true; % Blatt erreicht - fertig 16: else 17: l = L.first(); % Innerer Knoten, Kinder pushen 18: H = {h l q 1 l h l }; 19: R.push(h g, H, L\l); 20: end if; 21: end if; 22: end Ulf Leser: if; Data Warehousing, Vorlesung, SoSe : until R = ; % Irgendwo Kand. ausgegangen
27 Beispiel v(a,b) = a(a,c),b(c,b),c(b,a) q(x,y) = a(x,y),b 1 (Y,Z),b 2 (Y,X),c 1 (Z,X),c 2 (X,X) CM bis Position Aktuelles CM Gemappte Lit von v Zielliterale in q A X,C Y A X,C Y, C Y,B Z A X,C Y, C Y,B X A X,C Y,C Y,B X, B Z,A X A X,C Y,C Y,B X, B X,A X a(a,c) a(x,y) a(a,c),b(c,b) a(x,y),b 1 (Y,Z) a(a,c),b(c,b) a(x,y),b 2 (Y,X) a(a,c),b(c,b),c(b,a) a(x,y),b 2 (Y,X),c 1 (Z,X) a(a,c),b(c,b),c(b,a) a(x,y),b 2 (Y,X),c 2 (X,X) Z nicht exportiert B X,B Z nicht komp. Ulf Leser: Data Warehousing, Vorlesung, SoSe
28 Beispielbaum a b 1 b 2 c 1 c 2 c 1 c 2 a a a a b 1 b 2 c 1 a b 2 b 2 c 2 a(a,c) a(x,y) a(a,c),b(c,b) a(x,y),b 2 (Y,X) a(a,c),b(c,b),c(b,a) a(x,y),b 2 (Y,X),c 2 (X,X) a(a,c),b(c,b) a(x,y),b 1 (Y,Z) a(a,c),b(c,b),c(b,a) a(x,y),b 2 (Y,X),c 1 (Z,X) Ulf Leser: Data Warehousing, Vorlesung, SoSe
29 Zusammenfassung Query Containment ist NP-vollständig schon für konjunktive Anfragen Diverse Erweiterungen bekannt Query containment mit UNIONs, Safe Negation, GROUP BY, Rekursion,... I.d.R. noch höhere Komplexitätsklassen Theoretisches Problem mit einigen Anwendungen DWH: Materialisierte Views Informationsintegration: Quellenbeschreibung Mobile Datenbanken: Semantic Caching Ulf Leser: Data Warehousing, Vorlesung, SoSe
30 Teil 3. Anwendung im DWH Grundkonzept Ableitbarkeit und Kompensation Von Bedingungen VonJoins Von Gruppierungen Ulf Leser: Data Warehousing, Vorlesung, SoSe
31 Aufgabe Gegeben Query q View(s) v Gesucht Eine Methode, q mit Hilfe von v zu beantworten Trick Was nicht passt, wird passend gemacht Ulf Leser: Data Warehousing, Vorlesung, SoSe
32 Anwendung Möglichkeit 1: q nicht in v, v nicht in q Kein (erkennbarer) Zusammenhang zwischen Queries v wird nicht für q benutzt Möglichkeit 2: v und q äquivalent v als Ergebnis von q ausgeben Test auf Äquivalenz sehr teuer (2 x Containment) Benutzung nur bei syntaktischer Äquivalenz Ulf Leser: Data Warehousing, Vorlesung, SoSe
33 Anwendung Möglichkeit 3: v in q aber nicht umgekehrt v ist ein partielles Ergebnis für q Jedes Tupel von v ist korrekte Antwort für q, aber v berechnet nicht alle korrekten Antworten Erweiterung von v i.d.r. nicht hilfreich Berechnung von q\v nicht trivial Nur selten einfache (und damit schnelle) Lösungen Keine Verwendung (in Datenbanken), aber: Informationsintegration Datentransformationen Ulf Leser: Data Warehousing, Vorlesung, SoSe
34 Anwendung 2 Möglichkeit 4: q in v aber nicht umgekehrt Ergebnis von q vollständig enthalten in v Nicht alle Tupel von v sind korrekte Ergebnisse für q, aber v berechnet alle Ergebnisse von q Manche Tupel müssen aus Ergebnis entfernt werden Probleme Vollständigkeit: v enthält alle Tupel auch alle Attribute? Ableitbarkeit: Wie findet man Filter F auf v, so das F(v) q? Ulf Leser: Data Warehousing, Vorlesung, SoSe
35 3.1 Vollständigkeit v v q q Query Containment, q v Erweitertes Query Containment Containment macht Aussage über gestreiften Bereich CM Bedingungen müssen erweitert werden Ulf Leser: Data Warehousing, Vorlesung, SoSe
36 Erweitertes CM Definition: Ein erweitertes Containment Mapping (CM) zwischen zwei Queries q 1, q 2 ist eine Funktion h: sym(q 2 ) a sym(q 1 ) mit Jede Konstante in q 2 wird auf dieselbe Konstante in q 1 abgebildet Jede exportierte Variable in q 2 wird auf eine exportierte Variable in q 1 abgebildet Jedes Literal in q 2 wird auf mindestens ein Literal in q 1 abgebildet Der Kopf von q 2 wird auf den Kopf von q 1 abgebildet Die Bedingungen von q 1 implizieren die Bedingungen von h(q 2 ) Das Urbild jeder exportierten Variable in q 1 existiert in h und ist in q 2 exportiert In Zukunft: CM = Erweitertes Containment Mapping Ulf Leser: Data Warehousing, Vorlesung, SoSe
37 3.2 Ableitbarkeit Jetzt hat man alle Attribute, aber zu viele Tupel Wie findet man die richtigen? Ableitbarkeit Wenn q v, dann gilt: q h(v) Gesucht: Formel F: F h(v) q Der allgemeine Fall ist unentscheidbar wegen Unentscheidbarkeit der Prädikatenlogik Deswegen viele Einschränkungen... Ulf Leser: Data Warehousing, Vorlesung, SoSe
38 Ableitbarkeit Annahme: q und v enthalten dieselben Literale und Joins v 1 (P,PN,SN) :- s(sid,pid,lid,p),p(pid,pn),l(lid,sn) v 2 (P,PN,SN) :- s(sid,pid,lid,p),p(pid,pn),l(lid,sn) P>100, P<300, SN= Kreuzberg q 1 (P,PN,SN) :- s(sid,pid,lid,p),p(pid,pn),l(lid,sn), PN= Gerolsteiner q 2 (P,PN,SN) :- s(sid,pid,lid,p),p(pid,pn),l(lid,sn), P>100, P<200, SN= Kreuzberg q 3 (P,PN,SN) :- s(sid,pid,lid,p),p(pid,pn),l(lid,sn), SN= Kreuzberg v 2... q 1 v 1 PN= Gerolsteiner q 1 v 2 P<200 q 2 v 1... q x v 2... q 3 Ulf Leser: Data Warehousing, Vorlesung, SoSe
39 3.2.1 Ableitbarkeit von Bedingungen Annahme: q v Einfachster Filter Es gilt: q h(v) Dann gilt immer: q h(v) q Frage: ist h(v) q berechenbar? Ulf Leser: Data Warehousing, Vorlesung, SoSe
40 Ableitbarkeit von Bedingungen 2 v(a,b) :- r(a,b,c,d),b<40,c>60 q(a,b) :- r(a,b,c,d),b<30,c>70 q aus v ableitbar? Verschärfung B<30 auf Ergebnis von v berechenbar Verschärfung C>70 nicht auf Ergebnis von v berechenbar Funktioniert nur, wenn die notwendigen Variablen von v exportiert werden Ulf Leser: Data Warehousing, Vorlesung, SoSe
41 Ableitbarkeit von Bedingungen 3 Annahmen q v mit CM h: v q Nur einfache Bedingungen Seien B={B 1,B 2,...B n } die Bedingungen aus q (ohne Joinbedingungen) Algorithmus Für alle Bedingungen B i mit h(v) B i Wenn B i Variablen enthält, deren Urbild in v nicht exportiert ist: Abbruch (nicht kompensierbar) Sonst: q h(v) B Komplexität von Test auf O(n) für Bedingungen der Art: X=5, X<5, X>5 O(n 3 ) für Bedingungen der Art: X=Y, X<Y,X>Y Ulf Leser: Data Warehousing, Vorlesung, SoSe
42 3.2.2 Ableitbarkeit von Joins Bisher Literale und Joins stimmen überein Keine Aggregation Ableitbarkeit hängt von Bedingungen ab Nun Keine Bedingungen, Keine Aggregation Mismatch bei Literalen oder Joins Problem Zusätzliche Joins i.d.r. Filter auf Ergebnissen Lossless Joins Ulf Leser: Data Warehousing, Vorlesung, SoSe
43 Beobachtungen Notwendige Bedingungen für q v Alle Prädikate von v müssen in q vorkommen Alle Ebenen im Suchbaum sind nicht-leer v darf nicht mehr Joins enthalten als q Sonst kann es kein CM geben Das ist auch hinreichend, wenn jedes Prädikat nur einmal in q vorkommt Also keine Self-joins Suchbaum degeneriert, Test ist linear Containment ist linear für konjunktive Anfragen ohne Self-joins Ulf Leser: Data Warehousing, Vorlesung, SoSe
44 Beispiele v(p,pn,sn,tid) :- s(sid,pid,lid,tid,p),p(pid,pn),l(lid,sn) q 1 (P,PN,SN,TID) :- s(sid,pid,lid,tid,p),p(pid,pn) q 2 (P,PN,SN,TID) :- s(sid,pid,lid,tid,p),p(pid,pn),l(lid,sn), t(tid,d,m,y) q 3 (P,PN,SN,TID) :- s(sid,pid,lid,tid,p),p(pid,p),l(lid,sn) q 1 v Inner Join mit l(lid,sn) Filter auf v Berechnung der gefilterten Tupel möglich, aber nicht (immer) trivial (Berechnung q 1 \v) q 2 v Inner Join mit t() Filter auf q 2 q 2 v t(tid,d,m,y) q 3 v Join s(...,p),p(pid,p) Filter auf q 3 q 3 v PN=P (σ PN=P (V)) Ulf Leser: Data Warehousing, Vorlesung, SoSe
45 Kompensation Annahme: Sei q v Potentielle Problem q enthält Literale, die v nicht enthält q enthält Joins, die v nicht enthält Theoretisch einfachste Kompensation Wende q auf v an: q q(v(d)) In RDBMS Architektur schwierig zu implementieren Wenn v und q jedes Prädikat nur einmal enthalten Berechne Prädikate P von q, die nicht in v Berechne Joins J von q, die nicht in v Dann: q h(v) P J Ulf Leser: Data Warehousing, Vorlesung, SoSe
46 Kompensation 2 Annahme: Sei q v Also existiert CM h: v q h bildet jedes Literal aus v auf genau ein Literal aus q ab Algorithmus Berechne h Berechne Literale R=(R 1,R 2,...) aus q, die nicht im Bild von h sind Prüfe alle Attribute A R x, R x R, die als Bild in h enthalten sind, d.h., es gibt ein (X A) h Wenn X exp(v): Abbruch (nicht kompensierbarer Join zw q\r und R) Für alle {(X A,Y A)} h Wenn X exp(v) oder Y exp(v): Abbruch (nicht komp. Join in q\r) Sonst: q h(v) R Vorsicht: Es kann mehrere h geben Müssen alle getestet werden Ulf Leser: Data Warehousing, Vorlesung, SoSe
47 Beispiel v(p,pn,sn,tid) :- s(sid,pid,lid,tid,p),p(pid,pn),l(lid,sn) q 2 (P,PN,SN,TID) :- s(sid,pid,lid,tid,p),p(pid,pn),l(lid,sn), t(tid,d,m,y) q 3 (P,PN,SN,TID) :- s(sid,pid,lid,p),p(pid,p),l(lid,sn) q 2 und v R={t} (TID TID) h, aber TID exp(v) Keine zusätzlichen Joins in q 2 q 2 v(p,pn,sn,tid),t(tid,d,m,y) q 3 und v R= (P P),(PN P) h, aber P,PN exp(v) q 3 v(p,pn,sn,tid),p=pn Ulf Leser: Data Warehousing, Vorlesung, SoSe
48 Zusammenfassung bis hier Containment: q v Im allgemeinen schwierig zu zeigen Trivial, wenn q kein Prädikat mehr als einmal enthält Wenn q v Berechnung der Kompensation B für Bedingungen Berechnung der Kompensation J für Joins Wenn B und J existiert, dann: q h(v) B J Ulf Leser: Data Warehousing, Vorlesung, SoSe
49 3.2.3 Ableitbarkeit von Gruppierungen Annahmen q und v haben die Form SELECT G 1, G 2,...,G n, sum(a 1 ),...sum(a n ) FROM... WHERE... GROUP BY G 1, G 2,... G n Ohne Gruppierung / Aggregation gilt: q v Bzw. q h(v) B J G 1,G 2,...,G n sind die Gruppierungsattribute Welche q kann man unter Verwendung eines v (schneller) beantworten? Ulf Leser: Data Warehousing, Vorlesung, SoSe
50 Intuition Sei v SELECT T.year_id, T.month_id, T.day_id, sum(...) FROM Sales S, Time T WHERE... GROUP BY T.year_id, T.month_id, T.day_id Welche Gruppierungen in einer Query q können mit v berechnet werden? Year Month Day SUM Ulf Leser: Data Warehousing, Vorlesung, SoSe
51 Beobachtung In v sind alle Kombinationen von G= {YEAR_ID, MONTH_ID, DAY_ID} mit Summe vorhanden Aufsummierung für jede Untermenge von G möglich SELECT T.year_id, T.month_id, sum(...) FROM v GROUP BY T.year_id, T.month_id SELECT T.year_id, T.day_id, sum(...) FROM v GROUP BY T.year_id, T.day_id Year Month SUM Year Day SUM Ulf Leser: Data Warehousing, Vorlesung, SoSe
52 Orthogonale Gruppierungen Sei v SELECT T.month_id, P.pg_id, R.shop_name, sum(...) FROM Sales S, Time T, Product P, Region R WHERE... GROUP BY T.month_id, P.pg_id, R.shop_name Month PG_ID Shop_ name KB Mitte... KB Mitte... KB Mitte... SUM SELECT P.pg_id, R.shop_name, sum(...) FROM v GROUP BY P.pg_id, R.shop_name SELECT P.month_id, sum(...) FROM v GROUP BY P.month_id Ulf Leser: Data Warehousing, Vorlesung, SoSe
53 Direkte Ableitbarkeit Satz Sei v ein View mit Gruppierungsattributen G v und q eine Query mit Gruppierungsattributen G q und q und v haben äquivalente SPJ Klauseln q ist direkt ableitbar aus v, q 1 v, gdw. G q G v und G q = G v - 1 oder G q = G v \a x a y mit a x G v, a y G v und a y ist funktional abhängig von a x Funktionale Abhängigkeit Foreign Key Constraints Zusicherung wie CREATE DIMENSION... ATTRIBUTE DETERMINES... Ulf Leser: Data Warehousing, Vorlesung, SoSe
54 Direkte Ableitbarkeit Satz q ist ableitbar aus v, q v, gdw. q ist direkt ableitbar aus v oder Es existieren Views v 1...,v n so, dass: q v n... v 1 v Folgerung Jede Untermenge einer Menge von Gruppierungsattributen ist aus dieser ableitbar Ulf Leser: Data Warehousing, Vorlesung, SoSe
55 Ableitbarkeit bei funkt. Abhängigkeiten SELECT T.month_id, P.pg_id, R.shop_name, sum(...) FROM Sales S, Time T, Product P, Region R WHERE... GROUP BY T.month_id, P.pg_id, R.shop_name SELECT T.year_id, P.pg_id, R.shop_name, sum(...) FROM v, Time T WHERE v.month_id = T.month_id GROUP BY T.year_id, P.pg_id, R.shop_name SELECT T.month_id, P.pg_name, R.shop_name FROM v, Product P WHERE v.pg_id = P.pg_id Erfordert Rewriting mit zusätzlichen Joins Eventuell weitere Aggregationen Abh. innerhalb einer Klassifikationssstufe: Keine Agg. Abh. zwischen K-stufen: Agg. entlang der Hierarchie Ulf Leser: Data Warehousing, Vorlesung, SoSe
56 month_id month_id, pg_name Aggregationsgitter () Direkte Ableitbarkeit pg_name shop_name month_id, shop_name pg_name, shop_name month_id, pg_name, shop_name Ableitbarkeit Ulf Leser: Data Warehousing, Vorlesung, SoSe
57 Aggregationsgitter: Verwendung Gegeben eine Menge Z von Queries mit Gruppierung Gesucht: Optimale Menge Z von Views, mit der sich alle Queries berechnen lassen Optimal: Maximale Zeitersparnis Optimal: Minimaler Platzverbrauch/ Aktualisierungszeit Ein(!) mögliches Vorgehen Erstellen des kompletten Aggregationsgitter des Models Markierung der Gruppierungsmengen aus Z Wahl von Z Kleinster gemeinsamer Vorfahr aller Knoten aus Z Hoher Platzverbrauch, da alles aus kleiner Granularität berechnet U.U. hoher Nach-Berechnungsaufwand Menge von Nachkommen, so dass alle Z erreichbar sind U.U. hoher Platzverbrauch, da mehrere Views materialisiert werden Ulf Leser: Data Warehousing, Vorlesung, SoSe
58 4 Klassifikationsstufen () A B C D A,B A,C A,D B,C B,D C,D A,B,C B,C,D A,B,D A,C,D A,B,C,D Ulf Leser: Data Warehousing, Vorlesung, SoSe
59 Auswahlmöglichkeiten Kleinster gemeinsamer Vorfahr Mehrere zur Auswahl Materialisierung mit hoher Granularität Zwei Aggregationen pro Query Menge von Vorfahren Mehrere zur Auswahl Mehrere Materialisierungen zu aktualisieren Eine Aggregation pro Query Ulf Leser: Data Warehousing, Vorlesung, SoSe
60 Platzverbrauch Größe des Aggregationsgitter wächst exponentiell in Anzahl Klassifikationsstufen 2 n mögliche Gruppierungen Identisch zur Anzahl Gruppierungen des CUBE Operators Platzverbrauch einer materialisierten Gruppierung hängt ab von Anzahl Klassifikationsknoten der beteiligten Gruppierungsattribute Durch nicht-speichern der 0-Summen kann Platz gespart werden (... having SUM()!= 0... ) Keine Auswirkung auf abgeleitete Summen Ersparnis abhängig von Füllgrad des Würfels. Bedingt die Wahrscheinlichkeit, dass eine konkrete Kombination von Klassifikationsknoten in der Gruppierung vorhanden ist Ulf Leser: Data Warehousing, Vorlesung, SoSe
61 Viewauswahl Abgeschätzt werden muss Platzverbrauch Aktualisierungskosten für gegebene ETL Prozesse Gewinn für gegebene Workload Verschiedene Algorithmen sind vorgeschlagen worden Optimale Lösungen bilden i.d.r. NP harte/vollständige Probleme Heuristiken (Greedy, Simulated Annealing,...) Literatur Ulf Leser: Data Warehousing, Vorlesung, SoSe
62 Zusammenfassung Ableitbarkeit Feststellung der Ableitbarkeit Im allgemeinsten Fall unentscheidbar NP vollständig schon für sehr eingeschränkte Anfrageklassen (konjunktive Anfragen) Joinableitbarkeit linear für viele Anfragen des täglichen Lebens Gruppierungsableitbarkeit (ohne Having) linear Vorsicht vor nicht-ableitbarer Aggregatfunktionen (z.b: median) Offene Frage Gegeben eine Query q und mehrere materialisierte Views, die zur Ableitung von q dienen können Welcher Views sollen verwendet werden wenn überhaupt? Welcher Ausführungsplan ist am schnellsten? Kostenbasierte Anfrageoptimierung mit MVs Ulf Leser: Data Warehousing, Vorlesung, SoSe
63 Teil 4. Anfrageoptimierung mit MVs ([TCL+00]) Kostenbasierte Anfrageoptimierung Anfrage parsen Aufzählen von Query Execution Plans (QEP) Joinreihenfolge Joinmethode Operatorreihenfolge etc. Bottom-Up Bewertung von Teilplänen Konstruktion vollständiger Pläne aus besten Teilplänen Dynamische Programmierung Ulf Leser: Data Warehousing, Vorlesung, SoSe
64 Anfrageoptimierung mit MVs Wie passen materialisierte Views in dieses Bild? Sketch Materialisierter View ist ein potentieller Teilplan Bei Bottum-Up Konstruktion der Teilpläne auch materialisierte Views berücksichtigen Matching: Gibt es für den aktuellen Teilplan einen / mehrere geeignete MVs? Hinzufügen von Kompensationsoperationen notwendig? Bewertung der Kosten (MV + Kompensation) Auswahl des MV, wenn er zu schnellerer Ausführung führt Ulf Leser: Data Warehousing, Vorlesung, SoSe
65 Beispiel (Snowflakeschema) SELECT Y.year, sum(amount) FROM Sales S, Product P, Days D, Months M, Years Y WHERE P.name= Gerolsteiner AND P.product_id = S.product_id AND T.day_id = D.day_id AND D.month_id = M.id AND M.year_id = Y.id AND Y.year in (1998, 1998, 1999) GROUP BY Y.year CREATE MATERIALIZED VIEW v_time AS SELECT Y.id, Y.year, M.id, M.month, D.id, D.day FROM Year Y, Month M, Day D WHERE Y.id = M.year_id AND M.id = D.month_id Ulf Leser: Data Warehousing, Vorlesung, SoSe
66 Ausführungsplan Query GROUP BY year_id σ year in (1997,1998, 1999) Month Year Day Sales σ p_name= Gerolsteiner' Product Ulf Leser: Data Warehousing, Vorlesung, SoSe
67 Sales Alternativplan GROUP BY year_id Product Year Month Day Ulf Leser: Data Warehousing, Vorlesung, SoSe σ p_name= Gerolsteiner' σ year in (1997,1998, 1999)
68 Alternativen bewerten GROUP BY year_id GROUP BY year_id Sales σ p_name= Gerolsteiner' Product Sales σ p_name= Gerolsteiner' σ year in (...) V_time σ year in (1997,1998, 1999) Product Year Month Day Ulf Leser: Data Warehousing, Vorlesung, SoSe
69 Einschränkungen Matching muss sehr schnell gehen Exponentielle Algorithmen vermeiden I.d.R. werden bei weitem nicht alle Pläne aufgezählt Z.B. nur Left-Deep Joins, nur binäre Joins Gezieltes Suchen nach MVs muss eingebaut werden Matching erkennt nicht alle Fälle Abhängig von Datenbanksystem Beispiele für Einschränkungen Keine Funktionen in Bedingungen Keine Negation Keine Self-joins... Praxis: Test vieler Spezialfälle Ulf Leser: Data Warehousing, Vorlesung, SoSe
70 Teil 5. MVs in Oracle Anlegen von materialisierten Views Aktualisierungstechniken Rewriting mit MV Ulf Leser: Data Warehousing, Vorlesung, SoSe
71 Definition von MVs CREATE MATERIALIZED VIEW product_sales_mv BUILD IMMEDIATE REFRESH FAST ENABLE QUERY REWRITE AS SELECT P.prod_name, SUM(S.amount), COUNT(*) FROM sales S, products P WHERE S.product_id = P.id GROUP BY P.prod_name; Materialisierter View wird als Tabelle angelegt Indexierung, Partitionierung, STORAGE Klauseln, etc. Aktualisierung erfolgt über Trigger und Deltas Query Rewrite muss explizit erlaubt werden Ulf Leser: Data Warehousing, Vorlesung, SoSe
72 Reengineering Materialisierte Views können über existierende Tabellen gelegt werden CREATE MATERIALIZED VIEW sum_sales_tab ON PREBUILT TABLE ENABLE QUERY REWRITE AS... Nachträgliche Benutzung der Rewrite / Aktualisierungsmechanismen Ulf Leser: Data Warehousing, Vorlesung, SoSe
73 Aktualisierungsstrategien Mastertabellen Im MV referenzierte Tabellen Wann wird aktualisiert On Demand Nur bei Aufruf von speziellen Funktionen im Package DBMS_MVIEW On Commit Beim Abschluss von Transaktionen, die mindestens eine Mastertabelle verändern Wie wird aktualisiert COMPLETE Komplette Neuberechnung des Views bei Änderungen an mindestens einer Mastertabelle FAST Inkrementelles Nachführen von Änderungen FORCE Ausführung von FAST, wenn möglich; sonst COMPLETE Ulf Leser: Data Warehousing, Vorlesung, SoSe
74 FAST Refresh Erfordert das explizite Anlegen eines MV Logs CREATE MATERIALIZED VIEW LOG ON sales WITH SEQUENCE, ROWID (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) INCLUDING NEW VALUES; Legt Trigger auf Mastertabellen an MV-Log speichert Deltas von Änderungen FAST Refresh spielt diese Deltas in MV ein Diverse Einschränkungen A materialized view log must be present for each detail table. The rowids of all the detail tables must appear... If there are no outer joins, you... If there are outer joins,... Ulf Leser: Data Warehousing, Vorlesung, SoSe
75 Rewrite Methoden Oracle versucht Rewriting auf mehrere Arten Text Match Full Text Match und Partial Text Match Rein syntaktischer Match Groß-/ Kleinschreibung Leerzeichen Reihenfolge von Bedingungen Keine logische Implikation, kein Mapping, etc. General Query Rewrite Nicht anwendbar bei Complex materialized views Unterschiedliche Methoden ja nach Art des MV Viele Einschränkungen - Dokumentation Ulf Leser: Data Warehousing, Vorlesung, SoSe
76 General Query Rewrite Ulf Leser: Data Warehousing, Vorlesung, SoSe
77 Zusammenfassung MVs Hochkomplexes Thema Ultimative Anfragebeschleunigung möglich keinerlei Berechnung mehr Trade-Off zwischen Performancegewinn Platzbedarf, Aktualisierungskosten Query Rewrite in RDBMS funktioniert mit Heuristiken Ulf Leser: Data Warehousing, Vorlesung, SoSe
78 Literatur [TCL+00] Zaharioudakis, M., et al. (2000). "Answering Complex SQL Queries Using Automatic Summary Tables". SIGMOD [BDD+98] Bello, R. G., et al. (1998). "Materialized Views in ORACLE". 24th VLDB [Leh03], Kapitel 7.2, 8.2 [AHV95] Abiteboul, S., Hull, R. and Vianu, V. (1995). "Foundations of Databases". Reading, Massachusetts, Addison-Wesley. Ulf Leser: Data Warehousing, Vorlesung, SoSe
Data Warehousing. Answering Queries using Views. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Answering Queries using Views Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Materialisierte Sichten Answering Queries Using Views Query Containment Ableitbarkeit
MehrData-Warehouse-Technologien
Data-Warehouse-Technologien Prof. Dr.-Ing. Kai-Uwe Sattler 1 Prof. Dr. Gunter Saake 2 1 TU Ilmenau FG Datenbanken & Informationssysteme 2 Universität Magdeburg Institut für Technische und Betriebliche
MehrIndex- und Zugriffsstrukturen für. Holger Brämer, 05IND-P
Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören
MehrData Warehousing. Ausführung von OLAP Operationen. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Ausführung von OLAP Operationen Ulf Leser Wissensmanagement in der Bioinformatik Variante 1 - Snowflake Year id year Productgroup id pg_name Month Id Month year_id Day Id day month_id
MehrData Warehousing und Data Mining
Data Warehousing und Data Mining Logische Optimierung Ulf Leser Wissensmanagement in der Bioinformatik Inhaltsübersicht Vorlesung Einleitung & Motivation Architektur Modellierung von Daten im DWH Umsetzung
MehrInformationsintegration Local-as-View: LaV. 15.6.2012 Felix Naumann
Informationsintegration Local-as-View: LaV 15.6.2012 Felix Naumann Überblick 2 Motivation Korrespondenzen Übersicht Anfrageplanung Global as View (GaV) Local as View (LaV) Modellierung Anwendungen Anfragebearbeitung
MehrData Warehousing und Data Mining
Data Warehousing und Data Mining Sprachen für OLAP Operationen Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung OLAP Operationen MDX: Multidimensional Expressions SQL Erweiterungen
MehrData Warehousing. Speicherung multidimensionaler Daten. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Speicherung multidimensionaler Daten Ulf Leser Wissensmanagement in der Bioinformatik Beispiel Z.Tag Z.Monat 4.1.1999 B.Abteilung 4 1999 B.Sparte 3.1.1999 3 1999 2.1.1999 1.1.1999 Skoda.Reparatur
MehrOracle 9i Einführung. Performance Tuning. Kurs. Teil 12 Materialized Views. Universität Hannover. Praxisbeispiel. Migration.
Kurs Oracle 9i Einführung Performance Tuning Teil 12 Materialized Views Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 9 Seite 1 von 9 Agenda 1. Einführung Materialized Views 2. 3. Materialized View
MehrData Warehousing und Data Mining
Data Warehousing und Data Mining Speicherung multidimensionaler Daten Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Relationales OLAP (ROLAP) Snowflake-, Star- und Fullfactschema
MehrRepetitorium. Data Warehousing und Data Mining 11/12. Sebastian Wandelt 13./16. Februar 2012
Repetitorium Data Warehousing und Data Mining 11/12 Sebastian Wandelt 13./16. Februar 2012 Inhalt Data Warehousing und Data Mining auf 40 Slides Weder in-, noch exklusiv! Subjektive Zusammenfassung pro
MehrHilbert-Kalkül (Einführung)
Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.
MehrOracle OLAP 11g: Performance für das Oracle Data Warehouse
Oracle OLAP 11g: Performance für das Oracle Data Warehouse Marc Bastien Oracle BI Presales Agenda Performanceprobleme in Oracle DWH: gibt s das überhaupt? Mögliche Gründe und Lösungen
MehrViews in SQL. 2 Anlegen und Verwenden von Views 2
Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrData Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY
Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung
MehrDBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt
DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller
MehrDatenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2015/16. smichel@cs.uni-kl.de
Datenbanksysteme Wintersemester 2015/16 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Verschachtelte (Engl. Nested) Anfragen Wieso und wo gibt es verschachtelte Anfragen? ˆ Unteranfragen
MehrThemenblock: Erstellung eines Cube
Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen
MehrData Warehousing. Relationale Datenbanken. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Relationale Datenbanken Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Relationale Datenbanken Relationales Modell und relationale Operatoren SQL Anfragebearbeitung
MehrUniversität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B
Mehr6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015
6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema
MehrMengenvergleiche: Alle Konten außer das, mit dem größten Saldo.
Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrEinführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.
Themenblock: Erstellung eines Cube Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Praktikum: Data Warehousing und Data Mining Idee Speicherung der Daten in Form von Tabellen
MehrEinleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002)
Betrifft Autör: GROUPING_ID Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem Oracle9i Data Warehousing Guide und den Kursen New Features Oracle9i
MehrData Warehousing und Data Mining
Data Warehousing und Data Mining Einführung in Data Mining Ulf Leser Wissensmanagement in der Bioinformatik Ermittlung von Änderungen Von Quellen zum Cube Änderungen kommen aus Quellen Differential Snapshot
MehrFortgeschrittene OLAP Analysemodelle
Fortgeschrittene OLAP Analysemodelle Jens Kübler Imperfektion und erweiterte Konzepte im Data Warehousing 2 Grundlagen - Datenanalyse Systemmodell Datenmodell Eingaben System Schätzer Datentypen Datenoperationen
MehrEinführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten
Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem
MehrEinleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join
Parsen der Anfrage (SQL) Transformation in eine Standardform (Relationenalgebra) Logische Optimierung Transformation in alternative Zugriffspläne, Physische Optimierung Ausführung des gewählten Zugriffsplans
MehrWissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)
Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick
MehrDynamisches Programmieren - Problemstruktur
Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)
MehrSQL: statische Integrität
SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen
Mehr2. Übungsblatt 3.0 VU Datenmodellierung
2. Übungsblatt 3.0 VU Datenmodellierung 15. Mai 2012 Allgemeines In diesem Übungsteil sollten Sie Aufgabenstellungen aus den Bereich SQL und Normalformentheorie bearbeiten. Lösen Sie die Beispiele eigenständig,
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/
MehrSQL. Fortgeschrittene Konzepte Auszug
SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt
MehrBibliografische Informationen digitalisiert durch http://d-nb.info/995021198
Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen
MehrTU8 Beweismethoden. Daniela Andrade
TU8 Beweismethoden Daniela Andrade daniela.andrade@tum.de 12.12.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;) 2
MehrData Warehousing Grundbegriffe und Problemstellung
Data Warehousing Grundbegriffe und Problemstellung Dr. Andrea Kennel, Trivadis AG, Glattbrugg, Schweiz Andrea.Kennel@trivadis.com Schlüsselworte Data Warehouse, Cube, Data Mart, Bitmap Index, Star Queries,
MehrData Warehousing. DWH Projekte. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing DWH Projekte Ulf Leser Wissensmanagement in der Bioinformatik Inhalt DWH Projekte Spezifika Die kritischen Punkte Warum scheitern DWH Projekte? Ulf Leser: Data Warehousing, Vorlesung,
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
MehrVorlesung 4 BETWEENNESS CENTRALITY
Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/
MehrKapitel 3: Datenbanksysteme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:
MehrDesign Theorie für relationale Datenbanken
Design Theorie für relationale Datenbanken Design von relationalen Datenbanken alternativen Datenabhängigkeiten Normalisierung Ziel: automatisches Datenbankdesign IX-1 Schlechtes Datenbank Design Frage:
MehrEinführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
MehrDatenintegration & Datenherkunft Varianten der Data Provenance
Datenintegration & Datenherkunft Varianten der Data Provenance Wintersemester 2010/11 Melanie Herschel melanie.herschel@uni-tuebingen.de Lehrstuhl für Datenbanksysteme, Universität Tübingen 1 Arten des
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrAuswahl von Klauseln und Atomen in Prolog
5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten
Mehr5. Datendefinition in SQL
Datendefinition 5. Datendefinition in SQL Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle
MehrKapitel 7: Formaler Datenbankentwurf
7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)
Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der
MehrData Warehousing. Sommersemester 2005. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Sommersemester 2005 Ulf Leser Wissensmanagement in der Bioinformatik ... Der typische Walmart Kaufagent verwendet täglich mächtige Data Mining Werkzeuge, um die Daten der 300 Terabyte
MehrIT-Symposium 2008 05.06.2008
Selftuning Database Ein Traum oder Wirklichkeit Ralf Durben Oracle Deutschland GmbH www.hp-user-society.de 1 Die Arbeitswelt des Gestern, heute und morgen Früher Ein für wenige Datenbanken
MehrEinführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)
Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data
MehrKlausur zur Vorlesung Datenbanksysteme I
Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe
MehrSQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:
SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In
MehrSQL/OLAP und Multidimensionalität in der Lehre
SQL/OLAP und Multidimensionalität in der Lehre Vortrag auf der DOAG 2008 Prof. Dr. Reinhold von Schwerin Hochschule Ulm, Fakultät für Informatik 1. Dezember 2008 Prof. Dr. Reinhold von Schwerin SQL/OLAP
MehrVorlesung Datenbankmanagementsysteme
Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
MehrACCESS SQL ACCESS SQL
ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache
MehrLogic in a Nutshell. Christian Liguda
Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung
MehrDatawarehouses, Materialized Views, Materialized View Logs, Query Rewrite
Betrifft DWH1: Materialized Views für Data-Warehouses Art der Info Technische Info, Oracle8i Quelle Aus dem AI8-EF Kurs der Trivadis (Enterprise Features) Autor Andri Kisseleff (andri.kisseleff@trivadis.com)
MehrStefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie
Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann
MehrSQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler
SQL-Vertiefung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung
MehrLogik für Informatiker
Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül
MehrWeb-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme
Handout zur Unit Web-Technologien SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische
MehrDatenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.
Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme
Mehr5.8 Bibliotheken für PostgreSQL
5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9
MehrSQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin
SQL Wiederholung Datenbanktechnologien Prof. Dr. Ingo Claÿen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Verbunde Aggregation und Gruppierung Unterabfragen Verbunde Inner-Join Nur
Mehrbersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter
bersicht Niels Schršter EinfŸhrung GROUP BY Roll UpÔs Kreuztabellen Cubes Datenbank Ansammlung von Tabellen, die einen ãausschnitt der WeltÒ fÿr eine Benutzergruppe beschreiben. Sie beschreiben die funktionalen
MehrDie Klassen P und NP. Dr. Eva Richter. 29. Juni 2012
Die Klassen P und NP Dr. Eva Richter 29. Juni 2012 1 / 35 Die Klasse P P = DTIME(Pol) Klasse der Probleme, die sich von DTM in polynomieller Zeit lösen lassen nach Dogma die praktikablen Probleme beim
MehrEinführung in SQL Datenbanken bearbeiten
Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben
MehrDatenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der
MehrObjektorientierte Datenbanken
OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer
MehrKapitel MK:IV. IV. Modellieren mit Constraints
Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren
Mehr3.17 Zugriffskontrolle
3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man
MehrDatenbanken 1 Sommersemester 2014/
Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken 1 Sommersemester
MehrKapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023
Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten
MehrMarcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press
Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
Mehr1.5 lineare Gleichungssysteme
1.5 lineare Gleichungssysteme Inhaltsverzeichnis 1 Was ist ein lineares Gleichungssystem mit zwei Gleichungen und zwei Unbekannten? 2 2 Wie lösen wir ein lineares Gleichungssystem mit zwei Unbekannten?
Mehr5 Logische Programmierung
5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen
MehrSWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
MehrBinäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
MehrData Warehousing. Architektur Komponenten Prozesse. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Architektur Komponenten Prozesse Ulf Leser Wissensmanagement in der Bioinformatik Zusammenfassung letzte Vorlesung Aufbau eines Data Warehouse Redundante, transformierte Datenhaltung Asynchrone
MehrAnalytische Funktionen erfolgreich eingesetzt
Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische
Mehrmit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007
6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle
Mehr23.1 Constraint-Netze
Grundlagen der Künstlichen Intelligenz 1. April 2015 2. Constraint-Satisfaction-Probleme: Constraint-Netze Grundlagen der Künstlichen Intelligenz 2. Constraint-Satisfaction-Probleme: Constraint-Netze Malte
Mehrabgeschlossen unter,,,, R,
Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrDBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme
Handout zur Vorlesung Vorlesung DBSP Unit Datenbanken SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: kratzke@fh-luebeck.de
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Mehr