Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen

Größe: px
Ab Seite anzeigen:

Download "Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen"

Transkript

1 Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Winter 2009/10 Melanie Herschel Willhelm-Schickard-Institut für Informatik 1

2 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 2 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

3 Überblick Neben der Sortierung gibt es noch weitere Operatoren, die für die Evaluation einer relationalen Anfrage relevant sind (z.b.selektion, Projektion, Join). Für einen dieser logischen Operatoren kann es verschiedene Implementierungsvarianten, sogenannte physische Operatoren geben. Physische Operatoren nutzen gezielt physische Eigenschaften ihrer Eingabe und des Systemsstatus aus: Indizes über die Eingabedaten, Sortierung der Eingabedaten, Größe der Eingabedaten, Verfügbarer Speicher im Bufferpool, Bufferpool Ersetzungsstrategieen,... In diesem Kapitel besprechen wir physische Operatoren und analysieren deren Kosten (approximiert durch Anzahl I/O Operationen). Die Wahl der optimalen Variante ist Aufgabe des Anfrageoptimierers (siehe Kapitel 9). 3

4 Überblick Klassifizierung der Algorithmen Die Algorithmen für verschiedenste Operatoren basieren auf drei wesentlichen Techniken, nach denen wir die Algorithmen klassifizieren können. 1.Indexing Ist eine Selektion oder eine Join-Bedingung angegeben, können wir Indizes verwenden um nur die Tupel zu betrachten, die die Bedingung erfüllen. 2.Iteration Betrachte (alle) Tupel einer Eingabetabelle nacheinander, um die Operation durchzuführen. Existiert ein Index, der alle nötigen Attribute enthält, reicht es, alle Dateneinträge zu scannen (index-only-evaluation). 3.Partitionierung Indem wir Tupel nach einem bestimmten Attribut partitionieren, können wir oft eine Operation in mehrere, günstigere Operationen aufteilen. Sortieren und Hashing sind zwei vielseitig genutzte Partitionierungstechniken. 4

5 Überblick Zugriffspfad (Access Path) Ein Zugriffspfad (access path) beschreibt eine Methode, Daten einer Eingabetabelle abzurufen. Ein Zugriffspfad besteht entweder (1) aus einem Datei-Scan oder (2) aus einem Index und einer zusätzlichen Selektionsbedingung (matching selection condition). Der Input jedes relationalen Operators besteht aus einer oder mehrerer Tabellen, und der verwendete Zugriffspfad repräsentiert einen wesentlichen Anteil der Gesamtkosten des Operators. Beispiele für Zugriffspfade Gegeben folgende Anfrage: SELECT pnr, gehalt FROM Angestellte WHERE pnr = 50 AND gehalt > 5000 Existiert ein Hash-Index über pnr, so besteht der Zugriffspfad aus dem Hash-Index und der Bedingung pnr = 50. Da eine weitere Bedingung existiert, die nicht durch den Index überprüft werden kann (gehalt > 5000) müssen wir die durch den Index ermittelten Tupel überprürfen. 5

6 Überblick Selektivität eines Zugriffspfads Die Selektivität eines Zugriffspfads ist die Anzahl Seiten (Index-Seiten + Daten-Seiten), die gelesen werden wenn wir den entsprechenden Zugriffspfad verwenden. Der selektivste Zugriffspfad ist der Zugriffspfad mit der geringsten Selektivität, also der Zugriffspfad, der am wenigsten Seiten lesen muss. Beispiele für die Selektivität eines Zugriffspfades Gegeben folgende Anfrage: SELECT gehalt FROM Angestellte WHERE gehalt > 5000 Angenommen, es existiert ein B+ Baumindex über <gehalt>. Zugriffspfad 1: Index. Angenommen, die Höhe des Index ist 3, so benötigen wir 3 Seitenzugriffe, ehe wir das erste Tupel finden und eventuelle mehr, um den Gehaltsbereich zu ermitteln.! Selektivität zwischen 3 und 3 + N - 1 (N Anzahl Seiten des Sequence Sets) Zugriffspfad 2: Scan der Datendatei bestehend aus M Seiten! Selektivität M >> N Zugriffspfad 3: Scan des Sequence Sets! N 6

7 Überblick Durchgängiges Beispiel Matrosen und Hotelbuchungen Beispielschema: Sailors(sid:integer, sname:string, rating:integer, age:real) Jedes Tupel der Sailors-Tabelle ist 50 Bytes lang. Eine Seite kann 80 Sailors-Tupel fassen. Die Sailors-Tabelle benötigt 500 Seiten insgesamt. Reservations(sid:integer, bid:integer, day:dates, rname:string) Jedes Tupel der Reservations Tabelle ist 40 Bytes lang. Eine Seite kann 100 Reservations-Tupel fassen. Die Reservations-Tabelle benötigt 1000 Seiten insgesamt. 7

8 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 8 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

9 Selektion Überblick der Methoden für eine einfache Seletionsbedingung Einfache Selektionsanfrage: Eine Bedingung der Form!R.attr op Konstante, wobei op einer der Vergleichsoperatoren =, <, >,!, " ist. Beispiele einer Anfrage mit einfacher Selektion SELECT * FROM Reservations R WHERE R.rname = Joe Überblick der physischen Operatoren für einfache Selektion. Einfache Selektionsanfrage Ohne Index (Iterative Impl.) Mit Index (Indexing Impl.) Unsortierte Daten Sortierte Daten B+ Index Hash-Index 9

10 Einfache Selektion Ohne Index Unsortierte Datei, bestehend aus M Seiten Wir müssen die gesamten Eingabedaten scannen, um die Selektion prüfen zu können. Dazu lesen wir jedes Tupel ein, prüfen die Bedingung und falls diese zutrifft, wird das Tupel in die Ausgabe geschrieben. Sortierte Datei, bestehend aus M Seiten Wir können die Sortierung verwenden, um mittels Binärsuche das erste Tupel zu finden, das der Selektion entspricht!kosten: O(log2M) Ab diesem Tupel können wir die Eingabedaten scannen, bis die Bedingung nicht mehr erfüllt ist! Kosten: Zwischen 0 und M, je nach Anzahl Tupel, die dem Selektionskriterium entsprechen. Kosten der Binärsuche für Beispieanfrage SELECT * FROM Reservations R WHERE R.rname = Joe log21000! 10 I/Os 10

11 Einfache Selektion B+ Index Existiert ein clustered B+ Index, so bietet dieser den besten Zugriffspfad, wenn der Vergleichsoperator op nicht Gleichheit ist (hier sind Hash-basierte Indizes besser). Ist der B+ Index unclustered, so hängen die Kosten von der Anzahl Tupel ab, die dem Selektionskriterium entsprechen. Verwendung des Index: Verwende den Index, um erstes Tupel zu finden, das Selektionskriterium entspricht. Kosten: 2-3 I/Os (Höhe des Baumes). Finde alle weiteren Tupel durch Scan der Dateneinträge im Index, bis Selektionskriterium nicht mehr erfüllt ist. Verwendet der Index die Dateneintragsvariante (1), so entsprechen die Dateneinträge bereits den Tupeln, die wir ausgeben. Verwendet der Index Dateneintragsvarianten (2) oder (3), müssen wir die Tupel aus der Daten-Datei lesen! im schlimmsten Fall ein Disk I/O pro Tupel, das ausgegeben wird. Sortieren wir relevante Dateneinträge nach ihrer page-id, können diese I/O Kosten reduziert werden. 11

