1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.

Slides:



Advertisements
Ähnliche Präsentationen
Löschoperationen (1) VDB VDB' DB DB' o = lösche(aname) p?? v v = AName (ArtikelArt) n Löschen entspricht der relationenalgebraischen Differenz. Dann ergibt.
Advertisements

Bauinformatik II Softwareanwendungen 1
Kapitel 3: Das Relationenmodell
Recap - Kapitel 3 « Das Relationenmodell »
Inner Joins.
Das Relationenmodell 1.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Übung Datenbanksysteme SQL-Anfragen (2)
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Illustration Beispiel: Benutzergruppen für Lagerverwaltung:
1 Gruppierung (5) LhNrGesamtgewichtGesamtzahl LH LH LH LH LH LH LH Gesamtgewichte.
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Lagermanagementsicht (L): relation ArtikelArt(ANr, AName, Menge, Lieferant, Gewicht); relation Lagereinheit(LeNr, LeaNr, ANr, Stückzahl, Gewicht, LhNr);
Abbildungsverfahren (1)
Löschoperationen (2) Spurgraph für AName (ArtikelArt). delete(V,AName) mit AName = aname. n ANr ist Schlüssel in ArtikelArt. n Es gilt: ArtikelArt.ANr.
Beispiel (1) A in ArtikelArt; A.ANr, A.AName AN as Zeichen(8), BEZ as Zeichen(25); AN, BEZ where ArtikelArt(ANr: AN, AName: BEZ) Beispiel: Nummern und.
1 Gruppierung (1) Motivation: Bisher existierte nur die gesamte Relation als eine einzige Gruppe. Interessanter ist es, Aggregierungen über Teilmengen.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Kakuro Regeln und Strategien
Kapitel 4: Relationale Sprachen – SQL
Datenbankentwicklung IV-LK
Objektorientiertes Ausgangsschema: define type ArtikelArt is structure [ ANr: String; AName: String; Menge: Integer; Lieferant: String; Gewicht: Float.
Die Grundterminologie
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Das relationale Modell
Beispiel (1) A in ArtikelArt; A.ANr, A.AName Beispiel:
Abbildung von Generalisierungen (1) U U d (0, ) FlussMeer Gewässer LiegtAn See U Stadt (0, ) StadtNameBegrenzungGewässerNameMaxTiefe BegrenzungVerlauf.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Semantische Integritätsbedingungen AIFB SS assert-Klausel (2/6) Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Grundlagen des Relationenmodells
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
Aggregatfunktionen (3)
Tupelkalkül: Notation (1)
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
1 Verbindungsoperationen (5) Flache Formulierung selectA.ANr, AName fromArtikelArt A, Lagereinheit Le1, Lagereinheit Le2 whereA.ANr = Le1.ANr andA.ANr.
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Gruppierung, Aggregierung und Sortierung (1) Finde für jeden Flugzeugtyp die Zahl aller von Frankfurt abgehenden Flüge und sortiere Ergebnis nach Flugzeugtyp:
Beispiel: Lagerverwaltung (1)
Motivation (1) n Datenbasen sind oft riesig. Für den einzelnen Benutzer interessiert aber meist nur ein kleiner Teil oder darf nur interessieren.  Es.
Abbildung: n Schritt 1: Alle Relationen außer Verträglichkeit sind Hauptobjekt- Relationen. Im folgenden also nur noch Verträglichkeit zu betrachten. n.
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Einfügeoperationen (1) VDB VDB' DB DB' o = einfüge(anr,aname) p?? v v =  ANr,AName (ArtikelArt) n Forderung:  ANr,AName (ArtikelArt)  {(anr, aname)}
Annahmen: Beispiel (1) Sicht 1: Lagermanagement:
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
1 Natürliche Verbindung (Natural Join) (3) Beispiel: „Alle Artikel gemeinsam mit den Lagereinheiten, in die sie verpackt sind.“:  ANr, AName, LeNr (ArtikelArtbLagereinheit.
Weiteres Beispiel (1) LoaNr Breite Höhe Länge MaxGewicht <0,*>
1 Nullwerte Vorgehensweise: Nullwerte als mögliche Belegung eines Attributs können durch die Angabe von not null ausgeschlossen werden. Die Angabe von.
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
SQL Join.
Left Join, Right Join, Outer Join
SQL Join.
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
(Structured Query Language)
 Präsentation transkript:

1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert. Outer Joins sind nur sehr kompliziert formulierbar. Beispiel: Lagereinheit 6 LagereinheitArt selectLeNr, ANr, Stückzahl, Gewicht, LhNr, Lea.LeaNr, LeaName, Länge, Breite, Höhe, MaxGewicht fromLagereinheit Le, LagereinheitArt Lea whereLe.LeaNr = Lea.LeaNr union selectNULL as LeNr, NULL as ANr, NULL as Stückzahl, NULL as Gewicht, NULL as LhNr, Lea.LeaNr, LeaName, Länge, Breite, Höhe, MaxGewicht fromLagereinheitArt Lea wherenot exists ( select  fromLagereinheit whereLea.LeaNr = LeaNr );

2 Differenzierte Verbindungsoperationen (2) Lösung: Statt wie bisher nur das implizite Kartesische Produkt lassen sich in der from-Klausel eine Reihe von Verknüpfungen zwischen den Relationen angeben: from R 1 op R 2 op … op R n op spezifiziert dabei einen relationenalgebraischen Verbindungsoperator aus folgenden Möglichkeiten: cross join | [ natural ] { left | right | full } [ outer ] join | [ natural ] { inner | union } join

3 Differenzierte Verbindungsoperationen (3) cross join [ natural ] { left | right | full } [ outer ] join [ natural ] { inner | union } join Berechnung des kartesischen Produkts. Entsprechen den drei Varianten für Outer Joins. Optionales outer dient der besseren Lesbarkeit. Optionales natural spezifiziert eine natürliche Verbindung mit den in beiden Relationen gleich benannten Attributen. Ohne natural müssen die Verbindungsattribute wie gewohnt in der where-Klausel spezifiziert werden. Spezifikation einer inneren Verbindung (normaler Theta-Join). Optionales natural fordert wieder eine natürliche Verbindung. Lagereinheit 6 LagereinheitArt: select  from Lagereinheit natural right outer join LagereinheitArt;

4 Differenzierte Verbindungsoperationen (4) union join: Full Outer Join, bei dem von vornherein feststeht, dass es zu keinen „echten“ Verbindungen kommt. Die Ergebnisrelation enthält also zum einen die Tupel der “linken” Eingaberelation nach rechts aufgefüllt mit NULL-Werten, zum anderen die Tupel der “rechten” Eingaberelation nach links aufgefüllt mit NULL- Werten. Die Zahl der Ergebnistupel entspricht somit der Summe der Tupel in den beiden Eingaberelationen.

5 Differenzierte Verbindungsoperationen (5) Abarbeitungsreihenfolge: Assoziativität gilt bei den neuen Operatoren nicht mehr ohne weiteres. Beim Hintereinanderschreiben mehrerer dieser Konstrukte wird generell von links nach rechts ausgewertet. Klammerungen sind möglich. Natürliche Verbindung: natural zieht normalerweise alle gleich benannten Attribute heran. Falls unerwünscht, Beschränkung mittels using-Klausel. Beispiel: “Alle Artikel zusammen mit den Lagereinheiten, in die sie verpackt sind”. selectANr, AName, LeNr fromArtikelArt natural inner join Lagereinheit using (ANr);

6 Differenzierte Verbindungsoperationen (5) Abarbeitungsreihenfolge: Assoziativität gilt bei den neuen Operatoren nicht mehr ohne weiteres. Beim Hintereinanderschreiben mehrerer dieser Konstrukte wird generell von links nach rechts ausgewertet. Klammerungen sind möglich. Theta-Join: natural zieht normalerweise alle gleich benannten Attribute heran. Falls unerwünscht, expliziter Theta-Join mittels on-Klausel. Beispiel: “Alle Artikel zusammen mit den Lagereinheiten, in die sie verpackt sind”. selectA.ANr, A.AName, L.LeNr fromArtikelArt A inner join Lagereinheit L on (A.ANr = L.ANr);