Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbankentwicklung IV-LK

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbankentwicklung IV-LK"—  Präsentation transkript:

1 Datenbankentwicklung IV-LK
Warum Datenbanken? Anforderungsanalyse für Datenbanken Ableitung von Tabellenstrukturen Normalisierung Relationenalgebra Formalisierung von Tabellen in SQL SQL- Anfragen Nicole Rottmann /12

2 7. Einfache SQL-Anfragen IV-LK
Ausgabe der eingegebenen Informationen Auswahlkriterien in der WHERE-Bedingung Nutzung von Aggregatsfunktionen Anfragen über mehrere Tabellen Aufgaben Nicole Rottmann /12

3 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Beispieltabellen für Anfragen: Anfrage: Wie lauten die Namen der eingetragenen Gehege? SELECT GName FROM Gehege Ergebnis: GName Wald Feld Weide Art Gehege Tier GNr GName Flaeche 1 Wald 20 2 Feld 10 3 Weide 9 GNr TName Gattung 1 Laber Baer Sabber 2 Klopfer Hase 3 Bunny Harald Schaf Walter Gattung MinFlaeche Baer 8 Hase 2 Schaf 5 Nicole Rottmann /12

4 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Anfrage: Welche Gattungen leben aktuell in den Gehegen. SELECT Tier.Gattung FROM Tier Ergebnis: GATTUNG Baer Hase Schaf Vermeidung von doppelten Werten: SELECT DISTINCT Tier.Gattung Nicole Rottmann /12

5 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Mehrere Ergebnisattribute in der Anfrage: Der Tiername soll zusammen mit der Gattung ausgegeben werden: SELECT Tier.TName, Tier.Gattung FROM Tier Ergebnis: TName Gattung Laber Baer Sabber Baer Klopfer Hase Bunny Hase Harald Schaf Walter Schaf Anfrage: Gesamter Tabelleninhalt: SELECT * FROM Gehege Nicole Rottmann /12

6 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Berechnungen in der SELECT – Zeile: Anfrage: Wie groß ist der prozentuale Anteil eines jeden Geheges an der Gesamtfläche, wenn die Gesamtfläche 50 beträgt? SELECT Gehege.GName, (Gehege.Flaeche/50)*100 FROM Gehege Ergebnis: GName (Gehege.Flaeche/50)*100 Wald 40 Feld 20 Weide 18 Anfrage: Die Gattung eines Tieres, soll zusammen mit dem Tiernamen, getrennt durch zwei Doppelpunkte ausgegeben werden. SELECT Tier.Gattung || '::' || Tier.TName FROM Tier Umbenennung der Spaltenüberschrift: SELECT Gehege.GName Gatter . Nicole Rottmann /12

7 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Erzeugung weiterer Ergebnisspalten: SELECT 'Unser Zoo' Zooname, Tier.TName Tiername, 2005 Einzug, 42 FROM Tier Ergebnis: Zooname Tiername Einzug 42 Unser Zoo Laber Unser Zoo Sabber Sortierung von Ausgaben: SELECT Gehege.GName, Gehege.Flaeche FROM Gehege ORDER BY Gehege.Flaeche ASC GName Flaeche Weide 9 Feld 10 Wald 20 Nicole Rottmann /12

8 7. Einfache SQL-Anfragen 1
7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Mehrere Sortierkriterien zusammen: SELECT * FROM Tier ORDER BY Tier.Gattung DESC, Tier.TName ASC Nicole Rottmann /12

9 7. Einfache SQL-Anfragen 2
7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Anfrage: Wie lauten die Namen aller Schafe? SELECT Tier.TName FROM Tier Where Tier.Gattung = 'Schaf' Ergebnis: TName Harald Walter Zusammengesetzte Bedingung: Anfrage: Welche Gattungen beanspruchen mindestens eine Flaeche von 4, sind aber keine Bären? SELECT Art.Gattung FROM Art WHERE Art.MinFlaeche >= 4 AND Art.Gattung<> 'Baer' Gattung Schaf Nicole Rottmann /12

10 7. Einfache SQL-Anfragen 2
7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Textanalyse: SELECT Tier.TName FROM Tier WHERE Tier.TName LIKE '%a%' Ergebnis: TName Laber Sabber Harald Walter Anfrage: Tiernamen, deren dritter Buchstabe ein n ist. SELECT Tier.TName WHERE Tier.TName LIKE '__n%' Bunny Nicole Rottmann /12

