Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Nutzung und Modellierung von Datenbanken

Ähnliche Präsentationen


Präsentation zum Thema: "Nutzung und Modellierung von Datenbanken"—  Präsentation transkript:

1 Nutzung und Modellierung von Datenbanken
Quelle: openclipart.org, Lizenz: Public Domain Vertiefung SQL T. Fruth

2 Inhalt SQL-Aliases Berechnungen mit SQL Aggregatfunktionen
Gruppierungen Weitere SQL-Funktionen Zur Information: Alle Aufgaben und SQL-Statements in dieser Präsentation beziehen sich auf die Terra-Datenbank (Endversion), siehe nächste Folie.

3 Relationenmodell Terra
Quelle: inf-schule.de, Lizenz: inf-schule

4 1 SQL-Aliases

5 SQL-Aliases (1) Gib die Namen aller Weltmetropolen mit mehr als 10 Mio. Einwohner und die Namen der entsprechenden Länder absteigend nach Einwohnerzahl sortiert aus. SELECT ort.Name, ort.Einwohner, land.Name FROM ort, land WHERE ort.LNR = land.LNR AND ort.Einwohner > ORDER BY ort.Einwohner DESC; Die Spaltenbezeichnungen der Ausgabe sind ungünstig gewählt. Das liegt daran, weil die originären Spaltenbezeichnungen der entsprechenden Tabellen der Datenbank verwendet wurden.

6 SQL-Aliases (2) Gib die Namen aller Weltmetropolen mit mehr als 10 Mio. Einwohner und die Namen der entsprechenden Länder absteigend nach Einwohnerzahl sortiert aus. SELECT ort.Name AS Metropole, ort.Einwohner, land.Name AS Land FROM ort, land WHERE ort.LNR = land.LNR AND ort.Einwohner > ORDER BY ort.Einwohner DESC; BESSER!

7 Einfache Berechnungen
2 Einfache Berechnungen mit SQL

8 Einfache Berechnungen
Gib die Bevölkerungsdichte (in Einwohner / km²) aller Europäischen Länder aus. Beachte: In der land-Tabelle werden die Einwohner in Millionen angegeben. SELECT land.Name, land.Einwohner * / land.Flaeche AS BevDichte FROM land, kontinent WHERE land.KNR = kontinent.KNR AND kontinent.Name = 'Europa' ORDER BY BevDichte DESC; Terme unter Verwendung der Operatoren +, -, * und / sind im SELECT-Teil erlaubt. Zusatzaufgabe: Ändern Sie die Abfrage so ab, dass die Bevölkerungsdichte in 1000 Einwohner / km² angegeben wird.

9 3 Berechnungen mit Aggregatfunktionen

10 Aggregatfunktionen (1)
Eine Aggregatfunktion ist eine Funktion, die gewisse Eigenschaften von Daten zusammenfasst. Quelle: wikipedia Die Aggregatfunktionen im Überblick Funktion Ergebnis COUNT (<Datenfeld>) Anzahl der Einträge in diesem Datenfeld. AVG (<Datenfeld>) Durchschnitt aller Werte in diesem Datenfeld. MAX (<Datenfeld>) Maximum aller Werte in diesem Datenfeld. MIN (<Datenfeld>) Minimum aller Werte in diesem Datenfeld. SUM (<Datenfeld>) Summe aller Werte in diesem Datenfeld. Quelle: Fischer, Knapp, Neupert, Grundlagen der Informatik II, Oldenbourg-Verlag, 1. Auflage, München, 2006

11 Aggregatfunktionen (2)
Wie viele Länder gibt es auf der Erde? SELECT COUNT(*) AS AnzLänder FROM land; Wie viele Orte mit dem Namen „Berlin“ gibt es auf der Erde? SELECT COUNT(ort.Name) AS AnzahlBerlins FROM ort WHERE ort.Name = 'Berlin';

