ER-Datenmodell und Abfragen in SQL

Slides:



Advertisements
Ähnliche Präsentationen
Bauinformatik II Softwareanwendungen 1
Advertisements

Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
SendEplanung Datenbank
Themenschwerpunkte Übung 3:
SQL als Abfragesprache
SQL als Abfragesprache
MySQL Der Einstieg.
Entity-Relationship (ER)-Modell
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme UML
Erstellen einer Datenbank
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Datenintegrität Referentielle Integrität create table
Datenmodellierung - Aufbau einer Datenbank -
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
objekt-relationale Datenbanken
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II.
Datenbanken?.
SQL Überblick Abfragen aus einer Tabelle
Objektorientierte Analyse
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Relationale Datenbanken
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
Relationale Datenbanken IV
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Structured Query Language
Erste Einführung in SQL
Structured Query Language
Vorlesung #5 SQL (Teil 2).
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
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.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Verknüpfung von Tabellen
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Klassen und Tabellen.
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Wirtschaftsinformatik
Abfragesprache SQL in ORACLE
Sichten.
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
Administrieren und Arbeiten mit Datenbanken und SQL
(Structured Query Language)
 Präsentation transkript:

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

Hinweis zum Ausdrucken Beispiele zu Kap. 3.2.1. (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.

Das Entity-Relationship-Modell Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage) Das Entity-Relationship-Modell Entität und Entitätstyp (auch Objekt und Objekttyp) Attribut / Attributwerte Beziehung (Relationship) Kardinalität einer Beziehung

Kardinalität der Beziehungen Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage) Kardinalität der Beziehungen 1:1 1:N M:N

Krähenfußnotation 1 ist senkrechter Strich N ist „Krähenfuß“

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

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

Optionale Beziehungen Kunde Bestellung Kunden ohne Bestellung sind möglich. Beziehung ist optional. Beziehungen ohne „Null“ gelten dann als obligatorisch!

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

Reflexive Beziehungen Ist verheiratet mit Mitarbeiter Ist Vorgesetzter von

Parallele Beziehungen Ist Versicherungsnehmer Person Versicherungspolice Ist Versicherte Person

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

SQL-Datenmanipulation Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage) SQL-Datenmanipulation Einfügen mit INSERT Verändern mit UPDATE Löschen mit DELETE

Beispiele zu Kap. 3.2.1. (Mertens 6. Auflage) SQL-Datendefinition Erstellen von Tabellen mit CREATE TABLE

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

Datenmodell: Mitarbeiter - Kunde

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 ;

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

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 ;

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

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

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

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

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;

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;

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;

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;

Datenmodell: Projektverwaltung

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

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]));

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")));

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]));

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

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;

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;