Rekursive Beziehungen Baugruppe Baugruppen_Nr * Bezeichnung Baugruppe 200 300 400 ? Bezeichnung E-Motor Getriebe Mahlwerk • Kupplung als Baugruppe, Stückliste für Kupplung beinhaltet Einzelteil ET_Nr 500 600 Bezeichnung Kupplung Lager BG_Nr 300 300 ET_Nr * Bezeichnung BG_Nr ** • Getriebe als Bestandteil einer Anlage Rekursive Beziehung (1:n) Baugruppe Baugruppen_Nr * Bezeichnung ET_Nr** rekursive Verknüpfung: Verknüpfung mit sich selbst B augruppen N r 100 200 300 400 500 600 700 800 900 B e z e ic h n u n g F ö rd e rb a n d E - M o to r G e tr ie b e F ö r d e r e in r ic h tu n g S tr o m a b n e h m e r S ta to r S c h le i f b ü r s te n B ü r s te n h a lte r B e f e s tig u n g s s c h r a u b e n E in z e lt e i l 100 100 100 200 200 500 500 500 Rekursive Beziehung (1:n) Vorgesetzter Vorgesetzter-Nr Name Titel Abteilung Telefon 1 hat n Angestellter Angestellter-Nr Name Titel Abteilung Telefon Mitarbeiter Mitarbeiter-Nr Name Titel Abteilung Telefon Vorgesetzter-Nr Rekursive Beziehung (n:m) Vorgesetzter Mitarbeiter Vorgesetzter Mitarbeiter_1 Vorgesetzter-Nr Name Titel Abteilung Telefon Mitarbeiter -Nr Name Titel Abteilung Telefon Mitarbeiter -Nr Mitarbeiter -Nr Mitarbeiter -Nr Name Titel Abteilung Telefon Angestellter Mitarbeiter Vorgesetzter Angestellter-Nr Name Titel Abteilung Telefon Mitarbeiter -Nr Name Titel Abteilung Telefon Vorgesetzter-Nr Unterstellter-Nr n hat m Mitarbeiter_1 Mitarbeiter -Nr Name Titel Abteilung Telefon Rekursive Beziehung SQL (Bsp. 1) Bezeichnung des Bauteils und Verwendung in der Baugruppe select ET.Bezeichnung as Einzelteil, BG.Bezeichnung as Baugruppe from Teile BG, Teile ET, Zuordnung Z where BG.Teil_ID=Z.BG_ID and ET.Teil_ID=Z.ET_ID order by ET.Bezeichnung Bezeichnung der Baugruppe und Auflistung der verwendeten Einzelteile select BG.Bezeichnung as Baugruppe, ET.Bezeichnung as Einzelteil from Teile BG, Teile ET, Zuordnung Z where BG.Teil_ID=Z.BG_ID and ET.Teil_ID=Z.ET_ID Anzahl der verschiedenen Einzelteile je Baugruppe Gesamtanzahl der Einzelteile je Baugruppe select count(*) from Zuordnung group by BG_ID select sum(Anzahl) from Zuordnung group by BG_ID select Bezeichnung as Baugruppe, count(*) from Teile T, Zuordnung Z where T.Teil_ID=Z.BG_ID group by Bezeichnung select Bezeichnung as Baugruppe, sum(Anzahl) from Teile T, Zuordnung Z where T.Teil_ID=Z.BG_ID group by Bezeichnung Rekursive Beziehung SQL (Bsp 2) Name des Mitarbeiter und dessen Vorgesetzten (1:n) select M.Name as Mitarbeiter, V.Name as Vorgesetzter from Mitarbeiter M, Mitarbeiter V where M.V_ID=V.M_ID Name des Mitarbeiter und dessen Vorgesetzten (n:m) select M.Name as Mitarbeiter, V.Name as Vorgesetzter from Mitarbeiter M, Mitarbeiter V, Vorgesetzter ZO where M.M_ID=ZO.U_ID and V.M_ID=ZO.V_ID Name des Vorgesetzten und dessen Unterstellte (n:m) select V.Name as Vorgesetzter, M.Name as Mitarbeiter from Mitarbeiter M, Mitarbeiter V, Vorgesetzter ZO where M.M_ID=ZO.V_ID and V.M_ID=ZO.U_ID Anzahl der Mitarbeiter je Vorgesetzter select Name as Vorgesetzter, count(*) from Mitarbeiter M, Vorgesetzter V where M.M_ID=V.V_ID group by Name