Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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;
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.