Informationssysteme / Datenbankabfragen - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Informationssysteme / Datenbankabfragen

Description:

Informationssysteme / Datenbankabfragen Thomas Mohr – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 38
Provided by: Thomas628
Category:

less

Transcript and Presenter's Notes

Title: Informationssysteme / Datenbankabfragen


1
Informationssysteme / Datenbankabfragen
  • Thomas Mohr

2
Informationssysteme
3
Was ist ein Informationssystem ?
  • Ein Informationssystem kann auf formalisierte
    Fragen eines Anwenders Antworten aus einer
    gegebenen Datenmenge geben
  • Komponenten eines Informationssystems

4
Ein Ausgangspunkt im Unterricht
  • Schüler führen eine Internet-Recherche
    durchNachbarländer Deutschlands Fläche,
    Einwohner, Hauptstadt
  • Nutzung eines Informationssystems
  • Unterschiedliche Darstellung der Informationen

5
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)

6
Software-Architekturen - Client-Server
7
Software-Architekturen - Client-Server
  • 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

8
Software-Architekturen Webarchitektur
9
Software-Architekturen Webarchitektur
  • Vorteile
  • Keine Installation von zusätzlicher Software beim
    Client
  • Nachteile
  • http-Protokoll ohne Sessionverwaltung

Darstellung
Client
Webclient (Browser)
Logik
Webserver (z.B. Apache und PHP)
Server
Datenbasis
Datenbankserver (z.B. MySQL)
Server
10
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.

11
bis hin zum Extrem einer Web Farm
Load Balancer
Application Server Farm
je 4 Prozessoren
HACMP Fail-Over
Production DB Server
FailOver DB Server
32 GByte RAM
32 GByte RAM
FDDI Switch
12
Arten von Datenbanken
  • Relationale Datenbanken
  • Die Daten werden in Form von Tabellen gespeichert
  • Zwischen den Tabellen werden Beziehungen
    aufgebaut (Relationen)

Land
Name Einwohner Hauptstadt Kontinent Dänemark 51650
00 Kopenhagen Europa Deutschland 81338000
Berlin Europa Indien 761000000
Delhi Asien Rwanda 6300000 Kigali Afrika
13
Arten von Datenbanken
  • Relationale Datenbanken typische Vertreter
  • Oracle
  • IBM (DB/2)
  • Microsoft SQL Server (Access ?)
  • Informix
  • MySQL
  • PostGreSQL

OpenSource
14
Abfragen mit SQL
  • SQL Structured Query Language.
  • Bezeichnet eine Sprache zur Kommunikation mit
    Datenbanken.
  • Ist international genormt und wird von vielen DBS
    verstanden.
  • Wird im Folgenden zur Formulierung von Abfragen
    eingesetzt.
  • Syntax einer (einfachen) SQL-Abfrage
  • SELECT Spalten
  • FROM Tabelle
  • WHERE Bedingung
  • ORDER BY Attribute
  • Die WHERE- und die ORDER BY-Klausel sind
    optional.

15
Datenbankzugriff - Ein erstes Beispiel
  • SELECT Name, Einwohner, Kontinent FROM Land
    WHERE Einwohner gt 10

Länder mit über 10 Mio. Einwohner
Land
LNR Name Einwohner Hauptstadt Kontinent DK Dänemar
k 5.16 Kopenhagen Europa D Deutschland 81.34
Berlin Europa IND Indien 761.00
Delhi Asien RWA Rwanda 6.30 Kigali Afrika

16
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 gt 20
17
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.

18
Relationale Datenbank Aufbau
  • Jeder Datensatz wird durch einen Schlüssel
    (Primärschlüssel) eindeutig identifiziert. Der
    Schlüssel
  • kann aus mehreren Attributen zusammengesetzt
    werden.
  • ist minimal, d.h. es kann kein Attribut
    weggelassen werden.
  • Oft wird ein zusätzliches, eindeutiges
    Schlüsselattribut hinzugefügt,z.B. eine
    Landeskennung
  • wird meist durch Unterstreichung gekennzeichnet.

