Teil V Basisalgorithmen für DB-Operationen

Größe: px
Ab Seite anzeigen:

Download "Teil V Basisalgorithmen für DB-Operationen"

Transkript

1 Teil V Basisalgorithmen für DB-Operationen

2 Überblick 1 Datenbankparameter & Grundalgorithmen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

3 Überblick 1 Datenbankparameter & Grundalgorithmen 2 Navigationsoperationen: Scans c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

4 Überblick 1 Datenbankparameter & Grundalgorithmen 2 Navigationsoperationen: Scans 3 Unäre Operationen (Selektion, Projektion und Gruppierung) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

5 Überblick 1 Datenbankparameter & Grundalgorithmen 2 Navigationsoperationen: Scans 3 Unäre Operationen (Selektion, Projektion und Gruppierung) 4 Binäre Operationen: Mengenoperationen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

6 Überblick 1 Datenbankparameter & Grundalgorithmen 2 Navigationsoperationen: Scans 3 Unäre Operationen (Selektion, Projektion und Gruppierung) 4 Binäre Operationen: Mengenoperationen 5 Berechnung von Verbunden c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

7 Einordnung MOS SOS ISS SPS Mengenorientierte Schnittstelle Satzorientierte Schnittstelle Interne Satzschnittstelle Datensystem Zugriffssystem Speichersystem Pufferverwaltung DS Systempufferschnittstelle Dateischnittstelle Betriebssystem GS Geräteschnittstelle Externspeicher c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

8 Datenbankparameter & Grundalgorithmen Parameter für Kostenbestimmung Aufwandsabschätzung basierend auf Informationen aus Katalog bsize: Blockgröße; mem: Puffergröße in Anzahl der Blöcke r : Anzahl Tupel in der Relation r br : Anzahl von Blöcken, die Tupel aus r beinhalten sizer : (mittlere) Größe von Tupeln aus r f r : Blockungsfaktor wieviel Tupel aus r können in einem Block gespeichert werden: f r = bsize size r bei kompakter Speicherung (nur eine Relation pro Block) r b r = vala,r : Anzahl verschiedener Werte für Attribut A in r lev I(R(A)) : Anzahl der Indexebenen eines B + -Baums für Index I(R(A)) f r c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

9 Datenbankparameter & Grundalgorithmen Grundannahmen Indexe B + -Bäume dominierender Kostenfaktor: Blockzugriff Zugriff auf Hintergrundspeicher auch für Zwischenrelationen Zwischenrelationen zunächst für jede Grundoperation Zwischenrelationen hoffentlich zum großen Teil im Puffer einige Operationen (Mengenoperationen) auf Adressmengen (TID-Listen) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

10 Datenbankparameter & Grundalgorithmen Hauptspeicheralgorithmen wichtig für den Durchsatz des Gesamtsystems, da sie sehr oft eingesetzt werden Tupelvergleich (Duplikate erkennen, Sortierordnung angeben,... ) iterativ durch Vergleich der Einzelattribute, Attribute mit großer Selektivität zuerst TID-Zugriff TID innerhalb des Hauptspeichers: übliche Vorgehensweise bei der Auflösung indirekter Adressen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

11 Datenbankparameter & Grundalgorithmen Zugriffe auf Datensätze Relationen: interner Identifikator RelID Indexe: interner Identifikator IndexID Primärindex, etwa I(KUNDE(KNr)) bei A = a wird maximal ein Tupel pro Zugriff zurück geliefert Sekundärindex, etwa I(BESTELLUNG(KNr)) Bsp.: KNr = 4711 liefert i.a. mehrere Tupel Indexzugriffe: Ergebnis TID-Listen Datenzugriff Tupelzugriff Mengenzugriff über TID über Schlüsselwert Relationen-Scan Index-Scan c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

12 Datenbankparameter & Grundalgorithmen Zugriffe auf Datensätze /2 fetch-tuple Direktzugriff auf Tupel mittels TID-Wertes holt Tupel in Tupelpuffer fetch-tuple(relid, TID) Tupel-Puffer fetch-tid: TID zu (Primärschlüssel-)Attributwert bestimmen fetch-tid(indexid, Attributwert) TID weiterhin auf Relationen und Indexen: Scans c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

13 Datenbankparameter & Grundalgorithmen Beispiel in SQL select * from KUNDE where KNr = 4711 Gleichheitsanfrage über einen Schlüssel put: hier Anzeige des Ergebnisses currtid fetch-tid(kunde-knr-index, 4711); currrec fetch-tuple(kunde-relationid, currtid); put(currrec); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

14 Datenbankparameter & Grundalgorithmen Externe Sortieralgorithmen Externes Sortieren durch Mischen Ablauf 1 Relation durch partition in gleich große Teile teilen, die im Hauptspeicher sortiert werden können 2 n Mischläufe mit merge, die zwei oder mehr Teilrelationen mischen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

