Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ER-Datenmodell und Abfragen in SQL Prof. Dr. Martin Thost.

Ähnliche Präsentationen


Präsentation zum Thema: "ER-Datenmodell und Abfragen in SQL Prof. Dr. Martin Thost."—  Präsentation transkript:

1 ER-Datenmodell und Abfragen in SQL Prof. Dr. Martin Thost

2 Hinweis zum Ausdrucken Falls Sie diese Folien ausdrucken möchten, wird dringend empfohlen, Handzettel mit 6 Folien je Druckseite anstatt für jede Folie eine eigene DIN- A4-Seite auszudrucken. Dies erreichen Sie, indem Sie im Menü Datei/Drucken... in das untere Listenfeld "Drucken:", wo steht "Folien" die Zeile "Handzettel (6 Folien je Seite)" auswählen.

3 Das Entity-Relationship-Modell Entität und Entitätstyp (auch Objekt und Objekttyp) Attribut / Attributwerte Beziehung (Relationship) Kardinalität einer Beziehung

4 Kardinalität der Beziehungen 1:1 1:N M:N

5 Krähenfußnotation 1 ist senkrechter Strich N ist Krähenfuß

6 Auflösung einer M:N-Beziehung in zwei 1:N-Beziehungen Eine M:N-Beziehung kann in einer relationalen Datenbank nicht direkt realisiert werden. Durch die Zwischenschaltung einer zusätzlichen Tabelle wird sie aufgelöst in zwei 1:N-Beziehungen. (Tabelle) Studentin besucht (Tabelle) Vorlesung wird ergänzt durch (Tabelle) Vorlesungsbesuch

7 Beziehungen Optional oder obligatorisch Parallele Beziehungen (z. B. Person – Versicherungspolice) Reflexive Beziehungen (z. B. zur Darstellung der Mitarbeiterhierarchie)

8 Optionale Beziehungen KundeBestellung Kunden ohne Bestellung sind möglich. Beziehung ist optional. Beziehungen ohne Null gelten dann als obligatorisch!

9 Obligatorische Beziehungen RechnungRechnungsposition Eine Rechnung ohne Rechnungsposition soll nicht vorkommen dürfen. (Vgl. Komposition in der UML)

10 Reflexive Beziehungen Mitarbeiter Ist verheiratet mit Ist Vorgesetzter von

11 Parallele Beziehungen PersonVersicherungspolice Ist Versicherungsnehmer Ist Versicherte Person

12 SQL-Abfragesprache Structured Query Language Auswahl mit SELECT Funktionen COUNT, AVG, MIN,MAX, SUM Zusammenfassung mit GROUP BY Sortierung mit ORDER BY

13 SQL-Datenmanipulation Einfügen mit INSERT Verändern mit UPDATE Löschen mit DELETE

14 SQL-Datendefinition Erstellen von Tabellen mit CREATE TABLE

15 Lernprogramm zu SQL Im Ordner SQL-Lernprogramm können Sie sich mit dem gesamten Umfang dieser Sprache vertraut machen.

16 Datenmodell: Mitarbeiter - Kunde

17 Anfrage: Mitarbeiter - Kunde SELECT mitarbeiter.name, telefon FROM mitarbeiter, beratung, kunde WHERE kunde.name="Max" and kunde.kundennummer = beratung.kundennummer and mitarbeiter.personalnummer = beratung.personalnummer ;

18 SELECT kundennummer,datum, stundenanzahl from mitarbeiter, beratung where name = "Müller" and mitarbeiter.personalnummer = beratung.personalnummer

19 Anfrage: Mitarbeiter - Kunde SELECT Kunde.Name, Sum(Beratung.Stundenanzahl) AS [Summe von Stundenanzahl] FROM Beratung, Kunde WHERE Beratung.Kundennummer = Kunde.Kundennummer GROUP BY Kunde.Name ;

20 Anfrage: Mitarbeiter - Kunde SELECT DISTINCT mitarbeiter.name, kunde.name FROM mitarbeiter, beratung, kunde WHERE kunde.kundennummer = beratung.kundennummer and mitarbeiter.personalnummer = beratung.personalnummer;

21 Anfrage: Mitarbeiter - Kunde SELECT personalnummer, sum(stundenanzahl) FROM beratung GROUP BY personalnummer;

22 Anfrage: Mitarbeiter - Kunde SELECT Mitarbeiter.Name, Mitarbeiter.Telefon FROM Mitarbeiter WHERE Mitarbeiter.Name=[Geben Sie bitte den Namen des Mitarbeiters ein!];

23 Anfrage: Mitarbeiter - Kunde SELECT Name, Stundensatz FROM Mitarbeiter WHERE Stundensatz = (SELECT MAX(Stundensatz) FROM Mitarbeiter)

