INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

43
I N F O R M A T I K Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009

Transcript of INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

Page 1: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

I N F O R M A T I K

Informationssysteme / Datenbankabfragen

Thomas Mohr

24. April 2009

Page 2: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

2

IN

FO

RM

AT

IKWas sagt der Lehrplan?

Sammlung personenbezogener Daten Missbrauch personenbezogener Daten Schutz personenbezogener Daten

Bedeutung von Datenbanken Informationsdarstellung mit verknüpften Tabellen Erstellung von Abfragen mit einer Abfragesprache

Page 3: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

3

IN

FO

RM

AT

IKInformationssysteme

Page 4: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

4

IN

FO

RM

AT

IK

Was ist ein Informationssystem ?

• Ein Informationssystem kann auf formalisierte Fragen eines Anwenders Antworten aus einer gegebenen Datenmenge geben Komponenten eines Informationssystems:

Informationssystem

Erfassung

Speicherung

Analyse

Darstellung

DatenbanksystemDBS

Datenbank(Datenbasis)

Datenbank(Datenbasis)

DatenbankmanagementsystemDBMS, z.B. MySQL

Page 5: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

5

IN

FO

RM

AT

IK

Ein Ausgangspunkt im Unterricht…

• Schüler führen eine Internet-Recherche durch:„Nachbarländer Deutschlands – Fläche, Einwohner, Hauptstadt“ Nutzung eines Informationssystems Unterschiedliche Darstellung der Informationen

Page 6: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

6

IN

FO

RM

AT

IK

Software-Architekturen: „Standalone“-Programm

• Vorteile Übersichtlichkeit (?) Schnell zu programmieren nur eine

Programmiersprache

• Nachteile Daten meist nur vom

erzeugenden Programm zu lesen

Erweiterungen aufwändig Immer wieder gleiche

Probleme (z.B. Datumsformat)

PCDarstellung

Anwendungsprogramm „Logik“

Datenbasis

Page 7: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

7

IN

FO

RM

AT

IK

(Datenbank)Server Datenbasis

Darstellung

Anwendungsprogramm „Logik“

Datenbasis

Software-Architekturen - Client-Server

Server

ClientDarstellung

Anwendungsprogramm„Logik“

Page 8: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

8

IN

FO

RM

AT

IK

Software-Architekturen - Client-Server

(Datenbank)Server Datenbasis

Server

ClientDarstellung

Anwendungsprogramm„Logik“

• Vorteile Datenbank übernimmt

„Standardaufgaben“ Daten zentral vorhanden

(für mehrere Benutzer / Programme)

Erweiterungen relativ einfach

• Nachteile Installation von Software auf

allen Clients notwendig Weitere „Sprache“ zum

Datenbankzugriff

Page 9: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

9

IN

FO

RM

AT

IK

Datenbankserver (z.B. MySQL) Datenbasis

Darstellung

Anwendungsprogramm„Logik“

Software-Architekturen – Webarchitektur

Webclient (Browser) Darstellung

Webserver (z.B. Apache und PHP) „Logik“

Server

Server

Client

Page 10: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

10

IN

FO

RM

AT

IK

Software-Architekturen – Webarchitektur

• Vorteile Keine Installation von

zusätzlicher Software beim Client

• Nachteile http-Protokoll ohne

Sessionverwaltung

Webclient (Browser)

Webserver (z.B. Apache und PHP)

Datenbankserver (z.B. MySQL)

Darstellung

„Logik“

Datenbasis

Server

Server

Client

Page 11: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

11

IN

FO

RM

AT

IK

Typische Hardware-Verteilung

• Viele (Web-) Clients teilen sich die Dienste eines Webservers, der wiederum auf einen Datenbankserver zurückgreift. In kleinen Systemen können Web- und Datenbankserver auf dem

gleichen Rechner sein.

Datenbankserver

Webserver

Clients

Page 12: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

12

IN

FO

RM

AT

IK

…bis hin zum Extrem einer Web Farm

HACMP Fail-Over

Production DB Server FailOver DB Server

2,4 TByte

FDDI Switch

32 GByte RAM

Load Balancer

Application Server Farm

je 4 Prozessoren

32 GByte RAM

Page 13: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

13

IN

FO

RM

AT

IK • Relationale Datenbanken

Die Daten werden in Form von Tabellen gespeichert Zwischen den Tabellen werden Beziehungen aufgebaut

(Relationen)

Name Einwohner Hauptstadt Kontinent

Dänemark 5165000 Kopenhagen EuropaDeutschland 81338000 Berlin EuropaIndien 761000000 Delhi AsienRwanda 6300000 Kigali Afrika

Arten von Datenbanken

Attribut (Merkmal, Spalte)

Attributwert (Datenwert)

Datensatz (Tupel)Attributklas

se

Land

