SQL - Structured Query Language AIFB SS 2001 1 (1/7) 2.3.8 Verknüpfung von Relationen mit Subqueries (1/7) 32. Namen aller Angestellten, die mit 100 %

Slides:



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

Projekt: Datenbankentwurf
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt SQL 1 Aussagen über Tabelleninhalte Aussagelogik Äquivalenzen Select Where.
Bauinformatik II Softwareanwendungen 1
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Ü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.
Einführung Dateisystem <-> Datenbanksystem
Aufgabe April 2004Übung Data Warehousing2 1: Accounts 'gruppe ' auf ' morawetz ' (IP: !) Oracle-Account gleichen Namens SQL*Plus:
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Rel-Modell Relationenspezifische Operationen (3|21) (B) Selektion: Auswahl von Tupeln sei b = geeignete Bedingung (Selektionsbedingung):
SQL - Structured Query Language AIFB SS (2/9) Anfragen mit Bedingungen ( )(2/9) angestellte ANG-NRNAMEWOHNORTABT-NR 3115 MeyerKarlsruhe35.
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
... und alles was dazugehört
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
Rel-Modell Relationenspezifische Operationen (7|21) Beispiel 8-9: Betrachte angestellte1 – projekt1 – ang-pro1 Gesucht: Name / Proz-Arbzeit.
Datenbanken IFB 2002 Klaus Becker.
Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II.
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).
Einschub Normalisierung-Denormalisierung
Einschub Normalisierung-Denormalisierung
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)
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
Mengenoperationen (1/3)
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.
Semantische Integritätsbedingungen AIFB SS assert-Klausel (2/6) Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).
Structured Query Language
Erste Einführung in SQL
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).
Relationentheorie  AIFB SS Schlüssel / Schlüsselattribute / Nichtschlüsselattribute (2|4) Algorithmus zur Bestimmung aller Schlüssel.
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Rel-Modell Schema (3|8) Beispiel 8-12: Rel. Datenbank-Schema (beispielhaft) für eine rel. DB mit den Relationen angestellte1, projekt1.
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
Relationentheorie  AIFB SS Semantische Integritätsbedingungen (1|7) Eine „semantische Integritätsbedingung“ (sIB)  über der Attributmenge.
SQL - Structured Query Language  AIFB SS (1/3) Verknüpfung von Relationen (Join)(1/3) Anfragen mit Join („Natural Join“) 22. „Alle Projekte.
1 Verbindungsoperationen (5) Flache Formulierung selectA.ANr, AName fromArtikelArt A, Lagereinheit Le1, Lagereinheit Le2 whereA.ANr = Le1.ANr andA.ANr.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Relationentheorie  AIFB SS Zerlegung Zerlegung (1|6) 1.Die funktionalen Abhängigkeiten müssen erhalten bleiben („fA-erhaltend“). 2.Die.
Rel-Modell Modellierung der Realwelt im relationalen Datenmodell (1|5) Beispiel 8-5: Objekte:Angestellte, Projekte Beziehungen:Angestellte.
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Datenbanken abfragen mit SQL
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Aggregatfunktionen bei mehreren Tabellen
Vorlesung #5 SQL (Teil 2).
Textmuster.
SQL Join.
Administrieren und Arbeiten mit Datenbanken und SQL
(Structured Query Language)
 Präsentation transkript:

SQL - Structured Query Language AIFB SS (1/7) Verknüpfung von Relationen mit Subqueries (1/7) 32. Namen aller Angestellten, die mit 100 % ihrer Arbeitszeit an einem Projekt mitarbeiten. 1. Schritt: Bestimme aus ang-pro alle ANG-NR, die zu PROZ-ARBZEIT=100 gehören (Query a) (das sind geschachtelte Queries) anstelle von Join Ergebnis: ang-pro (#=m) P-NRANG-NRPROZ-ARBZEIT ANG-NR SELECT FROM WHERE ANG-NR ang-pro PROZ-ARBZEIT=100;

SQL - Structured Query Language AIFB SS angestellte (#=n) ANG-NRNAMEWOHNORTABT-NR 3115 MeyerKarlsruhe MüllerMannheim KleinMannheim MausKarlsruhe GroßKarlsruhe SchmittHeidelberg MayerleinBruchsal MüllerKarlsruhe SchulzBruchsal KrämerLudwigshafen MeierPforzheim SchusterWorms31 (2/7) Verknüpfung von Relationen mit Subqueries (2/7) 2. Schritt: Wähle in angestellte alle Tupel aus, deren ANG-NR in der oben gegebenen Ergebnismenge liegt: (Query b) Ergebnis: NAME Müller Groß Schmitt Müller SELECT FROM WHERE NAME angestellte ANG-NR IN (3207, 2412, 2314,1324);

SQL - Structured Query Language AIFB SS (3/7) Verknüpfung von Relationen mit Subqueries (3/7) {äußere Query b} SELECT NAME FROM angestellte WHERE ANG-NR IN {Subquery a} (SELECT ANG-NR FROM ang-pro WHERE PROZ-ARBZEIT = 100) Vorgehensweise des Systems: a) Abarbeitung Subquery (a) b) Übergabe Ergebnis an übergeordnete (äußere) Query (b) c) Abarbeitung Query b mit dem übergebenen Ergebnis Zusammenfassung zu geschachtelter Query:

SQL - Structured Query Language AIFB SS (4/7) Verknüpfung von Relationen mit Subqueries (4/7) SELECT NAME FROM angestellte, ang-pro WHERE PROZ-ARBZEIT = 100 AND ang-pro.ANG-NR = angestellte.ANG-NR; 33. Äquivalente Abfrage mit Join: Vergleich 32. mit 33.: (vereinfachte Betrachtung!) man betrachte Anzahl der notwendigen DB-Zugriffe! bei 32.:n+m bei 33.:n m Ergebnis von 32. SELECT NAME FROM angestellte WHERE ANG-NR IN (SELECT ANG-NR FROM ang-pro WHERE PROZ-ARBZEIT = 100)

SQL - Structured Query Language AIFB SS (5/7) Verknüpfung von Relationen mit Subqueries (5/7) 34. Namen aller Angestellten, die an mindestens einem Projekt in Karlsruhe mitarbeiten. Vorgehensweise: a) in projekt: Auswahl P-NR der Projekte in Karlsruhe b) in ang-pro: Auswahl ANG-NR, deren P-NR in der obigen Ergebnismenge liegen c) in angestellte: Auswahl Tupel mit o. best. ANG-NR c)SELECT NAME FROM angestellte WHERE ANG-NR IN b)(SELECT ANG-NR FROM ang-pro WHERE P-NR IN a)(SELECT P-NR FROM projekt WHERE P-FILIALE =Karlsruhe)); Mehrfach geschachtelte Queries Animation und Ergebnis dieses Beispiels (siehe Seite 72)

SQL - Structured Query Language AIFB SS (6/7) Verknüpfung von Relationen mit Subqueries (6/7) SELECTa.NAME FROMangestellte a, ang-pro ap, projekt p WHEREa.ANG-NR = ap.ANG-NR AND ap.P-NR=p.P-NR AND P-FILIALE=Karlsruhe 35. äquivalente Formulierung mit 2-fach Join:

SQL - Structured Query Language AIFB SS (7/7) Verknüpfung von Relationen mit Subqueries (7/7) Correlated subquery: Subquery bezieht Größen der umgebenden äußeren Query ein (als Variablen). : 36. Gib alle Orte an, an denen mehr als ein Projekt angesiedelt ist. b)SELECT DISTINCT P-FILIALE FROM projekt a WHERE 1 < a)(SELECT COUNT (*) FROM projekt b WHERE b.P-FILIALE = a.P-FILIALE Jetzt: b) kann nicht vorab ausgewertet werden, da abhängig von P-Filiale aus a). Animation und Ergebnis dieses Beispiels (siehe Seite 73)

SQL - Structured Query Language AIFB SS Beispiel für Mehrfach geschachtelte Queries SELECT NAME FROM angestellte WHERE ANG-NR IN angestellte (#=n) ANG-NRNAMEWOHNORTABT-NR 3115MeyerKarlsruhe MüllerMannheim KleinMannheim MausKarlsruhe GroßKarlsruhe SchmittHeidelberg MayerleinBruchsal MüllerKarlsruhe SchulzBruchsal KrämerLudwigshafen MeierPforzheim SchusterWorms31 projekt (#=k) P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115 p Karlsruhe3115 p Heidelberg1324 P Mannheim2814 ang-pro (#=m) P-NRANG-NRPROZ-ARBZEIT (SELECT P-NR FROM projekt WHERE P-FILIALE =Karlsruhe)); (SELECT ANG-NR FROM ang-pro WHERE P-NR IN Ergebnis: NAME Meyer Müller Klein Maus Mayerlein Krämer Meier Schuster

SQL - Structured Query Language AIFB SS Beispiel für Correlated subquery SELECTDISTINCT P-FILIALE FROMprojekt a WHERE1 < (SELECT COUNT (*) FROM projekt b WHERE b.P-FILIALE = a.P-FILIALE); projekt a P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115 p Karlsruhe3115 p Heidelberg1324 P Mannheim2814 Ergebnis: P-FILIALE Kalrsruhe projekt b P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115 p Karlsruhe3115 p Heidelberg1324 P Mannheim