12 Einfache Selektion B+ Index Beispiel Selektion der Form rname < C% 10% der Reservations-Tabelle entsprechen Selektionskriterium! Entspricht 10,000 Tupeln auf 100 Seiten. Gibt es einen clustered B+ Index mit Schlüssel <rname>, können wir alle Tupel der Ausgabe in nur ca. 100 I/O Operationen ermitteln. Verwenden wir einen unclustered B+ Index mit Schlüssel <rname>, benötigen wir im worst case 10,000 I/O Operationen. Sortieren wir nach page-ids, so stellen wir sicher, dass keine Seite mehrfach gelesen wird, allerdings sind die Daten vermutlich über mehr als 100 Seiten sortiert.! Die Verwendung eines unclustered Index für Bereichsanfragen kann teurer sein als einfacher Scan der Datei (in unserem Fall nur 1,000 Seiten). 12

13 Einfache Selektion Hash-Index Existiert ein Hash-Index und entspricht op der Gleichheit (=) verwendet der optimale Zugriffspfad den Hash-Index. Die Kosten hierfür sind 1-2 I/O Operationen um den entsprechenden Bucket zu ermitteln, plus die Kosten, die qualifizierenden Tupel aus der Daten-Datei zu ermitteln. Hier hängen die Kosten von der Anzahl qualifizierender Tupel ab. Kosten der Selektion bei vorhandenem Hash-Index SELECT * FROM Reservations R WHERE R.rname = Joe Annahme: unclustered Hash-Index über <rname>. 100 Tupel entsprechen dem Selektionskriterium. Bufferpool mit 10 Seiten. Kosten, korrekten Bucket zu ermitteln: 1-2 I/Os. Kosten, Tupel zu ermitteln: I/Os, je nach Verteilung der Daten (sind die 100 Tupel auf 5 Seiten verteilt, dann 5 I/O). 13