Page 14: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

14

IN

FO

RM

AT

IK

Arten von Datenbanken

• Relationale Datenbanken – typische Vertreter Oracle IBM (DB/2) Microsoft SQL Server (Access ?) Informix MySQL PostGreSQL

OpenSource

Page 15: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

15

IN

FO

RM

AT

IK

Was bietet mir eine Datenbank?

Strukturierte Speicherung von Daten Verteilter, gleichzeitiger Zugriff mehrerer Benutzer /

Programme

ACID – Prinzip Atomicity

• Transaktionen (Änderungen an der Datenbank) werden ganz oder gar nicht durchgeführt

Consistency• Eine Transaktion führt wieder zu einem konsistenten (gültigen)

Zustand der Datenbank Isolation

• Transaktionen beeinflussen sich nicht gegenseitig Durability

• Eine Transaktion ist dauerhaft gespeichert, auch gegen Systemabstürze gesichert

Page 16: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

17

IN

FO

RM

AT

IK

LNR Name Einwohner Hauptstadt Kontinent

DK Dänemark 5.16 Kopenhagen EuropaD Deutschland 81.34 Berlin EuropaIND Indien 761.00 Delhi AsienRWA Rwanda 6.30 Kigali Afrika… … … … …

Land

SELECT Name, Einwohner, Kontinent FROM Land WHERE Einwohner > 10

Datenbankzugriff mit SQL - Ein erstes Beispiel

Länder mit über 10 Mio.

Einwohner

Ergebnistabelle

Name Einwohner Kontinent

Deutschland 81.34 EuropaIndien 761.00 Asien… … …

Page 17: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

18

IN

FO

RM

AT

IK

Ein erstes Problem der Datenbank führt zur Erweiterung…

• Welche Länder gibt es in Europa mit mehr als 20 Mio Einwohner?SELECT Name, Einwohner FROM Land WHERE Kontinent = 'Europa' AND Einwohner > 20

Frankreich??Problem: Europa wird unterschiedlich geschrieben!

Lösung: Auslagerung in eine eigene Tabelle

Page 18: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

19

IN

FO

RM

AT

IK • Wozu dient die Spalte LNR?

• … ein anderes Beispiel: Eine Tabelle mit Städten. Suche nach der Hauptstadt „Berlin“

Suche nach der Hauptstadt „Washington“

Exkurs: Primärschlüssel

Man benötigt noch das Land als Suchhilfe.

Selbst das Land reicht als Suchhilfe nicht

aus.

Page 19: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

21

IN

FO

RM

AT

IK

Relationale Datenbanken – Beziehungen

• Land und Kontinent werden in zwei getrennten Tabellen gespeichert und über eine Beziehung miteinander verknüpft.

• Zur Verknüpfung dient ein Kürzel des Kontinents, das als Fremdschlüssel in Land gespeichert wird.

KNR Name

EU EuropaAS AsienAF Afrika

Kontinent

LNR Name Einwohner Hauptstadt Kontinent

DK Dänemark 5.16 Kopenhagen EuropaD Deutschland 81.34 Berlin EuropaIND Indien 761.00 Delhi AsienRWA Rwanda 6.30 Kigali Afrika

LNR Name … KNR

DK Dänemark … EUD Deutschland … EUIND Indien … ASRWA Rwanda … AF

Land

Schlüsselattribut aus Kontinent

Page 20: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

23

IN

FO

RM

AT

IKSQL – einfache Joins

• Müssen in SQL Daten aus mehreren Tabellen entnommen werden, so werden sog. „Joins“ gebildet. Die Abarbeitung eines Joins in mehreren Schritten kann an

folgendem Beispiel veranschaulicht werden:• Es sollen alle Länder mit ihren Kontinenten ausgegeben werden,

die mehr als 10 Mio. Einwohner haben.

LNR Name Einwohner KNR

DK Dänemark 5.16 EUD Deutschland 81.34 EUIND Indien 761.00 ASRWA Rwanda 6.30 AF

Land

KNR Name

EU EuropaAS AsienAF Afrika

Kontinent

Page 21: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

24

IN

FO

RM

AT

IKSQL – einfache Joins

1. Cross-Join („jede Zeile mit jeder“) SELECT *

FROM Land, Kontinent

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

LNR Name Einwohner KNR

DK Dänemark 5.16 EUD Deutschland 81.34 EUIND Indien 761.00 ASRWA Rwanda 6.30 AF

Lan

d KNR Name

EU EuropaAS AsienAF Afrika

Kon

tin

en

t

Page 22: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

25

IN

FO

RM

AT

IK

WHERE Land.KNR= Kontinent.KNR

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

2. Einschränken auf „passende“ Datensätze. Es dürfen nur die Zeilen genommen werden, für die die