15 Datenbankparameter & Grundalgorithmen Externe Sortieralgorithmen /2 Gunter 42 Andreas 24 Dieter 4 Chris 7 Berta 77 Elle 36 Tamara 99 Dieter 2 Mario 9 Peer 43 Dieter 11 Andreas 21 partition Mischlauf Andreas 24 Dieter 4 Gunter 42 Berta 77 Chris 7 Elle 36 Dieter 2 Mario 9 Tamara 99 Andreas 21 Dieter 11 Peer 43 merge merge Andreas 24 Berta 77 Chris 7 Dieter 4 Elle 36 Gunter 42 Andreas 21 Dieter 2 Dieter 11 Mario 9 Peer 43 Tamara 99 Mischlauf merge Andreas 21 Andreas 24 Berta 77 Chris 7 Dieter 2 Dieter 4 Dieter 11 Elle 36 Gunter 42 Mario 9 Peer 43 Tamara 99 c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

16 Datenbankparameter & Grundalgorithmen Externes Sortieren: Kosten initialer Schritt: jeden Block lesen und auf Partition schreiben Kombination von 2 Zwischenergebnissen: n Läufe kombinieren 2 n Partitionen also: initial in mind. b r mem Partitionen daher: ( ) br log 2 mem Mischläufe jeder Mischlauf liest alle Blöcke und schreibt die gleiche Anzahl ( ) ) br 2b r (1 + log 2 mem c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

17 Datenbankparameter & Grundalgorithmen Externes Sortieren: Kosten /2 mehr als zwei Teilrelationen gleichzeitig mischen; genau mem 1 Relationen daher ( ) ) br cost SORT = 2b r (1 + log mem 1 mem c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

18 Datenbankparameter & Grundalgorithmen Externes Sortieren: Effizienzverbesserung Einflussfaktoren beim internen Sortierschritt: Aufwand für Schlüsselvergleich, Bewegen/Kopieren der Daten beim externen Sortieren: E/A-Aufwand Maßnahmen bei Schlüsselvergleich Ableitung eines Binärstrings als Schlüssel aus den Vergleichsspalten (Binärrepräsentation von Integer-Werten, Kompression von Zeichenketten, Verkettung der Teilstrings) Maßnahmen bei E/A optimale Ausnutzung der E/A-Bandbreite durch Anpassung von Blockgröße und Fan-In c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

19 Datenbankparameter & Grundalgorithmen Externes Sortieren: Einfluss von Blockgröße und Fan-In Vergleiche/s 4.5e+06 4e e+06 3e e+06 2e e+06 1e Fan-In Vergleiche/s 500 Fan-In Blockgröße in KB c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

20 Navigationsoperationen: Scans Arten des Scans Scan durchläuft Tupel einer Relation Relationen-Scan (full table scan) durchläuft alle Tupel einer Relation in beliebiger Reihenfolge Aufwand: b r Index-Scan nutzt Index zum Auslesen der Tupel in Sortierreihenfolge Aufwand: Anzahl der Tupel plus Höhe des Indexes Vergleich Relationen-Scan besser durch Ausnutzung der Blockung Index-Scan besser, falls wenige Daten benötigt, aber schlechter beim Auslesen vieler Tupel c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

21 Navigationsoperationen: Scans Operationen auf Scans Relationen-Scan öffnen open-rel-scan(relationenid) ScanID liefert ScanID zurück, die bei folgenden Operationen zur Identifikation genutzt wird Index-Scan initialisieren open-index-scan(indexid, Min, Max) ScanID liefert ScanID zurück; Min und Max bestimmen Bereich einer Bereichsanfrage next-tid liefert nächsten TID; Scan-Cursor weitersetzen end-of-scan liefert true, falls kein TID mehr im Scan abzuarbeiten close-scan schließt Scan c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

22 Navigationsoperationen: Scans Beispiel: Scan select * from KUNDE where Nachname between Heuer and Jagellowsk c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

23 Navigationsoperationen: Scans Beispiel: Relationen-Scan currscanid open-rel-scan(kunde-relationid); currtid next-tid(currscanid); while end-of-scan(currscanid) do currrec fetch-tuple(kunde-relationid, currtid); if currrec.nachname Heuer and currrec.nachname Jagellowsk then put (currrec); end currtid next-tid(currscanid); end close-scan(currscanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

24 Navigationsoperationen: Scans Relationen-Scan: Prinzip open-rel-scan close-scan next-tid fetch-tuple Satz #1 Satz #2 Satz #i Seite 1 Seite 2 Seite n c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

25 Navigationsoperationen: Scans Beispiel: Index-Scan currscanid open-index-scan(kunde-nachname-indexid, Heuer, Jagellowsk ); currtid next-tid(currscanid); while end-of-scan(currscanid) do currrec fetch-tuple(kunde-relationid, currtid); put(currrec); currtid next-tid(currscanid); end close-scan(currscanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

26 Navigationsoperationen: Scans Index-Scan: Prinzip open-index-scan close-scan TID TID TID Blattseiten next-tid fetch-tuple Seite 1 Seite 2 Seite n c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

27 Navigationsoperationen: Scans Scan-Operationen: Kosten Relationen-Scan cost REL = b r Index-Scan: Bedingung A = c und Primärindex cost IND = lev I(R(A)) + 1 Sekundärindex: val A,r verschiedene Werte, ungünstigster Fall cost IND = lev I(R(A)) + r val A,r c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

28 Navigationsoperationen: Scans Scan-Semantik bei Scan-basierten (positionalen) Änderungsoperationen: Festlegung einer Scan-Semantik Wirkungsweise nachfolgender Scan-Operationen Beispiel: Löschen des aktuellen Satzes Zustände: vor dem ersten Satz, auf einem Satz, in Lücke zwischen zwei Sätzen, hinter dem letzten Satz, in leerer Menge weiterhin: Übergangsregeln für Zustände c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

29 Navigationsoperationen: Scans Scan-Semantik /2 Halloween-Problem (System R): SQL-Anweisung: update PRODUKT set Preis = Preis * 1.1 where Preis > 100 satzorientierte Auswertung mittels Index-Scan über I(PRODUKT(Preis)) und sofortige Index-Aktualisierung ohne besondere Vorkehrungen: unendliche Anzahl von Preiserhöhungen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

30 Unäre Operationen (Selektion, Projektion und Gruppierung) Selektion exakte Suche, Bereichsselektionen, komplex zusammengesetzte Selektionskriterien zusammengesetztes Prädikat ϕ aus atomaren Prädikaten (exakte Suche, Bereichsanfrage) mit and, or, not Tupelweises Vorgehen Gegeben σϕ (r) Relationen-Scan: für alle t r auswerten ϕ(t) Aufwand O( r ), genauer b r c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

31 Unäre Operationen (Selektion, Projektion und Gruppierung) Selektion: Konjunktive Normalform Zugriffspfade bei komplexen Prädikaten einsetzen ϕ analysieren und geeignet umformen etwa ϕ in konjunktive Normalform KNF überführen; bestehend aus Konjunkten heuristisch Konjunkt auswählten, das sich besonders gut durch Indexe auswerten laßt (etwa bei A = c und über A Index) ausgewähltes Konjunkt auswerten; für Ergebnis-TID-Liste andere Konjunkte tupelweise oder mehrere geeignete Konjunkte auswerten und die sich ergebenden TID-Listen schneiden c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

32 Unäre Operationen (Selektion, Projektion und Gruppierung) Projektion Relationenalgebra: mit Duplikateliminierung SQL: keine Duplikateliminierung, wenn nicht mit distinct gefordert (modifizierter Scan) mit Duplikateliminerung: sortierte Ausgabe eines Indexes hilft bei der Duplikateliminierung Projektion auf indexierte Attribute ohne Zugriff auf gespeicherte Tupel c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

33 Unäre Operationen (Selektion, Projektion und Gruppierung) Projektion /2 Projektion π X (r): 1 r nach X sortieren 2 t r werden in das Ergebnis aufgenommen, für die t(x) previous(t(x)) gilt Zeitaufwand: O( r log r ) Falls r schon sortiert nach X: O( r ) Schlüssel K X: O( r ) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

34 Unäre Operationen (Selektion, Projektion und Gruppierung) Aggregation & Gruppierung skalare Aggregation select agg(a) from R Implementierung durch Scan für min, max, count aus Index bzw. Data Dictionary Aggregatfunktionen und Gruppierung select G, agg(a) from R group by G Zusammenfassung als Algebraoperator: γf1 (x 1 ),...,f n(x n),a(r(t)) Implementierungsvarianten: Nested Loops, Sortierung, Hashing c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

35 Unäre Operationen (Selektion, Projektion und Gruppierung) Nested-Loops-Gruppierung currscanid open-rel-scan(relid); create-tmp-relation(tmpld); currtid next-tid(currscanid); while end-of-scan(currscanid) do found false; currrec fetch-tuple(relid, currtid); tmpscanid open-rel-scan(tmpld); tmptid next-tid(tmpscanid); /* innere Schleife */ close-scan(tmpscanid); if found then insert into TmplD (currrec.a, currrec.b); end currtid next-tid(currscanid); end close-scan(currscanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

36 Unäre Operationen (Selektion, Projektion und Gruppierung) Nested-Loops-Gruppierung /2 /* innere Schleife */ while end-of-scan(tmpscanid) do tmprec fetch-tuple(tmpld, tmptid); if currrec.a = tmprec.a then /* Tupel in r(tmpld) aktualisieren */ tmprec.b tmprec.b + currrec.b; found true; break; end tmptid next-tid(tmpscanid); end c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

37 Unäre Operationen (Selektion, Projektion und Gruppierung) Sortierbasierte Gruppierung sort RelD into TmplD using A; tmpscanid open-rel-scan(tmpld); tmptid next-tid(tmpscanid); sumb 0; preva null; while end-of-scan(tmpscanid) do tmprec fetch-tuple(tmpld, tmptid); /* Tupelbehandlung */ tmptid next-tid(tmpscanid); end if preva null then /* letzte Gruppe ausgeben */ put(sumb, preva); end close-scan(tmpscanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

38 Unäre Operationen (Selektion, Projektion und Gruppierung) Sortierbasierte Gruppierung /2 /* Tupelbehandlung */ if preva = null then /* Spezialfall: 1. Tupel */ sumb tmprec.b; preva tmprec.a; else if tmprec.a = preva then sumb sumb + tmprec.b; else /* neue Gruppe beginnen */ put(sumb, preva); sumb tmprec.b; preva tmprec.a; end c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

39 Unäre Operationen (Selektion, Projektion und Gruppierung) Hashbasierte Gruppierung Variante der Nested-Loops-Technik Zuordnung zu Gruppen über Hashfunktion Verbesserungen sukzessive Berechnung der Aggregate Voraussetzung: additive Aggregatfunktionen f (x 1,..., x n ) = g(h(x 1 ),..., h(x n )) für min, max, sum: f = g = h für f =avg: h muss Tupel (sum(x i ), count(x i )) liefern und i g = sum(x i) i count(x i) für median: nicht möglich c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

40 Unäre Operationen (Selektion, Projektion und Gruppierung) Gruppierung: Vergleich Nested Loops: O( r 2 ) (worst case) sortierbasierte Variante: O( r log r ) (bei notwendiger Sortierung) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

41 Binäre Operationen: Mengenoperationen Binäre Operationen: Mengenoperationen Binäre Operationen meist auf Basis von tupelweisem Vergleich der einzelnen Tupelmengen Nested-Loops-Technik oder Schleifeniteration für jedes Tupel einer äußeren Relation s wird die innere Relation r komplett durchlaufen Aufwand: O( s r ) Merge-Technik oder Mischmethode r und s (sortiert) schrittweise in der vorgegebenen Tupelreihenfolge durchlaufen Aufwand: O( s + r ) Falls Sortierung noch vorzunehmen: Sort-Merge-Technik Aufwand r log r und/oder s log s c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

42 Binäre Operationen: Mengenoperationen Mengenoperationen /2 Hash-Methoden kleinere der beiden Relationen in Hash-Tabelle Tupel der zweiten Relation finden ihren Vergleichspartner mittels Hash-Funktion idealerweise Aufwand O( s + r ) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

43 Binäre Operationen: Mengenoperationen Klassen binärer Operationen r s A B C c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

44 Binäre Operationen: Mengenoperationen Klassen binärer Operationen /2 Ergebnisextensionen Übereinstimmung auf allen Attributen Übereinstimmung auf einigen Attributen A Differenz r s Anti-Semi-Verbund B Schnitt r s Verbund, Semi- Verbund C Differenz s r Anti-Semi-Verbund A B r Left Outer Join A C symmetrische Differenz Anti-Verbund (r s) (s r) B C s Right Outer Join A B C Vereinigung r s Full Outer Join c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

45 Binäre Operationen: Mengenoperationen Vereinigung mit Duplikateliminierung Vereinigung durch Einfügen Variante der Nested-Loops-Methoden Kopie einer der beiden Relationen r2 unter dem Namen r 2 anlegen, dann Tupel t 1 r 1 in r 2 einfügen (Zeitaufwand abhängig von Organisationsform der Kopie) Spezialtechniken für die Vereinigung r und s verketten Projektion auf alle Attribute der verketteten Relation Zeitaufwand: O(( r + s ) log( r + s )) (wie Projektion) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

46 Binäre Operationen: Mengenoperationen Vereinigung /2 Vereinigung durch Merge-Techniken (merge-union) 1 r und s sortieren, falls nicht bereits sortiert 2 r und s mischen tr r kleiner als t s s: t r in das Ergebnis, nächstes t r r lesen tr r größer als t s s: t s in das Ergebnis, nächstes t s s lesen t s = t r : t r in das Ergebnis, nächste t r r bzw. t s s lesen Zeitaufwand: O( r log r + s log s ) mit Sortierung, O( r + s ) ohne Sortierung c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

47 Berechnung von Verbunden Berechnung von Verbunden Varianten Nested-Loops-Verbund Block-Nested-Loops-Verbund Merge-Join Hash-Verbund... c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

48 Berechnung von Verbunden Nested-Loops-Verbund doppelte Schleife iteriert über alle t r r und alle t s s bei einer Operation r s foreach t r r do foreach t s s do if ϕ(t r, t s ) then put(t r t s ) end end end c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

49 Berechnung von Verbunden Nested-Loops-Verbund mit Scan R1ScanID open-rel-scan(r1id) ; R1TID next-tid(r1scanid); while end-of-scan(r1scanid) do R1Rec fetch-tuple(r1id,r1tid); R2ScanID open-rel-scan(r2id); R2TID next-tid(r2scanid); while end-of-scan(r2scanid) do /* Scan über innere Relation */ end close-scan(r2scanid); R1TID next-tid(r1scanid); end close-scan(r1scanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

50 Berechnung von Verbunden Nested-Loops-Verbund mit Scan /2 /* Scan über innere Relation */ R2Rec fetch-tuple(r2id,r2tid); if R1Rec.X = R2Rec.Y then put(r1rec.a 1,..., R1Rec.A n, R1Rec.X, R2Rec.B 1,..., R2Rec.B m ); end R2TID next-tid(r2scanid); Verbesserung: Nested-Loops-Verbund verbindet alle t r r mit Ergebnis von σ X=tr (X)(s) (gut bei Index auf X in s) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

51 Berechnung von Verbunden Block-Nested-Loops-Verbund statt über Tupel über Blöcke iterieren foreach Block B r of r do foreach Block B s of s do foreach Tupel t r B r do foreach Tupel t s B s do if ϕ(t r, t s ) then put(t r t s ) end end end end end c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

52 Berechnung von Verbunden Nested-Loops-Verbund: Kosten ohne Indexunterstützung cost LOOP = b r + mit Primärindexunterstützung in s b r mem 1 b s cost LOOP = b r + r (lev I(S(B)) + 1) mit Sekundärindexunterstützung cost LOOP = b r + r (lev I(S(B)) + s val B,s ) c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

53 Berechnung von Verbunden Merge-Techniken X := R S; falls nicht bereits sortiert, zuerst Sortierung von r und s nach X 1 t r (X) < t s (X), nächstes t r r lesen 2 t r (X) > t s (X), nächstes t s s lesen 3 t r (X) = t s (X), t r mit t s und allen Nachfolgern von t s, die auf X mit t s gleich, verbinden 4 beim ersten t s s mit t s(x) t s (X) beginnend mit ursprünglichem t s mit den Nachfolgern t r von t r wiederholen, solange t r (X) = t r (X) gilt c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

54 Berechnung von Verbunden Merge-Verbund: Kosten Gesamtkosten cost MERGE = cost r + cost s für Relation r i {r, s} Fall 1: ri liegt sortiert vor cost ri = b ri Fall 2: r i muss sortiert werden cost ri = b ri log mem b ri + b ri c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

55 Berechnung von Verbunden Merge-Join mit Scan Verbund-Attribute auf beiden Relationen Schlüsseleigenschaft (unique, primary key) min(x) und max(x): minimaler bzw. maximaler gespeicherter Wert für X c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

56 Berechnung von Verbunden Vergleiche beim Merge-Join r 1 s c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

57 Berechnung von Verbunden Merge-Join mit Scan /2 R1ScanID open-index-scan(rel1-x-indexld, X min, X max); R1TID next-tid(r1scanid); R1Rec fetch-tuple(rel1d,r1tid); R2ScanID open-index-scan(rel1-x-indexld, X min, X max); R2TID next-tid(r2scanid); R2Rec fetch-tuple(rel2ld,r2tid); while end-of-scan(r1scanid) and end-of-scan(r2scanid) do /* merge */ end close-scan(r1scanid); close-scan(r2scanid); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

58 Berechnung von Verbunden Merge-Join mit Scan /3 /* merge */ if R1Rec.X < R2Rec.X then R1TID next-tid(r1scanid); R1Rec fetch-tuple(rel1d,r1tid); else if R1Rec.X > R2Rec.X then R2TID next-tid(r2scanid); R2Rec fetch-tuple(rel2ld,r2tid); else put(r1rec.a 1,..., R1Rec.A n, R1Rec.X, R2Rec.B 1,..., R1Rec.B m); R1TID next-tid(r1scanid); R1Rec fetch-tuple(rel1d,r1tid); R2TID next-tid(r2scanid); R2Rec fetch-tuple(rel2ld,r2tid); end c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

59 Berechnung von Verbunden Verbund durch Hashing Idee: Ausnutzung des verfügbaren Hauptspeichers zur Minimierung der Externspeicherzugriffe Finden der Verbundpartner durch Hashing Anfragen der Form r r.a=s.b s Prinzip: 1 Build-Phase: Tupel der kleineren Relation lesen und durch Anwendung einer Hashfunktion h in entsprechende Buckets einordnen 2 Probe-Phase: Tupel der zweiten Relation lesen und unter Anwendung von h Bucket mit potenziellen Verbundpartnern identifizieren 3 Verbundbedingung prüfen c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

60 Berechnung von Verbunden Übersicht: Hash-Verbund Hash-Verbund Überlauferkennung Classic Hash Join Begrenzung des Bildbereichs Simple Hash Join Partitionierung des Bildbereichs Hash-partitionierte Verfahren c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

61 Berechnung von Verbunden Prinzip des Hash-Verbundes r Build-Phase h(x) = x mod 5 h(x) x s Probe-Phase 3 4 4,9 c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

62 Berechnung von Verbunden Classic Hash Verbund Vorbereitung: kleinere Relation wird r Ablauf 1 Tupel von r mittels Scan in Hauptspeicher lesen und mittels Hashfunktion h(r.a) in Hashtabelle H einordnen 2 wenn H voll (oder r vollständig gelesen): Scan über s und mit h(s.b) Verbundpartner suchen 3 falls Scan über r nicht abgeschlossen: H neu aufbauen und erneuten Scan über S durchführen Aufwand: O(b r + p b s ) mit p ist Anzahl der Scans über s c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

63 Berechnung von Verbunden Classic Hash Verbund: Algorithmus R1ScanID open-rel-scan(r1id); R1TID next-tid(r1scanid); HTable []; while end-of-scan(r1scanid) do R1Rec fetch-tuple(r1id, R1TID); idx hash(r1rec.x); if overflows(htable) then join-with-hashtable(htable, R2ID); insert into HTable [idx] (R1Rec); R1TID next-tid(r1scanid); end close-scan(r1scanid); join-with-hashtable(htable, R2ID); c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

64 Berechnung von Verbunden Classic Hash Verbund: join-with-hashtable Input: Hashtabelle HTable Relation R2ID R2ScanID open-rel-scan(r2id); R2TID next-tid(r2scanid); while end-of-scan(r2scanid) do R2Rec fetch-tuple(r2id, R2TID); idx hash(r2rec.x); foreach t HTable [idx] do if R2Rec.X = t.x then put(t.a 1,..., t.a n, t.x, R2Rec.B 1,..., R2Rec.B m ); end end R2TID next-tid(r2scanid); end close-scan(r2scanid); HTable []; c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

65 Berechnung von Verbunden Simple Hash Verbund Nachteil des Classic Hash Verbunds: mehrmaliges Lesen der zweiten Relation Verbesserung: auch zweite Relation partitionieren Simple Hash Verbund Bereich der Hashwerte vorab auswählen und nur betroffene Tupel in Hashtabelle einfügen verbleibende Tupel in temporärer Relation (Überlaufbereich) sichern (für r und s) anschließend: rekursive Behandlung der temporären Relationen Verbundkandidaten können nur in temporären Relationen sein! c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

66 Berechnung von Verbunden Partitionierung mittels Hashfunktion Trennung von Partitionierungs- und Verbundphase Tupel aus r und s über X in gemeinsame Datei mit k Blöcken (Buckets) hashen Tupel in gleichen Buckets durch Verbundalgorithmus verbinden c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

67 Berechnung von Verbunden Vergleich der Techniken s s s r r r Nested-Loops-Join Merge-Join Hash-Join c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

68 Berechnung von Verbunden Zusammenfassung Kostenparameter und -formeln Varianten von Scans unäre und binäre Operatoren Verbundimplementierungen Literatur: Datenbanken: Implementierungstechniken, Kapitel 6 c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 12. Mai

5. Basisalgorithmen für DB-Operationen

5. Basisalgorithmen für DB-Operationen 5. Basisalgorithmen für DB-Operationen Datenbankparameter Komplexität von Grundalgorithmen Unäre Operationen (Scan, Selektion, Projektion) Binäre Operationen: Mengenoperationen Berechnung von Verbunden

Mehr

Datenbank- Implementierung

Datenbank- Implementierung DB2 Crash 0 1 Crash-Kurs Datenbank- Implementierung Uni Magdeburg Gunter Saake saake@iti.cs.uni-magdeburg.de DB2 Crash 0 1 Überblick 1. Architektur von Datenbanksystemen 2. Basisalgorithmen für Datenbankoperationen

Mehr

Relationenoperationen - Implementierung 0

Relationenoperationen - Implementierung 0 Relationenoperationen - Implementierung 0 Operationen der Relationenalgebra - unäre Operationen: π, σ - binäre Operationen: join,, +,,, SQL-Anfragen enthalten logische Ausdrücke, die auf die Operationen

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

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

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Moderne Datenbanksysteme sind nach der 3-Ebenen-Architektur gebaut: Anwendung 1 Web-Anwendung Anwendung 2 Java-Programm... Anwendung n Applikation

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

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

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

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

Mehr

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520 Kapitel 7 Anfragebearbeitung 285 / 520 Übersicht Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis 286 / 520 Übersetzung Übersetzung SQL ist deklarativ, irgendwann muß Anfrage aber für Laufzeitsystem

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

Themenblock: Erstellung eines Cube

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

Mehr

Kapitel 3: Datenbanksysteme

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

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

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

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

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

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Suchen in Listen und Hashtabellen

Suchen in Listen und Hashtabellen Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren

Mehr

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

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

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

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

Mehr

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

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

Mehr

Cluster-Bildung. VL Datenbanken II 4 107

Cluster-Bildung. VL Datenbanken II 4 107 Cluster-Bildung gemeinsame Speicherung von Datensätzen auf Seiten wichtige Spezialfälle: Ballung nach Schlüsselattributen. Bereichsanfragen und Gruppierungen unterstützen: Datensätze in der Sortierreihenfolge

Mehr

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

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren ) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung:

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

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

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

Mehr

DB2 for z/os. Übungen zur Schulung

DB2 for z/os. Übungen zur Schulung DB2 for z/os Übungen zur Schulung 2. Dezember 2011 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: -49-6721-992613 Mail: ralf.seidler@cps4it.de

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind. Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher

Mehr

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

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

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views 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

Mehr

Gunter Saake Kai-Uwe Sattler Andreas Heuer. 3. Auflage. Datenbanken. Implementierungstechniken

Gunter Saake Kai-Uwe Sattler Andreas Heuer. 3. Auflage. Datenbanken. Implementierungstechniken Gunter Saake Kai-Uwe Sattler Andreas Heuer 3. Auflage Datenbanken Implementierungstechniken Vorwort v ix 1 Aufgaben und Prinzipien von Datenbanksystemen 1 1.1 Wiederholung der Datenbank-Grundbegriffe...

Mehr

Teil II Architektur von DBMS

Teil II Architektur von DBMS Teil II Architektur von DBMS Überblick 1 2 Architekturvarianten 3 Architekturen konkreter DBMS c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 04/04/2011 2 1 Betrachtete Fragestellungen

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Datenbanken Wintersemester 11/12. Prof. Dr. W. May

Datenbanken Wintersemester 11/12. Prof. Dr. W. May AG Datenbanken und Informationssysteme Institut für Informatik Universität Göttingen Datenbanken Wintersemester 11/12 Prof. Dr. W. May 3. Übungsblatt: SQL Besprechung voraussichtlich am 20/21.12.2011 Aufgabe

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

Mehr

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

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

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Eine Reise durch den PostgreSQL Optimizer

Eine Reise durch den PostgreSQL Optimizer 11. November 2011 Am Anfang steht SQL SQL = Structured Query Language Eigentlich ein Eigenname Standardisiert, stetige Weiterentwicklung (SQL99, SQL 2003, SQL 2008, SQL/MED) Deklarativ, Beschreibend KEIN(!)

Mehr

Schulinternes Curriculum im Fach Informatik

Schulinternes Curriculum im Fach Informatik Schulinternes Curriculum im Fach Informatik Unterricht in EF : 1. Geschichte der elektronischen Datenverarbeitung (3 Stunden) 2. Einführung in die Nutzung von Informatiksystemen und in grundlegende Begriffe

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Kapitel 7 Datenbank-Tuning

Kapitel 7 Datenbank-Tuning Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

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

DB2 for z/os. Musterlösungen zu den Übungen

DB2 for z/os. Musterlösungen zu den Übungen Musterlösungen zu den Übungen 4. Januar 2013 Eine Ausarbeitung von: cps4it Ralf Seidler Stromberger Straße 36A 55411 Bingen Fon: +49-6721-992611 Fax: +49-6721-992613 Mail: ralf.seidler@cps4it.de Internet

Mehr

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

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Anfragebearbeitung 3

Anfragebearbeitung 3 Anfragebearbeitung 3 VL Datenbanksysteme, WS 2014/5 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Kostenmodelle und

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

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

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2 SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R IV-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme Relationale Datenbanken Vorlesung Datenbankmanagementsysteme Relationale Datenbanken M. Lange, S. Weise Folie #4-1 Relationale Datenbanken Wiederholung - Datenbankmodelle,

Mehr

Teil IV. Dateiorganisation und Zugriffsstrukturen

Teil IV. Dateiorganisation und Zugriffsstrukturen Teil IV Dateiorganisation und Zugriffsstrukturen Überblick c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 10. Mai 2012 4 1 Klassifikation der Speichertechniken Einordnung in 5-Schichten-Architektur

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Physische Datenbankdefinition in. Arthur Bauer

Physische Datenbankdefinition in. Arthur Bauer Physische Datenbankdefinition in Arthur Bauer Inhalt Cluster Index-Cluster Hash-Cluster Vor- und Nachteile Index-Organisierte Tabelle (IOT) Partitionierung STORAGE-Klausel in DDL Indexstrukturen Oracle

Mehr

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt Herbstsemester 2009 Datenbanken mit Übungen Kapitel 4: SQL H. Schuldt Inhalt Datenmanipulationssprache SQL: SQL (Structured Query Language) ist die Standardsprache für die Datendefinition und Datenmanipulation

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

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

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock Übung Datenbanksysteme I Transaktionen, Selektivität und XML Thorsten Papenbrock Übersicht: Übungsthemen 2 Transaktionen Selektivität XML Thorsten Papenbrock Übung Datenbanksysteme I JDBC Transaktionen:

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005 Webbasierte Informationssysteme SS 2005 8. SQL-Vertiefung Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanksprache SQL Structured Query Language (SQL) - am IBM San Jose Research Laboratory entwickelt

Mehr

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse Seminar Advanced Data Warehouse Thema: Index Selection Vortrag von Stephan Rieche gehalten am 2. Februar 2004 Download:.../~rieche Inhalt des Vortrages 1. Einleitung - Was ist das Index Selection Problem?

Mehr

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann Datenbanksysteme I Datenbankprogrammierung 15.6.2009 Felix Naumann SQL mit einer Programmiersprache verbinden 2 Embedded SQL Kombiniert SQL mit 7 Programmiersprachen ADA, C, Cobol, Fortran, M, Pascal,

Mehr

TU 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. 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/

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

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

Einleitung 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

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

SQL: statische Integrität

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

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

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

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

Mehr

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

6. Formaler Datenbankentwurf 6.1. Rückblick. Datenbanken und Informationssysteme, WS 2012/13 22. Januar 2013 Seite 1

6. Formaler Datenbankentwurf 6.1. Rückblick. Datenbanken und Informationssysteme, WS 2012/13 22. Januar 2013 Seite 1 6. Formaler Datenbankentwurf 6.1. Rückblick 3. Normalform Ein Relationsschema R = (V, F) ist in 3. Normalform (3NF) genau dann, wenn jedes NSA A V die folgende Bedingung erfüllt. Wenn X A F, A X, dann

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Einführung in SQL Datenbanken bearbeiten

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

Mehr

Datenbanksysteme II Klausurvorbereitung. 18.7.2007 Felix Naumann

Datenbanksysteme II Klausurvorbereitung. 18.7.2007 Felix Naumann Datenbanksysteme II Klausurvorbereitung 18.7.07 Felix Naumann Kurzüberblick aus erster VL 2 1. Einführung 2. Physische Speicherstrukturen (2 2) 3. Physische Repräsentation von Daten (1 1) 4. Indexstrukturen

Mehr

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

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

Mehr

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

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

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL als Anfrage- und Datenmanipulationssprache (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL als DQL und DML M. Lange, S. Weise Folie #8-1 Themen

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

Konstante Relationen

Konstante Relationen Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme Grundwissen Informatik 1. und Datenflüsse; Tabellenkalkulationssysteme Zellbezug relativer Zellbezug absoluter Zellbezug iterative Berechnungen Datentypyen z. B. A4 A ist der Spaltenbezeichner 4 ist die

Mehr

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac.

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac. Datenbanksysteme Dominic Pacher Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck dbis-informatik.uibk.ac.at 1 Übersicht Was passiert in den kommenden 90 Minuten?

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

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Informatik II Datenorganisation Datenbanken

Informatik II Datenorganisation Datenbanken Informatik II Datenorganisation Datenbanken Studiengang Wirtschaftsingenieurwesen (2. Semester) Prof. Dr. Sabine Kühn Tel. (0351) 462 2490 Fachbereich Informatik/Mathematik skuehn@informatik.htw-dresden.de

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

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

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

4.1 SQL. Wichtige skalare Datentypen

4.1 SQL. Wichtige skalare Datentypen 4. Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit am weitesten verbreitete Anfragesprache

Mehr

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

Datenbanksysteme 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

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

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

Data 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

Mehr

Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen

Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Winter 2009/10 Melanie Herschel Willhelm-Schickard-Institut für Informatik 1 Kapitel 7 Evaluation Relationaler Operatoren Überblick

Mehr

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.

MAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. Struktogramme 02.10.2002 Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. MAX_DOZ1 Integer a, b, c, max M AX IM U M 1.S T R Inte g er a, b, c Ausgabe "Zahlen eingeben" E ing abe a, b, c

Mehr

SQL Optimizer und SQL Performance

SQL Optimizer und SQL Performance SQL Optimizer und SQL Performance Schlüsselworte SQL, Optimizer, Explain Plan, SQL Trace Marco Mischke Robotron Datenbank Software GmbH Dresden Einleitung Dieser Vortrag beschäftigt sich mit grundlegenden

Mehr