19
Relationale Datenbanken Beziehungen
  • Zwischen den Tabellen bestehen Beziehungen
    (Relationen)
  • z.B. Kontinent eines Landes
  • Die Verknüpfung erfolgt grundsätzlich dadurch,
  • dass ein Fremdschlüssel der einen Tabelle
  • auf den zugehörigen Primärschlüssel der anderen
    Tabelle zeigt.
  • Vorteile
  • Daten werden jeweils nur in einer Tabelle
    gespeichert.
  • Datenänderungen sind leichter durchzuführen.
  • Strukturänderungen (z.B. das Hinzufügen der
    Kontinentfläche) lassen sich meist mit geringem
    Aufwand realisieren.
  • Die Struktur lässt flexiblere Abfragen zu.

Master
Detail
PKey Data
PKey Data FKey
20
SQL 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.

21
SQL einfache Joins
  • Cross-Join (jede Zeile mit jeder)
  • SELECT FROM Land, Kontinent

LNR Name Einwohner KNR DK Dänemark 5.16 EU D Deuts
chland 81.34 EU IND Indien 761.00 AS RWA Rwanda 6.
30 AF
KNR Name EU Europa AS Asien AF Afrika
Land
Kontinent
22
SQL einfache Joins
  • 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

23
SQL einfache Joins
  • Einschränken auf passende Datensätze (2).
  • Es sollen nur Länder mit gt 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

24
SQL einfache Joins
  • 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 gt 10

25
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.

26
Bisheriges Schema der Datenbank
  • Ein erstes E/R-Modell
  • eigentlich intuitiv zu lesen!?

27
SQL Tabellen-Alias
  • Soll in SQL auf eine Tabelle mehrfach zugegriffen
    werden, so kann dies mit Alias-Namen geschehen
  • Es sollen alle Städte mit mehr als 1 Mio.
    Einwohner ausgegeben werden dabei auch das
    zugehörige Land mit Hauptstadt.
  • logische Struktur
  • SELECT o.Name AS Stadt, l.Name AS Land, hs.Name
    FROM Ort o, Land l, Ort hs WHERE o.LNR l.LNR
    AND l.HauptONR hs.ONR AND
    o.Einwohnergt10000000

Der Alias-Name für Land ist nicht notwendig
(verkürzt die Abfrage)
28
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?

29
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?

30
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.

31
Struktur der Datenbank terra4
Sprache
n
gesprochen
1
n
m
Teil von
Land
Ort
Hauptstadt
n
1
1
n
Teil von
durchfließt
1
m
Kontinent
Fluss
32
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!
33
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

34
Struktur der kompletten Datenbank miniterra
Sprache
n
gesprochen
n
1
n
m
Teil von
benachbart
Land
Ort
Hauptstadt
m
n
1
1
n
Teil von
durchfließt
m
1
1
mündet
Kontinent
Fluss
n
35
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)

36
Vernetzung des Themas - Grenzen von SQL
  • Problem Verfolgen eines Flusslaufes
  • von der Quelle zum Meerz.B. Spree
  • Hier werden iterative Strukturenbenötigt, die
    SQL (als mengen-orientierte Sprache) im Standard
    nicht bietet.
  • Anknüpfung an Programmierung
  • PHP, Delphi, Java

37
Vernetzung des Themas - Grenzen von SQL
  • Problem Verfolgen eines Flusslaufes
  • vom Meer zu den Zuflüssenz.B. Nordsee
  • Beispiel für eine (elegante?)rekursive
    Programmierung

38
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

39
Vernetzung des Themas - Datenschutz
  • Datenbank-basierte Umfrage in der Schule
  • Wie können durch Verknüpfen (eigentlich
    harmloser) Daten neue Informationen gewonnen
    werden?

40
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

41
Wahlfach Informatik im Leibniz-Gymnasium Pirmasens
Write a Comment
User Comments (0)
About PowerShow.com