12 Aggregatfunktionen (3)
Wie viele Menschen leben in deutschen Orten im Schnitt? SELECT AVG(ort.Einwohner) AS durchSchnEinw FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland';

13 Aggregatfunktionen (4)
Die restlichen Aggregatfunktionen funktionieren analog. Formulieren Sie für folgende Fragestellungen jeweils eine Abfrage: Wie viele Einwohner hat der größte Ort der Welt? Wie groß (Fläche) ist das kleinste Land der Welt? Wie viele Menschen gibt es auf der Welt?

14 Aggregatfunktionen (5)
Bisher waren die Fragestellungen recht einfach, da das Ergebnis nur aus einer einzelnen Zahl (z.B. Anzahl Länder der Erde oder durchschnittliche Einwohner pro Land, …) bestand. Man spricht hier von statistischen Daten. Schauen wir uns nun komplexere Fragestellungen an…

15 4 Gruppierungen

16 Gruppierungen (1) Mit SQL ist es möglich, einen Datenbestand zunächst einmal in einzelne Gruppen einzuteilen und auf diese Gruppen dann jeweils eine Aggregatfunktion anzuwenden. Mit diesem Prinzip kann man nun komplexere Fragestellungen an einen Datenbestand beantworten…

17 Gruppierungen (2) Gib die Anzahl der deutschen Orte je Bundesland (Landesteil) aus. Aggregatfunktion SELECT ort.landesteil AS Bundesland, COUNT(*) AS AnzahlOrte FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland' GROUP BY ort.landesteil; Gruppierung Man erkennt in der Fragestellung, dass sich eine Abfrage nicht auf eine ganze Tabelle, sondern auf einzelne Gruppen (hier: Bundesländer) einer Tabelle bezieht. Auf die einzelnen Gruppen kann man dann eine Aggregatfunktion anwenden (hier: COUNT).

18 Gruppierungen (3) Gib für jeden Kontinent die durchschnittliche Größe (Fläche) seiner Länder an. SELECT kontinent.Name AS Kontinent, AVG(land.Einwohner) AS durchSchnEinwJeLand FROM land, kontinent WHERE land.KNR = kontinent.KNR GROUP BY kontinent.Name;

19 Gruppierungen (4) Man kann das Ergebnis einer Gruppierung auch einschränken. Wir haben bereits die Anzahl der Orte je Bundesland mit einer gruppierenden Abfrage bestimmt. SELECT ort.landesteil AS Bundesland, COUNT(*) AS AnzahlOrte FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland' GROUP BY ort.landesteil; In einer nächsten Abfrage sollen die deutschen Stadtstaaten aus dem Ergebnis herausgenommen werden, also nur jene Bundesländer angezeigt werden, die mehr als einen Ort aufweisen.

20 Gruppierungen (5) SELECT ort.landesteil AS Bundesland, COUNT(*) AS AnzahlOrte FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland' GROUP BY ort.landesteil; SELECT ort.landesteil AS Bundesland, COUNT(*) AS AnzahlOrte FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland' GROUP BY ort.landesteil HAVING COUNT(*) > 1; Vergewissern Sie sich selbst, dass die Abfrage das gewünschte Ergebnis liefert. ODER SELECT ort.landesteil AS Bundesland, COUNT(*) AS AnzahlOrte FROM ort, land WHERE ort.LNR = land.LNR AND land.Name='Deutschland' GROUP BY ort.landesteil HAVING AnzahlOrte > 1; Es können auch Aliasnamen in der HAVING-Klausel verwendet werden.

21 weiteren SQL-Funktionen
5 Berechnungen mit weiteren SQL-Funktionen

22 Weitere SQL-Funktionen
Es gibt weitere, vordefinierte SQL-Funktionen. Ein Liste finden Sie z.B. hier. Überlegen Sie sich selbst Abfragen an die Terra-DB unter Verwendung weiterer SQL-Funktionen.


Herunterladen ppt "Nutzung und Modellierung von Datenbanken"

Ähnliche Präsentationen


Google-Anzeigen