Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ER-Datenmodell und Abfragen in SQL

Ähnliche Präsentationen


Präsentation zum Thema: "ER-Datenmodell und Abfragen in SQL"—  Präsentation transkript:

1 ER-Datenmodell und Abfragen in SQL
Beispiele zu Kap (Mertens 6. Auflage) ER-Datenmodell und Abfragen in SQL Prof. Dr. Martin Thost Erscheinungsdatum Mertens ?

2 Hinweis zum Ausdrucken
Beispiele zu Kap (Mertens 6. Auflage) 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
Beispiele zu Kap (Mertens 6. Auflage) 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
Beispiele zu Kap (Mertens 6. Auflage) 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
Kunde Bestellung Kunden ohne Bestellung sind möglich. Beziehung ist optional. Beziehungen ohne „Null“ gelten dann als obligatorisch!

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

10 Reflexive Beziehungen
Ist verheiratet mit Mitarbeiter Ist Vorgesetzter von

11 Parallele Beziehungen
Ist Versicherungsnehmer Person Versicherungspolice Ist Versicherte Person

12 Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage)
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
Beispiele zu Kap (Mertens 6. Auflage) SQL-Datenmanipulation Einfügen mit INSERT Verändern mit UPDATE Löschen mit DELETE

14 Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage)
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].[Kundennummer]) 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)=[Projektmitarbeit].[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)=[projektmitarbeit].[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)=[projektmitarbeit].[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"

Ähnliche Präsentationen


Google-Anzeigen