1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SS 2004B. König-Ries: KuD6-1 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe.
Inner Joins.
SQL als Abfragesprache
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme SQL-Anfragen (2)
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 10 Kapitel 10 Anfragebearbeitung.
1 Beispiele (1) Anzeige aller Flughäfen: select fromFLUGHAFEN entspricht (trivialem) relationenalgebraischem Ausdruck FLUGHAFEN.
1 Beispiele (9) Mehrfach geschachtelte Anfrage: Suche alle Passagiere, die Flüge von Frankfurt gebucht haben: selectname fromTICKET whereticketNrin (selectticketNr.
OQL-Anfragen (1) Alle Punkte, die auf der Null-Ebene liegen: selectstruct (ex : x, ey : y) fromallePunkte wherez = 0 Rückgabetyp: bag > Alle Kanten, die.
1 Sichten (1) Oftmals ist es für Anwendungen einfacher, nicht mit dem Original- Datenbestand, sondern einem speziell zugeschnittenen Ausschnitt zu arbeiten.
Anomalien Nichtreflexive MVDs (und somit speziell auch nichtreflexive FDs) sind unerwünscht, da sie bei Schreibzugriffen sogenannte Anomalien verursachen.
1 Gruppierung (1) Motivation: Bisher existierte nur die gesamte Relation als eine einzige Gruppe. Interessanter ist es, Aggregierungen über Teilmengen.
1 Theta-Verbindung: Beispiel Selektion der Buchungen für den 6. August 2000 mit den zugehörigen Passagieren: datum = 06-AUG-00 B.ticketNr = T.ticketNr.
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Datenbankentwicklung IV-LK
Datenbanken?.
Lese-Schreib-Modell: Beispiele Relationen –TICKET (ticketNr, name)T –BUCHUNG (flugNr, ticketNr, platzCode, datum)B Transaktionen: –T 1 : Prüfen der Konsistenz.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
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)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
Relationale Datenbanken IV
Verdichten von Daten mit Gruppenfunktionen
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Structured Query Language
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
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:
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Datenbanken abfragen mit SQL
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Übung Datenbanksysteme I SQL
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Left Join, Right Join, Outer Join
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Nutzung und Modellierung von Datenbanken
(Structured Query Language)
 Präsentation transkript:

1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt und Selektion). Fasse in der Ergebnisrelation alle Tupel, die gleiche Werte für die Gruppierungsattribute aufweisen, zu einer Gruppe zusammen. Werte nun für jede einzelne Gruppe die select-Klausel aus. Dadurch entsteht für jede Gruppe genau ein Tupel. Falls eine having-Klausel angegeben wurde, werte diese für jede Gruppe aus und eliminiere nicht-qualifizierende Gruppen. Wenn select distinct angegeben wurde, eliminiere Duplikate aus der Menge der so entstandenen Tupel. Sortiere ggf. die Ergebnistupel gemäß order by-Klausel.

2 Gruppierung, Aggregierung und Sortierung (4) Auswahl unter Gruppen: Beschränkung des vorigen Beispiels auf Flugzeugtypen mit mehr als einem Einsatz ab Frankfurt. selectftypId, count(flugNr) fromFLUG wherevon = "FRA" group byftypId havingcount(flugNr) > 1 order byftypId Ergebnis: FtypId Count

3 Gruppierung, Aggregierung und Sortierung (5) Weitere Aggregatfunktionen neben count: Mittelwertbildung (avg), Minimum (min), Maximum (max), Aufsummieren (sum). Anwendung stets auf die Tupel einer Gruppe. Argumente können Attributnamen oder auch arithmetische Ausdrücke sein, z.B. selectmax(first + business + economy) fromFLUGZEUGTYP max

4 Allgemeine Tabellenausdrücke (1) select-Anweisung ist wesentliches Konstrukt zur Bildung von Tabellen, aber es gibt weitere: union, intersect, except dienen zur Bildung von Vereinigung, Durchschnitt und Differenz. Beispiel: Suche nach Flügen, die noch keine Buchungen haben: (selectflugNr from FLUG) except (selectflugNr from BUCHUNG)

5 Allgemeine Tabellenausdrücke (2) select-Anweisung ist wesentliches Konstrukt zur Bildung von Tabellen, aber es gibt weitere: [natural] [left | right | full] [outer] join und cross join - Klauseln ermöglichen Bildung von natürlicher Verbindung, Halbverbindung und Kreuzprodukt. Beispiel: Reprise von Suche Passagiere, die Buchungen für den 6. August 2000 haben: selectBT.name from(BUCHUNG natural join TICKET) as BT whereBT.datum = 06-AUG-2000

6 Allgemeine Tabellenausdrücke (3) select-Anweisung ist wesentliches Konstrukt zur Bildung von Tabellen, aber es gibt weitere: Direkte Eingabe von Tabellen ist ebenfalls möglich mit Konstrukt valuest 1,..., t n wobei t 1,..., t n Tupel sind. Beispiel: values("Horcic_Mrs_V", "(0721) 608"), ("Goetz_Mrs_E", "(0721) 618") liefert zweizeilige Tabelle Horcic_Mrs_V (0721) 608 Goetz_Mrs_E (0721) 618

7 Allgemeine Form der Sortierklausel Ergebnis eines Tabellenausdrucks kann für interaktive Präsentation oder programmgesteuertes Auslesen sortiert werden, indem hinter Ausdruck eine Klausel order by col 1 [asc | desc],..., col m [asc | desc] mit col i Attributname oder Spaltennummer eingefügt wird. Schlüsselwort asc oder desc gibt aufsteigende (Default) bzw. absteigende Sortierfolge an. Beachte: Sortierung ist Eigenschaft der Präsentation, nicht der gespeicherten Tabellen.