„Land“ und die „Kontinent“ Tabelle Daten des gleichen Kontinents enthalten.

Dies wird durch die sog. „Join-Bedingung“ erreicht.

SELECT * FROM Land, Kontinent

SQL – einfache Joins

Page 23: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

26

IN

FO

RM

AT

IK

AND Land.Einwohner > 10

SQL – einfache Joins

2. Einschränken auf „passende“ Datensätze (2). Es sollen nur Länder mit > 10 Mio. Einwohner gezeigt

werden. Momentan würde auch „Dänemark“ ausgegeben werden.

Also muss eine weitere Bedingung erfüllt sein: SELECT *

FROM Land, Kontinent WHERE Land.KNR = Kontinent.KNR

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

Page 24: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

27

IN

FO

RM

AT

IKSQL – einfache Joins

3. Einschränken auf gesuchte Spalten. Nur bestimmte Spalten werden ausgegeben. SELECT Land.Name, Land.Einwohner, Kontinent.Name

FROM Land,Kontinent WHERE Land.KNR = Kontinent.KNR AND Land.Einwohner > 10

Name Einwohner Name

Deutschland 81.34 EuropaIndien 761.00 Asien… … …

In der Realität versucht das DBMS, durch „geschicktes“ Vorgehen die Datenmenge schon früher zu reduzieren.

LNR Name Einwohner KNR KNR Name

D Deutschland 81.34 EU EU EuropaIND Indien 761.00 AS AS Asien… … … … …

Page 25: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

28

IN

FO

RM

AT

IK

Erweiterung der Datenbank

• Es sollen nun die wichtigsten Orte der Länder gespeichert werden.

• Wie sieht eine solche Ländertabelle aus? Es wird eine neue Tabelle „Ort“ angelegt mit einem

Fremdschlüssel auf „Land“.

ONR Name … LNR

BANGAL Bangalore … INDGOETTI Göttingen … DKARLSR Karlsruhe … DKOPENH Kopenhagen …

DK

Ort

LNR Name … KNR

DK Dänemark … EUD Deutschland … EUIND Indien … ASRWA Rwanda … AF

Land

Schlüsselattribut aus Land

Page 26: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

29

IN

FO

RM

AT

IK

Kontinent

Teil von

Land Ort

Teil von

Hauptstadt

Bisheriges „Schema“ der Datenbank

• Ein erstes „E/R-Modell“ eigentlich intuitiv zu lesen!?

Page 27: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

31

IN

FO

RM

AT

IK

Erweiterung der Datenbank

• Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen

(z.B. Koblenz)

• Wie sieht die Tabelle für die Flüsse aus?

FNR NameLaenge

ELB Elbe 1144MEK Mekong 4500MOS Mosel 544RHE Rhein 1320

Fluss

ONR Name

GOETTI GöttingenKARLSR KarlsruheKOBLEN Koblenz KOPENHKopenhagen

Ort

ONR

HAMBURPHNOMPKOBLENKOBLEN

Problem: Für Flüsse müssen beliebig viele Orte eingetragen werden.

Page 28: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

32

IN

FO

RM

AT

IK

Erweiterung der Datenbank

• Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen

(z.B. Koblenz)

• Wie sieht die Tabelle für die Flüsse aus?

FNR NameLaenge

ELB Elbe 1144MEK Mekong 4500MOS Mosel 544RHE Rhein 1320

Fluss

ONR Name

GOETTI GöttingenKARLSR KarlsruheKOBLEN Koblenz KOPENHKopenhagen

Ort

FNR

LEIRHERHE

Problem: Für Orte müssen mehrere Flüsse eingetragen werden.

Lösung: Auslagerung der Zuordnung in eine eigene Tabelle

Page 29: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

33

IN

FO

RM

AT

IK

Erweiterung der Datenbank

• Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen

(z.B. Koblenz) Zuordnungstabelle mit Schlüsseln aus beiden

Haupttabellen.

FNR NameLaenge

ELB Elbe 1144MEK Mekong 4500MOS Mosel 544RHE Rhein 1320

Fluss

ONR Name

GOETTI GöttingenKARLSR KarlsruheKOBLEN Koblenz KOPENHKopenhagen

Ort

FNR ONR

ELBHAMBURRHE KOBLENRHE KARLSRMOS KOBLEN

Stadtfluss

Page 30: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

34

IN

FO

RM

AT

IK

Struktur der Datenbank terra4

Kontinent

Sprache

Teil von

gesprochen

Land

Fluss

Ort

Teil von

durchfließt

n

m

n

1

1 n

Hauptstadt1 1 n

m

Page 31: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

35

IN

FO

RM

AT

IK

Gruppieren von Ergebnissen

• Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Bsp.: Wie viele Städte sind in Europa pro Land verzeichnet? SELECT o.ONR, l.Name