11 7. Einfache SQL-Anfragen 2
7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Operationen auf Attribute: SELECT LOWER (Tier.TName) FROM Tier WHERE LOWER (Tier.Gattung) = 'schaf' Ergebnis: LOWER (T harald walter Nicole Rottmann /12

12 7. Einfache SQL-Anfragen 3. Nutzung von Aggregatsfunktionen IV-LK
Statistische Auswertungen: Anfrage: Welches ist die größte Gehegefläche? SELECT MAX (Gehege.Flaeche) FROM Gehege Ergebnis: MAX(Gehege.Flaeche) 20 Anfrage: Wie groß ist die Gesamtfläche aller Gehege? SELECT SUM (Gehege.Flaeche) Gesamtflaeche Gesamtflaeche 39 Anfrage: Wie viele Tiere leben im Zoo Ergebnis: SELECT COUNT(*) Tieranzahl Tieranzahl FROM Tier 6 Funktionen für statistische Auswertungen. Um den Namen dazu zu finden ist Thema im Kapitel 9 Typischerweise wird der Name der Ergebnisspalte umbenannt. Mit der COUNT Funktion wird die Zahl der Zeilen im Ergebnis berechnet. In dien Klammern von COUNt kann man ein Attribut angeben, dann werden alle Zeilen gezählt, in denne das Attribut nicht den Wert NULL hat. SELECT COUNT (Tier.Gattung) Tieranzahl Beim Zählen kann man explizit fordern, dass doppelte Werte weggelassen werden. Dazu wird in den Klammern von COUNT das bereits bekannte Schlüsselwort DISTINCT dem Spaltennamen vorangestellt Die Anzahl unterschiedlicher im Zoo vertretener Arten kann dann wie folgt bestimmt werden. SELECT CO'U'NT(DISTINCT Tier.Gattung) Arten FROM Tier Ergebnis Arten 3 Nicole Rottmann /12

13 7. Einfache SQL-Anfragen 3. Nutzung von Aggregatsfunktionen IV-LK
Anfrage: Wie groß ist die durchschnittliche Gehegefläche? SELECT AVG (Gehege.Flaeche) Durchschnitt FROM Gehege Ergebnis: Durchschnitt 13 Nicole Rottmann /12

14 7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK
Anfrage: Wie lauten die Namen der Tiere und in welchen Gehegen leben sie? SELECT Tier.TName, Gehege.GName FROM Tier, Gehege WHERE Tier.GNr=Gehege.GNr Ergebnis: TName GName Laber Wald Sabber Wald Harald Feld …. Anfrage: Gib zu jedem Gehegenamen, die Gattungen der darin lebenden Tiere aus, die höchstens eine Fläche von 6 verbrauchen. SELECT DESTINCT Gehege.GName, Art.Gattung Ergebnis: FROM Gehege, Tier, Art GName Gattung WHERE Gehege.GNr = Tier.GNr AND Tier.Gattung = Art.Gattung AND Art.MinFlaeche <= 6 Feld Hase Feld Schaf Weide Hase Weide Schaf Nicole Rottmann /12

15 7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK
Grundsätzlicher Ansatz zur Formulierung einfacher SQL- Anfragen: Es werden die für die Anfrage erforderlichen Tabellen ausgesucht und in die FROM – Zeile geschrieben. Es wird die Verknüpfung der benutzen Tabellen in der WHERE- Bedingung festgelegt. Falls es die Anfrage erfordert, werden die weiteren Anforderungen in Teilbedingungen übersetzt. Die resultierenden Teilbedingung wird typischerweise mit AND mit der Bedingung aus 2. verknüpft. Es werden die Informationen, z.B. Attribute ausgewählt, die für die Ergebnisausgabe wichtig sind, und in die SELECT Zeile geschrieben. Bei Bedarf wird in der ORDER BY Zeile angegeben, in welcher Reihenfolge die Ausgaben erfolgen sollen. Nicole Rottmann /12

16 7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK
Umbenennung der Ergebnisspalten: SELECT G.GName Gebiet, T.TName Schaf FROM Gehege G, Tier T WHERE D.GNr= T.TNr AND T.Gattung ='Schaf' Ergebnis: Gebiet Schaf Feld Harald Weide Walter Anfrage: Es sollen die Nummern aller Gehege ausgegeben werden, in denen zwei unterschiedliche Gattungen leben. SELECT T1.GNr FROM Tier T1, Tier T2 WHERE T1.GNr = T2.GNr AND T1.Gattung <> T2.Gattung Ergebnis GNr ---- 2 3 Nicole Rottmann /12

17 7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK
Anfrage: Statt der Gehegenummer soll der Name des Geheges ausgegeben werden. SELECT Gehege.GName FROM Tier T1, Tier T2, Gehege WHERE T1.GNr = T2.GNr AND Gehege.GNr = T1.GNr AND T1.Gattung < T2.Gattung Ergebnis: GName Feld Weide Nicole Rottmann /12

18 7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK
Tabellen für kritisches Anfrageergebnis: Abfrage: Wie heißen die Mitarbeiter, deren Chef in der Abteilung 1 oder Abteilung 2 arbeitet. SELECT Mitarbeiter.Name FROM Mirarbeiter, Abteilung1, Abteilung2 WHERE Mitarbeiter.Chef=Abteilung1.MiNr OR Mitarbeiter.Chef=Abteilung2.MiNr Ergebnis: Es wurden keine Zeilen ausgewählt. FROM Mirarbeiter, Abteilung1 Name Udo Abteilung1 Mitarbeiter Abteilung2 MiNr Leiter 401 Erna 402 Edna MiNr Name Chef 401 Udo 1 402 Ute 3 MiNr Leiter Nicole Rottmann /12

19 7. Einfache SQL-Anfragen 5. Aufgaben IV-LK
Wiederholungsfragen: Wozu wird DISTINCT benötigt? Wozu kann der * in der SELECT Zeile genutzt werden? Welche Berechnungsmöglichkeiten gibt es in der SELECT Zeile? Wie kann man Ergebnisspalten umbenennen? Wie kann man neue Spalten bei der Berechnung von Tabellen erzeugen? Welche Möglichkeiten zur Sortierung der Ausgabe gibt es? Welche Möglichkeiten zur Textbearbeitung gibt es in SQL? Wie wird mit NULL Werten in WHERE Bedingungen umgegangen? Was sind Aggregatsfunktionen, was ist bei ihrer Nutzung zu beachten? Wie kann man mehrere Tabellen in SQL verknüpfen? Erkläre den Aufbau und Ablauf der Auswertung einfacher SQL- Anfragen. Beschreibe ein generelles Vorgehen zur Erstellung einer SQL- Anfrage. Wie kann man eine Tabelle in Anfragen mehrmals nutzen, wieso kann dies sinnvoll sein? Welche Besonderheit ist bei der Nutzung von OR Bedingungen und der Verknüpfung mehrerer Tabellen zu beachten? Nicole Rottmann /12

20 7. Einfache SQL-Anfragen 5. Aufgaben IV-LK
Übungsaufgaben: Gegeben seine folgende Tabellen zur Notenverwaltung. Formuliere folgende Textzeilen als SQL-Anfragen. Gib die Namen der Studierenden aus, die eine Prüfung im Fach "Wahl1" gemacht haben. Gib den Titel der Veranstaltungen aus und die zugehörige Note für alle Prüfungen, die Simson gemacht hat aus. Gib eine Liste aller Titel von Veranstaltungen mit den bisher in den Prüfungen erreichten Noten (Ausgabe: Titel, Note) aus. Gib die Anzahl der Studierenden aus, die bereits eine Prüfung im Fach DB gemacht haben. Gib die Namen aller Dozenten aus, die mindestens zwei Veranstaltungen anbieten. Gib die Durchschnittsnote für alle Fächer zusammen aus, die von Hinz unterrichtet wurden. Gib die Namen aller Studierenden aus, die mindestens genauso gut wie Simson in DB waren, aber nicht Simson sind. Gib die Namen aller Studierenden aus, die mindestens eine Prüfung bei Hinz gemacht haben. Geh davon aus, dass der veranstaltende Dozent auch Prüfer ist. Pruefung Student Veranstaltung MatNr Fach Note 42 Wahl1 3,0 DB 1,7 43 Wahl2 4,0 1,3 44 5,0 Kürzel Titel Dozent Wahl1 Controlling Hinz Wahl2 Java DB Datenbanken Kunz MatNr Name 42 Simson 43 Milhuse 44 Monz Nicole Rottmann /12


Herunterladen ppt "Datenbankentwicklung IV-LK"

Ähnliche Präsentationen


Google-Anzeigen