14 Allgemeine Selektion Conjunctive Normal Form (CNF) Bisher: einfache Prädikate der Form!R.attr op Konstante(R). Jetzt: komplexere Prädikate, die Terme mit boolschen Operatoren AND (!) und OR (") verbinden. Dabei hat ein Term die Form Attribut op Konstante oder Attribut1 op Attribut2. Beispiel einer komplexen Anfrage SELECT * FROM Reservations R WHERE R.rname = Joe AND R.bid = 5!R.name= Joe! R.bid=5(R) Conjunctive Normal Form (CNF) Eine Conjunct ist eine Oder-Verknüpfung einzelner Terme. conjunct = t1 " t2 "... " tn Ein Prädikat in CNF ist eine Und-Verknüpfung von Conjuncts. cnf = conjunct1! conjunct2!...! conjunctn 14

15 Allgemeine Selektion Konjunktive Anfragen (ohne Disjunktion) Ein Peädikat, das keinem Index entspricht kann ggf. in kleinere Prädikate aufgeteilt werden, die existierenden Indizes entsprechen. Beispiel Gegeben sei eine Selektion!p!q(R) für die es keinen entsprechenden Index gibt, jedoch für p und q einzeln schon.!der Optimieren kann entscheiden, mehrerer Indizes zu verwenden und die Ergebnisse zusammenzuführen, indem wir die Schnittmenge der jeweiligen Ergebnismengen bilden (Gleichheit zweier Tupel über rid bestimmt, daher # rid ). R!p!q Anfrageplan 1 kein Index verwendbar R! p! q # rid Anfrageplan 2 2 Indizes verwendbar 15

16 Allgemeine Selektion Konjunktive Anfragen (ohne Disjunktion) Verwendungen mehrerer Indizes gegeben eine Anfrage ohne Disjunktion Gegeben: Selektionskriterium day < 8/9/2002! bid = 5! sid = 3 Ein Hash-Index über <bid, sid> und ein B+ Baumindex über <day>. 16

17 Allgemeine Selektion Mit Disjunktion Nehmen wir an, eines der Conjuncts ist eine Disjunktion von Termen.! Benötigt mindestens einer der Terme einen Datei-Scan, so benötigt die separate Evaluation dieses Conjuncts einen Datei-Scan. Existiert für jeden Term ein Index, so können wir das Prädikat wieder aufteilen und die Ergebnisse der Teilanfragen mittels $ rid wiedervereinen. Beispiel Gegeben sei eine Selektion!p"q(R) für die es keinen entsprechenden Index gibt, jedoch für p und q einzeln schon. R!p"q Anfrageplan 1 kein Index verwendbar R! p! q $ rid Anfrageplan 2 2 Indizes verwendbar 17

18 Allgemeine Selektion Mit Disjunktion Verwendungen mehrerer Indizes gegeben eine Anfrage mit Disjunktion Gegeben: Selektionskriterium day < 8/9/2002 " rname = Joe Ein Hash-Index über <rname> und ein B+ Baumindex über <day>. 18

19 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 20 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

20 Projektion Allgemeiner Ansatz Projektion (#l) verändert jedes Tupel der Eingaberelation, indem es alle Attribute bis auf die in der Liste l angegebenen Attribute entfernt. Allgemeiner Ansatz zur Implementierung der Projektion, gegeben #A,B A B C (1) Entferne nichtprojezierte Attribute (hier C) A B 1 2 (2) Entferne ggf. doppelte Tupel (SQL: DISTINCT) A B Partitionierungsalgorithmen: Projektion basierend auf Sortierung Projektion basierend auf Hashing 21

21 Projektion Basierend auf Sortierung Projektion mit Sortierung, Variante 1 1. Scan Eingabetabelle R und produziere eine Menge von Tupeln, die nur die gewünschten Attribute enthält. 2. Sortiere diese Menge von Tupeln in lexikographischer Reihenfolge. Der Sortierschlüssel besteht dabei aus allen Attributen. 3. Scan des sortierten Ergebnisses. Dabei vergleichen wir adjazente Tupel und verwerfen Duplikate. Kosten mit temporärer Tabelle nach jedem Schritt Einlesen von R: M Schreiben temp. Tabelle: T = O(M) Sortierung: O(T log T) Duplikateliminierung: T (Anzahl gelesener Seiten) Kosten insgesamt: O(M log M) Beispielhafte Kostenrechnung: Projektion über Reservations. Reservations-Tabelle hat 1,000 Seiten! M = 1,000 I/Os Jedes Tupel ist nach entfernen von Attributen nur 10 Byte groß!t = 250 I/Os Gegeben 20 Seiten im Buffer, können wir Daten in 2 Passes sortieren! 2 * 2 * 250 = 1000 I/Os Scan von 250 Seiten!250 I/Os Kosten insgesamt: 2500 I/Os 22

22 Projektion Basierend auf Sortierung Projektion mit Sortierung, Variante 2 1. Führe Pass 0 des externen Sortieralgorithmus (siehe Kapitel 6) aus. Bevor Tupel dabei zu einem Run hinzugefügt werden, entferne überflüssige Attribute. 2. Wir entfernen Duplikate während der für die Sortierung verbleibenden Merge-Passes. Kosten mit temporärer Tabelle nach jedem Schritt Kosten für Pass 0: M + T Kosten der Merge- Passes: T * #Merge Passes Beispielhafte Kostenrechnung: Projektion über Reservations. Reservations-Tabelle hat 1,000 Seiten, nach Projektion nur 250. Kosten für Pass 0:! M + T = 1,250 I/Os Gegeben 20 Seiten im Buffer, können wir Daten in einem Merge-Pass sortieren! 250 I/Os Kosten insgesamt: M + T * #Merge-Passes Kosten insgesamt: 1500 I/Os 23

23 Projektion Basierend auf Hashing Hat das DBMS für die Ausführung von "l(r) eine große Anzahl, sagen wir B Seiten, im Buffer zur Verfügung, kann hashbasierte Projektion in betracht gezogen werden. 2 Phasen (1) Partitionierung (2) Entfernung von Duplikaten Hashbasierte Projektion "l(r) - Partitionierungsphase 1.Alloziiere B Seiten des Buffers. Eine dieser B Seiten ist der Input-Buffer, während die verbleibenden B - 1 Seiten als Hash-Buckets genutzt werden. 2.Lese die Datei R seitenweise in den Input-Buffer. Für jedes eingelesene Tupel t, entferne alle Attribute, die nicht in der Liste l auftauchen. 3.Für jedes Tupel, berechne h1(t) = h(t) mod (B - 1), wobei h(t) auf allen Attributen in l basiert. Speichere t im Hash-Bucket h1(t) (schreibe Bucket auf Platte wenn dieser voll ist). 24

24 Projektion Basierend auf Hashing 1... h B-1 Eingabedatei (auf Festplatte) Input-Buffer Buffer Pool Hash-Buckets Partitionen (auf Festplatte) Nach der Partitionierung ist das Entfernen von Duplikaten nur noch innerhalb einer Partition, also eines Buckets nötig, denn zwei identische Records werden garantiert auf den gleichen Bucket gehasht. t = t h1(t) = h1(t ) 25

25 Projektion Basierend auf Hashing Hashbasierte Projektion "l(r) - Entfernen von Duplikaten 1.Lese jede Partition seitenweise ein. Wenn möglich, bearbeite mehrere Partitionen parallel. 2.Auf jedes Record wenden wir eine Hashfunktion h2 $ h1 an, die wieder alle Attribute in l berücksichtigt. 3.Kollidieren zwei Records unter Anwendung von h2, so überprüfe, of t = t. Wenn ja, entferne t. 4.Wurde die gesamte Partition eingelesen, werden alle Hash-Buckets der Ausgabedatei angehängt. Was passiert bei großen Partitionen? 26

26 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 27 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

27 Join Operator The Join Operator ( ) The join operator p is actually a short-hand for a combination of cross product and selection σ p. Der Join Operator fasst ein Kreuzprodukt (%) und eine anschließende Selektion (!p) zusammen. Wir betrachten zunächst nur Equijoin, d. h. p beinhaltet nur Bedingungen mit Gleichheit als Vergleichsoperator. Join vs. Cartesian product R p S R p S Join-Implementierungen, die wir besprechen: Nested Loops Join (NPJ) R 3 Varianten: Naive NLJ, Block NLJ, Index NLJ Beispiel einer Join Anfrage SELECT * FROM Reservations σ p R, Sailors S WHERE R.sid = S.sid One way to implement p is to follow this equivalence: Sort-Merge Join σ p S 1 Enumerate and concatenate all records in the cross product Hash-Join of r 1 andarchitektur r 2. und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen R S 28 Evalu Relationa Tors Relationa Engines Operator Se Selection Selectivity Conjunctive Disjunctive Projection Join ( ) Nested Loo Block Neste Index Neste Sort-Merge Hash Join Operator Volcano Iter

28 Naive Nested Loops Join Der Naive Nested Loops Join implementiert die Kombination des Kreuzprodukts (%) und der anschließenden Selektion (!p). Naiver Nested Loops Join function nljoin(r, S, p) foreach Tupel r & R do foreach Tupel s & S do /* r,s beschreibt die Konkatenation von r und s */ if r,s erfüllt p then Anzahl der zu verarbeitenden Tupel!R.sid = S.sid (z.b. 100,000 Tupel) % (4,000,000,000 Tupel) Gebe r,s aus ; Reservations 100,000 Tupel Sailors 40,000 Tupel Sei NR und NS die Anzahl Seiten von R und S, und sei pr und ps die Anzahl Tupel pro Seite in R und S. Die Anzahl Leseoperationen für den naiven NLJ ist NR + pr %NR %NS (Scan von R und Lesen aller Seiten von S für jedes Tupel in R). 29

29 Naive Nested Loops Join I/O Kosten Kosten für den naiven Ansatz Der naive NLJ benötigt nur drei freie Seiten im Buffer (zwei Input-Buffer und ein Output-Buffer). Die Anzahl Leseoperationen ist enorm: In unserem Beispiel ist pr = 100, ps = 80, NR = 1000, NS = 500.! % 1000 % 500 = 5 % 10 7 Leseoperationen. Nehmen wir an, eine Leseoperation benötigt 10ms, so müssten wir 140 Stunden warten, bis alle Daten gelesen wären! (Kosten für Schreiboperationen ignorieren wir in diesem Kapitel). Kosten, wenn kleinere Relation der äußeren Relation entspricht 30

30 Naive Nested Loops Join Verbesserte Variante Verbesserung des naiven NLJ Seitenweises einlesen der beiden Tabellen R und S. In diesem Fall wir jede Seite der äußeren Relation R nur einmal gelesen. Jede Seite der inneren Relation S wird nur einmal pro Seite in R gelesen).!anzahl Leseoperationen verringert sich auf NR + NR %NS seitenweiser Nested Loops Join function nljoin++(r, S, p) foreach Seite Pr & R do foreach Seite Ps & S do nljoin(pr, PS, p); I/O Kosten nach Verbesserung und kleineren Tabelle als äußere Tabelle NS = 500 NR = 1000! % 1000 = %10 5! 1.4 Stunden Laufzeit 31

31 Blocked Nested Loops Join Grundidee (bei genügend Bufferplatz, um R in den Buffer zu lesen) Wir verwenden mehr als nur drei Seiten im Buffer. Hat Buffer B freie Seiten, so verwenden wir B - 2 Seiten zum Lesen von R, einen Input-Buffer zum Lesen von S, und einen Output-Buffer. Wir lesen R in den Buffer ein. Wir lesen S seitenweise ein. Ist PS die im Input-Buffer von S liegende Seite, so schreiben wir!p (NR # PS) seitenweise in den Output-Buffer. Passt R in B - 2 Seiten, so benötigen wir nur NR + NS I/O Operationen. Allgemeiner Ansatz (R passt nicht komplett in den Buffer, der B Seiten zur Verfügung stellt) Lese Blöcke der Größe B - 2 der äußeren Relation R ein. Sei BR ein Block von R. Wir können nun!p ( BR # PS) seitenweise in den Output schreiben. Insgesamt benötigen wir somit nur NR + NS % NR / (B - 2) I/O Operationen. 32

32 Blocked Nested Loops Join Effiziente Auswertung der Selektion Das Selektionsprädikat verwendet = als Vergleichsoperator. Hash-Tabelle kann uns bei der Auswertung helfen. Wir nutzen die B - 2 Seiten, die Blöcke von R lesen, um eine Hash-Tabelle dieses Blocks aufzubauen. Die Hashtabelle braucht ein wenig mehr Speicherplatz als der Block selbst, daher können wir pro Block weniger Tupel einlesen. Insgesamt lohnt sich jedoch der Aufbau einer Hash-Tabelle in den meisten Fällen.... Hash-Tabelle für Block BR... ( B - 2 Seiten)... Eingabedatei (auf Festplatte) Input-Buffer (zum Scannen von S ) Buffer Pool Output-Buffer Partitionen (auf Festplatte) 33

33 Blocked Nested Loops Join Beispiel I/O Kosten nach Verbesserung mit kleineren Tabelle als äußere Tabelle Anfrage SELECT * FROM Reservations R, Sailors S WHERE R.sid = S.sid Annahmen Sei Reservations R die äußere Relation (und S demnach die innere Relation) B - 2 reicht aus, um eine Hash-Tabelle für 100 Seiten der Reservations-Relation zu speichern. I/O Kosten NR + NS % NR / (B - 2) = %10 = 6 %10 3 I/Os! Laufzeit ca. 1 Minute 34

34 Index Nested Loops Join Bisher haben alle Varianten des NLJ das Kreuzprodukt enumeriert. Der Index NLJ vermeidet dies, indem er nur Tupel der äußeren Relation R mit Tupeln der gleichen Partition in der inneren Relation S kombiniert. Dies ist durch einen Index über die Join-Attribute der inneren Relation S möglich. Wir verwenden im Folgenden die Notation ri für das i-te Attribut der Relation R. Index Nested Loops Join function indexnljoin(r, S, p) foreach Tupel r & R do foreach Tupel s & S where ri == sj do Gebe r,s aus ; Hier verwenden wir den Index über <sj>, um nur die Tupel zu identifizieren, wo sj = ri 35

35 Index Nested Loops Join I/O Kosten Es ist weiterhin ein Scan von R nötig, der das Lesen von NR Seiten benötigt. Die Kosten, die entsprechenden Tupel aus S zu lesen, hängen von der Art des Index ab, den wir verwenden. Für jedes Tupel der Relation R setzten sich die Kosten wie folgt zusammen: (1)Finden entsprechender Dateneinträge in der Index-Datei B+ Index über <sj>: Kosten entsprechen Höhe des Baumes (2-4 I/Os) Hash-Index über <sj>: Kosten entsprechen Anzahl I/Os, um richtigen Bucket zu finden (1-2 I/Os) (2)Finden der korrekten Tupel in der Daten-Datei Clustered Index: typischerweise 1 I/O pro Tupel r & R Unclustered Index: bis zu 1 I/O pro Tuple s & S 36

36 Index Nested Loops Join Beispiel I/O Kosten des Index Nesteld Loops Join Anfrage SELECT * FROM Reservations R, Sailors S WHERE R.sid = S.sid Annahmen Unclustered Hash-basierter Index über Reserves.sid, der Dateneintragsvariante (2) nutzt. I/O Kosten Sailors ist die äußere Relation! Scan von NS = 500 I/Os nötig. Insgesamt haben wir 80 x 500 = 40,000 Sailor-Tupel. Für jeden Sailor können wir in 1-2 I/Os entsprechende Reservations bestimmen (im Schnitt typischerweise 1.2 I/Os).! Bisherige Kosten: ,000 x 1.2 = 48,500 I/Os. Zusätzlich müssen wir Tupel, die den Daten-Enträgen im Index entsprechen, bestimmen. Nehmen wir an, die Anzahl Reservations pro Sailor sei konstant! 2.5 Reservations pro Sailor. Im schlimmsten Fall müssen wir daher für jedes der 2.5 Reservations-Tupel 1 I/O durchführen.! Zusätzliche Kosten: 40,000 x 2.5 = 100,000 I/Os! Kosten insgesamt: 48, ,000 = 148,400 I/Os (ca. 25 Minuten). 37

37 Nested Loops Join Zusammenfassung NLJ-Variante Theoretische Kosten Beispielkosten Naive NLJ NR + pr %NR %NS 140 Stunden Improved Naive NLJ NR + NR %NS 1.4 Stunden Blocked NLJ NR + NS % NR / (B - 2) 1 Minute Index NLJ Je nach Index 25 Minuten (worst case) 38

38 Sort-Merge Join Grundidee: sortiere R und S nach Join-Attributen und nutze die Sortierung, um nur Tupel, die der Join-Bedingung entsprechen, zu enumerieren. Nur nützlich bei Equijoin. Beispiel zur Funktionsweise von Sort-Merge Join (Join-Bedingung ist Reservations.sid = Sailor.sid) Nach sid sortiert Nach sid sortiert sid sname rating age sid bid day rname 22 dustin yuppy lubber < == 28! Ausgabe 31 == 31! Ausgabe x 2 x /04/96 guppy /03/96 yuppy /10/96 dustin 36 lubber guppy rusty Tr 36 < < == 58! Ausgabe x 1 Ts /12/96 lubber /11/96 lubber /12/96 dustin Sailors Reservations 39

39 Sort-Merge Join Algorithmus Sort-Merge Join function smjoin(r, S, Ri = Sj ) if R ist nicht nach Attribut i sortiert then sortiere R nach i; if S ist nicht nach Attribut j sortiert then sortiere S nach j; Tr = erstes Tupel in R; Ts = erstes Tupel in S; Gs = erstes Tupel in S; while Tr # eof and Gs # eof do begin while Tri < Gsj do Tr = nächstes Tupel in R nach Tr; //setze Scan von R fort while Tri > Gsj do Gs = nächstes Tupel in S nach Gs; //setze Scan von S fort Ts = Gs; //nötig wenn Tri # Gsj while Tri == Gsj do begin Ts = Gs; //Reset des Partitionsscan while Tsj == Tri do begin Gebe Tr, Ts aus; Ts = nächstes Tupel in S nach Ts; end Tr = nächstes Tupel in R nach Tr; end Gs = Ts; //Initialisiere die Suche der nächsten Partition in S end 40

40 Sort-Merge Join I/O Kosten Im Allgemeinen müssen wir Tupel einer inneren Partition so oft scannen, wie es Tupel der gleichen Partition in der äußeren Relation gibt. Kosten zum Sortieren von R uns S sind jeweis O(Nr log Nr) und O(Ns log Ns) Kosten der Mergephase: Nr + Ns, wenn keine der S-Partitionen mehrmals gescannt werden muss. Der Worst Case tritt ein, wenn wir S so oft scannen müssen, wie es Tupel in R gibt. Dies tritt nur dann auf, wenn alle Werte beider Join-Attribute identisch sind. Dieser Fall ist äußerst selten. In der Praxis sind die Kosten der Mergephase oft Nr + Ns, da dieser Fall eintritt sobald eines der Join-Attribute eindeutige Werte enthält. Dies ist z.b. bei den sehr häufig auftretenden Joins über Primärschlüssel und Fremdschlüssel der Fall. 41

41 Hash Join 1. Partitioning phase: Partitioniert R und S mittels der gleichen Hashfunktion h. 2. Matching phase:vergleicht nur Tuple der i-ten Partition von R mit der i-ten Partition von S. Beispiel Partitioning Phase bei B = 4 verfügbaren Seiten im Buffer Pool Sailors sid Reservations sid Eingabedateien (auf Festplatte) Input-Buffer h Buffer Pool mit B freien Seiten B - 1 Hash-Buckets Sailors_Partitions Partition sid_list 0 {22, 28} 1 {31, 36} 2 {44, 58} Reservations_Partitions Partition sid_list 0 {28, 28} 1 {31, 31, 31} 2 {58} Hashtabellen für R und S 42

42 Hash Join 1. Partitioning phase: Partitioniert R und S mittels der gleichen Hashfunktion h 2. Matching phase:vergleicht nur Tuple der i-ten Partition von R mit der i-ten Partition von S. Beispiel Matching Phase bei B = 4 verfügbaren Seiten im Buffer Pool Sailors_Partitions Partition sid_list {22, 28} 0 {22, 28} 1 {31, 36} 2 {44, 58} Reservations_Partitions Partition sid_list 0 {28, 28} 1 {31, 31, 31} 2 {58} Hash-Tabelle für Partition PRi ( B - 2 Seiten, mit h2 $ h gehasht) {28, 28} Input-Buffer (zum Scannen einer Partition PSi ) Output-Buffer sids... sidr Join Part. 0 Join Part. 1 Join Part. 2 Buffer Pool mit B freien Seiten Hashtabellen für R und S Join-Ergebnis 43

43 Hash Join I/O Kosten 1. Partitioning Phase benötigt einmaliges Lesen und Schreiben von R und S! 2 (NR + NS) 2. Matching Phase Nehmen wir an, dass jede Partition in den zur Verfügung stehenden Hauptspeicher passt, d.h., es tritt kein partition overflow auf. In diesem Fall muss jede Partition (von R wie auch von S) nur einmal gelesen werden.! (NR + NS)!Gesamtkosten: 3 (NR + NS) Kosten anhand unseres Sailor-Reservation Beispiels 44

44 Hash Join Algorithmus Hash Join function hjoin(r, S, Ri = Sj ) //Partition Phase foreach Tuple r & R do Lese r und schreibe h(ri) in Output-Buffer; //Output auf Platte geschrieben wenn Buffer voll foreach tuple s & S do Lese s und schreibe h(sj) in Output-Buffer; //Output auf Platte geschrieben wenn Buffer voll //Matching Phase for l = 1,..., k do begin //initialisiere Hashtabelle im Hauptspeicher für R-Partition foreach Tupel r & Partition PRl do Lese r und füge es in Hauptspeicher-Hashtabelle mittels h2(ri) ein; //Scan der entsprechenden S-Partition und Ausgabe matchender Tupel foreach Tupel s & Partition PSl do begin Lese s und identifiziere matchende R-Partition mittels h2(sj); Für alle Tupelpaare, für die sj == ri gilt, gebe r,s aus; end end 45

45 Hash Join Speicheranforderungen Annahme: jede Partition passt in den zur Verfügung stehenden Hauptspeicher. Maximieren der Anzahl Partitionen, um Chancen zu erhöhen, dass eine Partition in den Hauptspeicher passt. In der Partitioning Phase von R (und S) benötigen wir für k Partitionen k Input- Buffer! Gegeben B Buffer Seiten, ist die maximale Anzahl Partitionen k = B - 1. Angenommen, jede Partition ist gleich groß, so ist die Größe einer Partition von R gleich PR = NR / (B - 1). Eine Hashtabelle für eine Partition der Größe PR benötigt ein wenig mehr Speicherplatz. Sei f der Faktor (genannt fudge factor), um den die Hashtabelle größer ist. Während der Matching Phase soll jede Partition von R in den dafür vorgesehenen Hauptspeicher passen. Daher benötigen wir einen Input-Buffer der Größe B > (f % NR) / (B - 1). Zusätzlich benötigen wir noch einen Input-Buffer für S und einen Output-Buffer. Aus diesen Betrachtungen ergibt sich, dass B > $(f % NR) 46

46 Hash Join Handhabung von Partition Overflows Tatsächlich ist es unwahrscheinlich,,dass alle Partitionen gleich groß sind. Daher benötigen wir in Wirklichkeit B > (f % PMax,R) + 2, wobei PMax,R die Anzahl Seiten der größten Partition beschreibt. Was passiert, wenn nicht genügend Hauptspeicher zur Verfügung steht und somit ein Partition Overflow eintritt?!ähnlich wie bei hashbasierter Projektion können wir rekursiv Hashfunktionen zum Partitionieren aufrufen, bis die Partitionen klein genug sind. 47

47 Hash Join vs. Block Nested Loops Join Fall 1: Die komplette Hashtabelle der kleineren Relation R passt in den Hauptspeicher! die I/O Kosten beider Algorithmen sind identisch (NR + NS). Fall 2: Sind beide Relationen R und S größer als ihre entsprechenden Input-Buffer, unterscheiden sich beide Algorithmen wie folgt. Block NLJ benötigt für jeden Block von R einen Scan über S. Hash Join benötigt für jede Partition von R einen Scan über die entsprechende Partition von S. Partitionen von S PR0 PS0 PS1 PS2 PS3 verglichene Partitionen bei Block NLJ Partitionen von R PR1 PR2 verglichene Partitionen bei Hash Join PR3 48

48 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 49 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

49 Mengen-Operatoren Wir betrachten die Mengenoperatoren R # S, R # S, R $ S, R % S. Wir nehmen im Folgenden an, dass R und S selbst Mengen sind, die keine Duplikate enthalten. Aus Implementierungssicht sind die Schnittmenge (#) und das Kreuzprodukt (%) Spezialfälle von Join. Die Schnittmenge entspricht einem Equijoin über alle Attribute von R und S. Das Kreuzprodukt entspricht einem Join ohne Joinbedingung p. Für die Vereinigung ($) und die Mengendifferenz (&) ist das wesentliche Konzept die Duplikateliminierung. Wie wir bei der Implementierung der Projektion bereits gesehen haben, können wir dies mittels Sortierung oder Hashing bewerkstelligen. 50

50 Vereinigung und Mengendifferenz Basierend auf Sortierung Vereinigung 1.Sortiere R, indem der Sortierschlüssel aus allen Attributen der Relation R besteht. 2.Sortiere S analog. 3.Scanne die sortierten Relationen R und S parallel und führe diese zusammen indem Duplikate entfernt werden. Verbesserung durch zusammenlegen der Sortierungs- und Merge-Phase Mengendifferenz 1.Sortiere R und S (Schritt 1 und 2 der Vereinigung). 2.Scanne die sortierten Relationen R und S parallel und gebe nur Tupel von R aus, die nicht in S vorkommen. 51

51 Vereinigung und Mengendifferenz Basierend auf Hashing Vereinigung 1.Partitioniere R und S basierend auf einer Hashfunktion h. 2.Für jede Partition l a.baue eine Hashtabelle im Hauptspeicher für Sl auf. Verwende dabei eine Hashfunktion h2 & h. b.scanne Rl. Für jedes Tupel, suche nach entsprechendem Tupel in Sl. Ist das Tupel in der Hashtabelle, verwerfe es, ansonsten füge es der Tabelle hinzu. c.schreibe die Hashtabelle auf die Festplatte und leere den Buffer für die nächste Iteration. Mengendifferenz 1.Partitioniere R und S basierend auf einer Hashfunktion h. 2.Für jede Partition l a.baue eine Hashtabelle im Hauptspeicher für Sl auf. Verwende dabei eine Hashfunktion h2 & h. b.scanne Rl. Für jedes Tupel, suche nach entsprechenden Tupeln in Sl. Ist das Tupel nicht in der Hashtabelle, so schreibe es in die Ausgabe. 52

52 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 53 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

53 Aggregation Um eine Aggregation zu berechnen, wird die Eingabetabelle R gescannt und während des Scans wird laufende Information gespeichert um das Endergebnis zu berechnen! O(NR) I/Os Wird zusätzlich gruppiert (GROUP BY Klausel), gibt es drei Varianten. Variante 1: Sortierung von R und Speichern der laufenden Information für jede Gruppe.! O(NR log NR) I/Os Variante 2: Hashing über Gruppierungs- Attribut! O(NR) I/Os Variante 3: Verwendung eines B+ Index, wenn index-only-evaluation möglich! O(LR) I/Os, wobei LR Anzahl Seiten auf der Blattebene des Index. Aggregations- Operator SUM AVG COUNT MIN MAX Beispiel einer Anfrage mit Aggregation SELECT AVG(S.age) FROM Sailors S Beispiel einer Anfrage mit Aggregation und Gruppierung SELECT AVG(S.age) FROM Sailors S GROUP BY Rating Laufende Information, die beim Scan gespeichert wird Summe gelesener Werte Summe und Anzahl gelesener Werte Anzahl gelesener Werte Kleinster gelesener Wert Größter gelesener Wert 54

54 Kapitel 7 Evaluation Relationaler Operatoren Überblick Selektion Projektion Join Mengen-Operatoren Aggregation Operator Pipelining 55 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

55 Bearbeitung allgemeiner Anfragen Bisher haben wir angenommen, dass jeder Datenbankoperator Dateinen als Eingabe liest und Dateien als Ausgabe schreibt. π σ π file 1 file 2 file 3 file n Die Verwendung des Sekundärspeichers als Kommunikationskanal führt zu häufigem Disk I/O. Zusätzlich führt dies zu langen Antwortzeiten, denn Ein Operator kann keine Berechnungen beginnen, bevor der vorangehende Operator nicht alle Eingabedaten verarbeitet hat und die Ausgabedatei nicht vollständig geschrieben (materialisiert) wurde. Effektiv werden alle Operatoren hintereinander ausgeführt. 56

56 Pipelined Evaluation Alternativ kann ein Operator sein Ergebnis direkt an den nächsten Operator weitergeben (ohne dieses in einer Datei zu materialisieren).! Operator muss nicht auf die Fertigstellung einer Datei warten, er kann stattdessen sofort Tupel einlesen und seine Ausgabe sofort weiter propagieren.! Ergebnisse können so früh wie möglich berechnet werden, d.h. sobald genügend Eingabedaten vorhanden sind um Ausgabetupel zu berechnen. Diese Idee wird als Pipelining bezeichnet. Die Granularität der weitergegebenen Information kann die Laufzeit beeinflussen: Kleinere Informationseinheiten verringern die Antwortzeit des Systems. Größere Informationseinheiten können die Effektivität von Caches verbessern. Kommerzielle Systeme verwenden in der Regel Tupel als Informationseinheit. 57

57 Das Volcano Iterator Modell Das Interface zur Operatorevaluation in RDBMS wird open-next-closeinterface oder Volcano Iterator Modell genannt. Jeder Operator implementiert die folgenden Funktionen: open(): Initialisiere den internen Status eines Operators. next(): Berechne das nächste Ergebnistupel und gebe dieses aus. Wurde bereits das gesamte Ergebnis berechnet, gebe eof zurück. close(): Gebe alle alloziierten Resourcen wieder frei (typischerweise nachdem alle Tuple verarbeitet wurden). Jeder Bearbeitungsstatus wird in einer Operartorinstanz selbst gespeichert. Operatoren müssen Tupel via next() produzieren, dann pausieren, und später ihre Arbeit im nächsten next() Aufruf wieder aufnehmen. Weitherführende Literatur Goetz Graefe. Volcano An Extensibel and Parallel Query Evaluation System. Trans. Knowl. Data Eng. vol. 6, no. 1, February

58 Volcano-Style PipelinedAnfragebearbeitung Evaluation Example (Pipelined query plan) Beispiel eines pipelined Anfrageplans Bespielanfrage: R 1 scan p π l σ q R 2 Anfrageevaluation einer scan Anfrage Relational q durch Query den Engines Der Anfrageprozessor bearbeitet die Beispielanfrage wie folgt: Anfrageprozessor Operator Selection Selection (σ) 1. Der gesamte Given aanfrageplan query wir likezunächst the onezurückgesetzt, shown above, indem query Selectivity function eval(q) Conjunctive Predicates die open() evaluation Methode is driven des by Wurzeloperators the query processor (hier!q) like this (just like Disjunctive Predicates q.open(); aufgerufen in the wird. Unix shell): Projection (π) r " q.next(); 2. Der Aufruf 1 von Theopen() whole plan wird is durch initially den reset Plan by weitergeleitet, calling open () on Join ( ) Nested Loops Join sodass am Ende the root jeder operator, Operator i.e., initialisiert σ q.open ist. (). while r # eof do Block Nested Loops Join Index Nested Loops Join 3. Die Kontrolle 2 The wird open an den () call Anfrageprozessor is forwarded through zurückgegeben. the plan by the begin Sort-Merge Join Hash Join 4. Dieser ruft nun operators die next() themselves Methode (seedes σ.open Wurzeloperators () on slide 54). auf. output(r); Operator Pipelining 3 5. Auch der Aufruf Control der returns next() tomethode the query wird processor. von jedem Operator r Volcano" Iteratorq.next(); Model an seine Kindoperatoren 4 The root is requested weitergegeben, to produce falls nötig. its next result record, end 6. Sobald ein i.e., Ergebnistupel the call σ q.next produziert () is made. wurde, geht die Kontrolle 5wieder Operators an den forward Anfrageprozessor. the next () Dieser request ruft asentweder needed. As q.close(); next() (Schritt soon4) as auf, theoder next close(), result record falls eof is produced, control zurückgegeben returns wurde. to the query processor again. Evaluation of Relational Operators Torsten Grust

59 Volcano-Style Selektion Volcano-style Interface für!p(r) function open() R.open(); function close() R.close(); function next(); while (r " R.next()) # eof do if p(r) then return r; return eof; 60

60 Volcano-Style Nested Loops Join Eine Volcano-Style Implementierung von R JoinP S 61

61 Blockierende Operatoren Pipelining reduziert sowohl den Speicherbedarf als auch die Antwortzeit, da jedes Tupel sofort propagiert wird. Leider unterstützen nicht alle Operatoren dieses Pipelining-Prinzip. Solche Operatoren nennen wir blockierende Operatoren (blocking operators). Blockierende Operatoren konsumieren ihre gesamte Eingabe, bevor sie ihre Ausgabe produzieren können. In diesen Fällen werden die Daten tatsächlich auf der Festplatte materialisiert. Welche, in der Vorlesung besprochenen Operatoren sind blockierende Operatoren? 62

62 Zusammenfassung Logische vs. physische Operatoren Für einen logischen Operator existieren im Allgemeinen mehrere Implementierungen. Je nach Systemstatus variiert potentiell der Zugriffspfads mit der geringsten Selektivität. Implementierung relationaler Operatoren Selektion, Projektion, Join, Mengen-Operatoren, Aggregation. Wesentliche Techniken: Iterative Ansätze, Sortierung und Hashing (Partitionierung), Verwendung vorhandener Indizes. Operator Pipelining Eine relationale Anfrage kann als Graph relationaler Operatoren dargestellt werden. Wir sparen uns wenn möglich das Anlegen temporärer Dateien, indem wir Tupel direkt von einem Operator zum nächsten weitergeben (Volcano Iterator Modell). Einige Operatoren sind blockierend und lassen kein Pipelining zu. 63

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014 Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Marius Eich Email: marius.eich@uni-mannheim.de Datenbanksysteme 2 8. Übungsblatt Frühjahr-/Sommersemester

Mehr

Kompetitive Analysen von Online-Algorithmen

Kompetitive Analysen von Online-Algorithmen Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen

Mehr

Anfrageverarbeitung. Einführung

Anfrageverarbeitung. Einführung Anfrageverarbeitung Prof. Dr. T. Kudraß 1 Einführung Wir betrachten die Implementierung der Operatoren der Relationenalgebra: Basis-Operationen: Selektion ( σ ) Auswahl einer Teilmenge von Tupeln aus der

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

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

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Joins 1 IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Literatur Priti Mishara, Maragaret H. Eich, Join Processing in Relational Databases, ACM Computing Surveys, Vol. 24, No. 1, March 1992 Goetz Graefe,

Mehr

Informatik Grundlagen, WS04, Seminar 13

Informatik Grundlagen, WS04, Seminar 13 Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen 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

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen 1. Einführung Über die Tabellen-Auswertungen können Sie eigene Auswertungen nach Ihren Wünschen erstellen. Diese Auswertungen werden immer anhand der aktuellen Daten aus orgamax ermittelt, Sie können also

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

Häufige Item-Mengen: die Schlüssel-Idee. Vorlesungsplan. Apriori Algorithmus. Methoden zur Verbessung der Effizienz von Apriori

Häufige Item-Mengen: die Schlüssel-Idee. Vorlesungsplan. Apriori Algorithmus. Methoden zur Verbessung der Effizienz von Apriori Vorlesungsplan 17.10. Einleitung 24.10. Ein- und Ausgabe 31.10. Reformationstag, Einfache Regeln 7.11. Naïve Bayes, Entscheidungsbäume 14.11. Entscheidungsregeln, Assoziationsregeln 21.11. Lineare Modelle,

Mehr

Anzeige von eingescannten Rechnungen

Anzeige von eingescannten Rechnungen Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung

Mehr

Kapitel 6 Externes Sortieren

Kapitel 6 Externes Sortieren Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 1 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel

Mehr

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten

Mehr

Bewertung des Blattes

Bewertung des Blattes Bewertung des Blattes Es besteht immer die Schwierigkeit, sein Blatt richtig einzuschätzen. Im folgenden werden einige Anhaltspunkte gegeben. Man unterscheidet: Figurenpunkte Verteilungspunkte Längenpunkte

Mehr

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. OPTIMISTIC CONCURRENCY CONTROL Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. Abbruch einer Transaktion

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Einfache Varianzanalyse für abhängige

Einfache Varianzanalyse für abhängige Einfache Varianzanalyse für abhängige Stichproben Wie beim t-test gibt es auch bei der VA eine Alternative für abhängige Stichproben. Anmerkung: Was man unter abhängigen Stichproben versteht und wie diese

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen Abfragen lassen sich längst nicht nur dazu benutzen, die gewünschten Felder oder Datensätze einer oder mehrerer Tabellen darzustellen. Sie können Daten auch nach bestimmten Kriterien zu Gruppen zusammenfassen

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Aufgabe 1: [Logische Modellierung]

Aufgabe 1: [Logische Modellierung] Aufgabe 1: [Logische Modellierung] a) Entwerfen Sie für das von Ihnen entworfene Modell aus Aufgabe 2 des 1. Übungsblattes ein Star-Schema. b) Entwerfen Sie für das vorangegangene Modell einen Teil eines

Mehr

Anfrageverarbeitung. Prof. Dr. T. Kudraß 1

Anfrageverarbeitung. Prof. Dr. T. Kudraß 1 Anfrageverarbeitung Prof. Dr. T. Kudraß 1 Einführung Wir betrachten die Implementierung der Operatoren der Relationenalgebra: Basis-Operationen: Selektion ( s ) Auswahl einer Teilmenge von Tupeln aus der

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Anwendertreffen 20./21. Juni

Anwendertreffen 20./21. Juni Anwendertreffen Verbindungsmittelachsen VBA Allgemein Die Verbindungsmittelachsen werden nun langsam erwachsen. Nach zwei Jahren Einführungszeit haben wir bereits viele Rückmeldungen mit Ergänzungswünschen

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten:

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten: Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten: 1. Das erste Dokument drucken 2. Weitere Dokumente hinzufügen 3. Alle Dokumente

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags 2013 style_sheet_bis_verlag_20130513 Arbeiten mit der Dokumentvorlage des BIS-Verlags... 3 Dokumentvorlage Wofür?... 3 Wohin mit der Dokumentvorlage...

Mehr

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

Mengenvergleiche: 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

Mehr

Datenbanksysteme II SS 2010. Übungsblatt 9: Wiederholung

Datenbanksysteme II SS 2010. Übungsblatt 9: Wiederholung Ludwig-Maximilians-Universität München München, 02.07.2010 Department Institut für Informatik PD Dr. Peer Kröger Andreas Züfle Datenbanksysteme II SS 2010 Übungsblatt 9: Wiederholung Besprechung: 20.07.2010

Mehr

Barcodedatei importieren

Barcodedatei importieren Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1

Mehr

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

Data 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

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

So gehts Schritt-für-Schritt-Anleitung

So gehts Schritt-für-Schritt-Anleitung So gehts Schritt-für-Schritt-Anleitung Software WISO Mein Büro Thema Eigene Auswertungen, Tabellenauswertungen Version/Datum V 13.00.05.101 Über die Tabellen-Auswertungen ist es möglich eigene Auswertungen

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Objekte einer Datenbank Microsoft Access Begriffe Wegen seines Bekanntheitsgrades und der großen Verbreitung auch in Schulen wird im Folgenden eingehend auf das Programm Access von Microsoft Bezug genommen.

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Step by Step Softwareverteilung unter Novell. von Christian Bartl Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen

Mehr

Dokumentation TELAU Post Mobile Billitem Converter

Dokumentation TELAU Post Mobile Billitem Converter Dokumentation TELAU Post Mobile Billitem Converter 2 Inhalt Ausgangslage... 3 Ziel... 3 Installation... 4 Monatlicher Ablauf... 5 Verarbeitung starten... 8 Rücknehmen von Definitionen... 11 3 Ausgangslage

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1 Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Bedienung des Web-Portales der Sportbergbetriebe

Bedienung des Web-Portales der Sportbergbetriebe Bedienung des Web-Portales der Sportbergbetriebe Allgemein Über dieses Web-Portal, können sich Tourismusbetriebe via Internet präsentieren, wobei jeder Betrieb seine Daten zu 100% selbst warten kann. Anfragen

Mehr

Anfrageoptimierung Physische Optimierung

Anfrageoptimierung Physische Optimierung Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Physische Optimierung Dr. Thomas Gottron Wintersemester 01/1 Ziel der phyischen Optimierung Konkrete Implementation der Operatoren

Mehr

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

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 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

Mehr

Operator-Kostenmodelle für Fortschrittsschätzung und Opt. Datenbanksystemen

Operator-Kostenmodelle für Fortschrittsschätzung und Opt. Datenbanksystemen Operator-Kostenmodelle für und Optimierung in Datenbanksystemen 23. Oktober 2012 Übersicht 1 Grundlagen Ziele der Arbeit Grundlagen Kostenmodelle Neues Framework Entwickelte Hilfsmittel 2 3 Ziele der Arbeit

Mehr

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation und Zugriffsstrukturen Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet

Mehr

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 21.11.2016 Anfragebearbeitung 2 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Physische Optimierung Iterator: einheitliche Schnittstelle

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Physischer Datenbankentwurf: Datenspeicherung

Physischer Datenbankentwurf: Datenspeicherung Datenspeicherung.1 Physischer Datenbankentwurf: Datenspeicherung Beim Entwurf des konzeptuellen Schemas wird definiert, welche Daten benötigt werden und wie sie zusammenhängen (logische Datenbank). Beim

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster, klicken Sie nun English an.

1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster, klicken Sie nun English an. Installation itunes & EZ Vinyl Converter Installieren Sie als erstes itunes auf Ihrem PC 1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster,

Mehr

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Übung 2 Anfrageoptimierung in zentralisierten Datenbanksystemen LÖSUNG

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Übung 2 Anfrageoptimierung in zentralisierten Datenbanksystemen LÖSUNG Dr. rer. nat. Sven Groppe Übungen zur Voresung Mobie und Verteite Datenbanken WS 28/29 Übung 2 Anfrageoptimierung in zentraisierten Datenbanksystemen Aufgabe 1: Fogende Reationen seien gegeben: LÖSUNG

Mehr

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Probeklausur Grundlagen der Datenbanksysteme II

Probeklausur Grundlagen der Datenbanksysteme II Prof. Dott.-Ing. Roberto V. Zicari Datenbanken und Informationssysteme Institut für Informatik Fachbereich Informatik und Mathematik Probeklausur Grundlagen der Datenbanksysteme II Frau: Herr: Vorname:

Mehr

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge Einloggen: Eingabe von Benutzername und Passwort Benutzername = Matrikelnummer (z.b. 999999) Passwort = Geburtsdatum (z.b. 31.12.1998) wird angezeigt als ********** Nach dem ersten Einloggen sollten sie

Mehr

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

mit 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

Mehr

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten. Personenverzeichnis Ab dem Wintersemester 2009/2010 wird das Personenverzeichnis für jeden Mitarbeiter / jede Mitarbeiterin mit einer Kennung zur Nutzung zentraler Dienste über das LSF-Portal druckbar

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Abfrage-Befehle in MySQL -diverse Funktionen -

Abfrage-Befehle in MySQL -diverse Funktionen - Abfrage-Befehle in MySQL -diverse Funktionen - Berechnungen mit MySQL -Einführung Ich liebe Funktionen! Es sollen die Projektbezeichnung, der Auftragswert, die Mehrwertsteuer und der Bruttobetrag für jedes

Mehr

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt. Gentlemen", bitte zur Kasse! Ravensburger Spiele Nr. 01 264 0 Autoren: Wolfgang Kramer und Jürgen P. K. Grunau Grafik: Erhard Dietl Ein Gaunerspiel für 3-6 Gentlemen" ab 10 Jahren Inhalt: 35 Tresor-Karten

Mehr

MS Excel 2010 Kompakt

MS Excel 2010 Kompakt MS Excel 00 Kompakt FILTERN Aus einem großen Datenbestand sollen nur jene Datensätze (Zeilen) angezeigt werden, die einem bestimmten Eintrag eines Feldes (Spalte) entsprechen. Excel unterstützt Filterungen

Mehr

Chemie Zusammenfassung KA 2

Chemie Zusammenfassung KA 2 Chemie Zusammenfassung KA 2 Wärmemenge Q bei einer Reaktion Chemische Reaktionen haben eine Gemeinsamkeit: Bei der Reaktion wird entweder Energie/Wärme frei (exotherm). Oder es wird Wärme/Energie aufgenommen

Mehr

Datenexport aus JS - Software

Datenexport aus JS - Software Datenexport aus JS - Software Diese Programm-Option benötigen Sie um Kundendaten aus der JS-Software in andere Programme wie Word, Works oder Excel zu exportieren. Wählen Sie aus dem Programm-Menu unter

Mehr