FROM Ort o, Land l WHERE o.LNR = l.LNR AND l.KNR = 'EU‘ ORDER BY l.Name

Selbst zählen???NEIN!

ONR Name

AALBOR DänemarkKOPENH DänemarkBERLIN DeutschlandDUESSE DeutschlandMAINZ DeutschlandTALLIN Estland

Page 32: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

36

IN

FO

RM

AT

IK

Gruppieren von Ergebnissen

• Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Bsp.: Wie viele Städte sind in Europa pro Land verzeichnet? SELECT l.Name, COUNT(*) AS Anzahl

FROM Ort o, Land l WHERE o.LNR = l.LNR AND l.KNR = 'EU‘ GROUP BY l.Name ORDER BY l.Name

ONR Name

AALBOR DänemarkKOPENH DänemarkBERLIN DeutschlandDUESSE DeutschlandMAINZ DeutschlandTALLIN Estland

3

1

2

NameAnzahl

Dänemark 2Deutschland 3Estland 1

Page 33: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

37

IN

FO

RM

AT

IK

Struktur der kompletten Datenbank „miniterra“

Kontinent

Sprache

Teil von

gesprochen

Land

Fluss

Ort

Teil von

durchfließt

mündet

n

m

n

1

1 n

Hauptstadt1 1 n

m

1

n

benachbart

m

n

Page 34: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

38

IN

FO

RM

AT

IK

u.v.m.

• SQL bietet noch einige weitere (hier nicht behandelte) Möglichkeiten: OUTER JOINS:

• Es werden beim Join auch Datensätze angezeigt, die keinen „Join-Partner“ finden.

• Bsp.: Alle Städte sollen ausgegeben werden und zwar (wenn vorhanden) mit ihren Flüssen.

Behandlung von leeren Feldern (NULL-Werten) …

Page 35: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

39

IN

FO

RM

AT

IK

Vernetzung des Themas - Auswertungen

• Grafische Auswertung der Datenbank(z.B. Anzahl der Länder pro Kontinent) über Werkzeuge (z.B. Excel) über selbst erstellte Programme

Page 36: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

40

IN

FO

RM

AT

IK

Vernetzung des Themas - Koordinatensystem

• Umrechnung Breiten/Längen-Angaben in Bildschirmkoordinaten

Page 37: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

41

IN

FO

RM

AT

IK

Vernetzung des Themas - Grenzen von SQL

• Problem: „Verfolgen eines Flusslaufes“ von der Quelle zum Meer

z.B. Spree

• Hier werden iterative Strukturenbenötigt, die SQL (als mengen-orientierte Sprache) im Standard nicht bietet.

Anknüpfung an Programmierung PHP, Delphi, Java

Rhein

Mosel

Main

NeckarDonau

Isar

Inn

FuldaWerra

Weser

Elbe

HavelSpreeAller

Elbe

HavelSpree

Nordsee

Page 38: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

42

IN

FO

RM

AT

IK

Vernetzung des Themas - Grenzen von SQL

• Problem: „Verfolgen eines Flusslaufes“ vom Meer zu den Zuflüssen

z.B. Nordsee

Beispiel für eine (elegante?)rekursive Programmierung

Rhein

Mosel

Main

NeckarDonau

Isar

Inn

FuldaWerra

Weser

Elbe

HavelSpreeAller

Nordsee

Rhein

Mosel

Main

Neckar

FuldaWerra

Weser

Aller

Elbe

HavelSpree

Nordsee

Page 39: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

43

IN

FO

RM

AT

IK

Welches Datenbanksystem ? - Vorschlag: MySQL

Freie Software mit großer Entwicklergemeinde inzwischen allerdings von SUN aufgekauft

Installation über XAMPP-Paket auch für Schüler leicht machbar vorkonfigurierte Version (inkl. Datenbanken) ohne

Installationszwang kann den Schülern zur Verfügung gestellt werden

Es fehlen noch typische Konzepte relationaler Datenbanken Echte Fremdschlüssel-Überwachung Trigger …

• www.xampp.org • www.mysql.com

Page 40: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

44

IN

FO

RM

AT

IK

Datenschutz

• Anknüpfungspunkt: www.schober.de

Page 41: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

45

IN

FO

RM

AT

IK

Datenschutz

• Ein Blick ins Bundesdatenschutzgesetz:(http://bundesrecht.juris.de/bdsg_1990/ )

Page 42: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

46

IN

FO

RM

AT

IK

Vernetzung des Themas - Datenschutz

• Datenbank-basierte Umfrage in der Schule Wie können durch Verknüpfen (eigentlich harmloser) Daten

neue Informationen gewonnen werden?

Page 43: INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr 24. April 2009.

47

IN

FO

RM

AT

IK

Wahlfach Informatik im Leibniz-Gymnasium Pirmasens

FragenFragen