24 Anfrage: Mitarbeiter - Kunde SELECT kunde.Name, Sum(stundenanzahl * stundensatz) AS Rechnung_pro_Kunde FROM beratung, kunde, mitarbeiter WHERE (((beratung.Kundennummer) = [kunde].[kundennummer]) AND (([beratung].[personalnummer]) = [mitarbeiter].[personalnummer])) GROUP BY kunde.Name ORDER BY kunde.name;

25 Anfrage: Mitarbeiter - Kunde SELECT Kunde.Kundennummer, Sum(Stundensatz*Stundenanzahl) AS Kosten FROM Kunde, Beratung, Mitarbeiter WHERE (((Kunde.Kundennummer)=[Beratung].[Ku ndennummer]) AND ((Beratung.Personalnummer)=[Mitarbeiter]. [Personalnummer])) GROUP BY Kunde.Kundennummer;

26 Anfrage: Mitarbeiter - Kunde SELECT DISTINCT mitarbeiter.name, sum(stundenanzahl*stundensatz) AS [Summe der Beratungskosten] FROM beratung, mitarbeiter WHERE mitarbeiter.personalnummer = beratung.personalnummer GROUP BY mitarbeiter.name ORDER BY mitarbeiter.name;

27 Anfrage: Mitarbeiter - Kunde SELECT Mitarbeiter.Name, Kunde.Name FROM Kunde INNER JOIN (Mitarbeiter INNER JOIN Beratung ON (Mitarbeiter.Personalnummer = Beratung.Personalnummer) AND (Mitarbeiter.Personalnummer = Beratung.Personalnummer) AND (Mitarbeiter.Personalnummer = Beratung.Personalnummer)) ON Kunde.Kundennummer = Beratung.Kundennummer;

28 Datenmodell: Projektverwaltung

29 Anfrage: Projektverwaltung SELECT Name FROM Mitarbeiter, Abteilung WHERE bezeichnung="Kredite" and abteilung.abteilungsnummer = mitarbeiter.abteilung;

30 Anfrage: Projektverwaltung SELECT DISTINCT Abteilungsnummer, Projekt.Bezeichnung FROM Projekt, Abteilung, Mitarbeiter, Projektmitarbeit WHERE (((Abteilung.Abteilungsnummer) =[mitarbeiter].[abteilung]) AND ((mitarbeiter.Mitarbeiternummer) =[projektmitarbeit].[mitarbeiternummer]) AND ((projektmitarbeit.Projektnummer) = [projekt].[projektnummer]));

31 Anfrage: Projektverwaltung SELECT Mitarbeiter.Name, Mitarbeiter.Mitarbeiternummer FROM Mitarbeiter, Projekt, Projektmitarbeit WHERE (((Mitarbeiter.Mitarbeiternummer)=[Projekt mitarbeit].[Mitarbeiternummer]) AND ((Projektmitarbeit.Projektnummer)=[Projekt ].[Projektnummer]) AND ((Projekt.Projektleiter)=(Select Mitarbeiternummer from Mitarbeiter where name = "Müller")));

32 Anfrage: Projektverwaltung SELECT DISTINCT abteilung.bezeichnung, projekt.bezeichnung FROM abteilung, mitarbeiter, projektmitarbeit, projekt WHERE (((Abteilung.Abteilungsnummer) =[mitarbeiter].[abteilung]) AND ((mitarbeiter.Mitarbeiternummer)=[projekt mitarbeit].[mitarbeiternummer]) AND ((projektmitarbeit.Projektnummer)=[projekt ].[projektnummer]));

33 Gruppenbildung: Group by select abteilungsnummer, sum(gehalt) from mitarbeiter group by abteilungsnummer

34 Anfrage: Projektverwaltung SELECT projekt.Bezeichnung, Sum(Stundenanzahl*stundensatz) AS Projektkosten FROM Abteilung, mitarbeiter, projektmitarbeit, projekt WHERE (((Abteilung.Abteilungsnummer) =[mitarbeiter].[abteilungsnummer]) AND ((mitarbeiter.Mitarbeiternummer)=[projekt mitarbeit].[mitarbeiternummer]) AND ((projektmitarbeit.Projektnummer) =[projekt].[projektnummer])) GROUP BY projekt.Bezeichnung;

35 Anfrage: Projektverwaltung SELECT Mitarbeiter.Name, Projekt.Bezeichnung, Sum(Projektmitarbeit.Stundenanzahl) AS [Summe von Stundenanzahl] FROM Mitarbeiter, Projekt, Projektmitarbeit WHERE (((Mitarbeiter.Mitarbeiternummer) =[Projektmitarbeit].[Mitarbeiternummer]) AND ((Projektmitarbeit.Projektnummer) =[Projekt].[Projektnummer])) GROUP BY Mitarbeiter.Name, Projekt.Bezeichnung;


Herunterladen ppt "ER-Datenmodell und Abfragen in SQL Prof. Dr. Martin Thost."

Ähnliche Präsentationen


Google-Anzeigen