Datenbanken und Sql_Druck

Werbung
Informationssysteme / Datenbanken
Weiterbildungskurs Informatik, September 2017
Thomas Mohr, StD
Leibniz-Gymnasium Pirmasens
I
N
F
O
R
M
A
T
I
K
K
Agenda
T
I
Datenbanken – Wozu?
A
Abfragesprachesprache SQL
R
M
Verwaltung MySQL / MariaDB
O
Datenbankmodellierung
N
F
Themenvernetzung (DB-Zugriff, etc.)
I
Ausblick
2
I
N
F
O
R
M
A
T
I
K
Informationssysteme
3
Was ist ein Informationssystem ?
I
K
• Ein Informationssystem kann auf formalisierte Fragen eines Anwenders
Antworten aus einer gegebenen Datenmenge geben
A
T
Komponenten eines Informationssystems:
R
M
Informationssystem
Datenbanksystem
DBS
O
Erfassung
Speicherung
Datenbankmanagementsystem
F
DBMS, z.B. MySQL
N
Analyse
Darstellung
I
Datenbank
(Datenbasis)
4
Datenbank
(Datenbasis)
Ein Ausgangspunkt im Unterricht…
I
K
• Schüler führen eine Internet-Recherche durch:
„Städte in Deutschland – Einwohner, geografische Lage“
A
T
Schüler nutzen ein Informationssystem
Schüler stellen automatisch Informationen unterschiedlich dar
N
F
O
R
M
Mainz
196.000
50° Nord
8° 16‘ Ost
Landau
43000
49,19
8,12
I
Listen
Name
Einwohner Breite
Länge
Mainz
199000
50
8
Landau
43000
49
8
Tabellen
Tabellen bieten schon „von Hand“ Vorteile:
leichter zu ergänzen (neue Spalte)
Summenzeile
…
6
Motivation - Datenbank
I
K
• Idee: Sammlung der gefundenen Städte in einem Tabellenblatt
(OpenOffice Calc / MS Excel) auf einem zentralen Laufwerk
T
Es treten typische Probleme auf:
I
N
F
O
R
M
A
Es kann immer nur ein Benutzer die Datei öffnen.
Daten können von jedem geändert / gelöscht werden.
Keinerlei Konsistenzprüfung der eingegebenen Daten.
Abhilfe: Nutzung eines Datenbanksystems…
MS Access ist in dieser Hinsicht schon ungeeignet.
7
Software-Architekturen: „Standalone“-Programm
K
•
Vorteile
•
Daten meist nur vom erzeugenden
Programm zu lesen
Erweiterungen aufwändig
Immer wieder gleiche Probleme
(z.B. Datumsformat)
O
R
M
A
T
I
Übersichtlichkeit (?)
Schnell zu programmieren
nur eine Programmiersprache
Nachteile
PC
I
N
F
Anwendungsprogramm
9
•
Vorteile
Datenbank übernimmt
„Standardaufgaben“
Daten zentral vorhanden
(für mehrere Benutzer / Programme)
•
Nachteile
Installation von Software auf allen
Clients notwendig
Weitere „Sprache“ zum
Datenbankzugriff
Erweiterungen relativ einfach
Anwendungsprogramm
Client
I
N
F
O
R
M
A
T
I
K
Software-Architekturen - Client-Server
(Datenbank)Server
Server
12
•
•
Vorteile
Keine Installation von zusätzlicher
Software beim Client
Nachteile
http-Protokoll macht das aufwändig
T
I
K
Software-Architekturen – Webarchitektur
A
Client
Webserver (z.B. Apache und PHP)
Server
I
N
F
O
R
M
Webclient (Browser)
Datenbankserver (z.B. MySQL)
Server
15
• 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.
A
T
I
K
Typische Hardware-Verteilung
Webserver
I
N
F
O
R
M
Clients
Datenbankserver
16
I
K
Das andere Extrem – eine Web Farm
T
Load Balancer
M
A
Application Server Farm
R
je 4 Prozessoren
O
HACMP Fail-Over
FailOver DB Server
32 GByte RAM
32 GByte RAM
I
N
F
Production DB Server
FDDI Switch
2,4 TByte
18
• Man unterscheidet verschiedene Arten von Datenbanken:
• Hierarchische Datenbanken
Die Datenelemente sind baumartig miteinander verbunden
• Vernetzte Datenbanken
Die Datenelemente sind mit Zeigern zu einem Netz miteinander verbunden
I
N
F
O
R
M
A
T
I
K
Arten von Datenbanken
• Beide Formen waren vor allem bei Großrechnern im Einsatz und
werden zunehmend von relationalen Datenbanken abgelöst
19
• Relationale Datenbanken
Die Daten werden in Form von Tabellen gespeichert
Zwischen den Tabellen werden Beziehungen aufgebaut (Relationen)
T
I
K
Arten von Datenbanken
Attribut (Spalte, Merkmal)
Name
A
Datenwert (Attributwert)
M
Einwohner
Breite
Berlin
Mainz
Paris
Speyer
3458763
184752
2181300
50600
52,52 13,41
50,00
8,27
48,86
2,35
49,31
8,43
Laenge
Land
Deutschland
Deutschland
Frankreich
Deutschland
F
O
Name
R
Ort
Datensatz (Tupel)
I
N
Attributklasse
• Empfehlung:
20
Einheitliche Begriffe nutzen,
nicht zu nah an der mathematischen Betrachtung (Relationenalgebra)
• Atomare Werte
Ein Wert für ein Attribut in einem Datensatz soll atomar sein.
nur einfache Werte
keine Listen
O
R
M
A
T
I
K
Daten in Tabellen
I
N
F
Nicht atomarer Datenwert
21
• Relationale Datenbanken – typische Vertreter
Oracle
IBM (DB/2)
Microsoft SQL Server (Access ?)
Informix (heute IBM)
MySQL/MariaDB
OpenSource
PostGreSQL
I
N
F
O
R
M
A
T
I
K
Arten von Datenbanken
22
Datenbanken – Wozu?
Abfragesprachesprache SQL
Verwaltung MySQL / MariaDB
Datenbankmodellierung
I
N
F
O
R
M
A
T
I
K
Agenda
23
Themenvernetzung (DB-Zugriff, etc.)
Ausblick
• An der Schnittstelle nach außen bietet das Datenbanksystem (DBS)
Sprachen für folgende Zwecke:
I
K
Sprachen zur Datenbankverwaltung
• Bei relationalen DBS ist dies alles in der Sprache SQL vereint.
Beschränkung in der Schule im Wesentlichen auf Abfragesprache.
GF - Lehrplan
I
N
F
O
R
M
A
T
Datenabfrage und -manipulation (DML)
Verwaltung der Datenbank und Definition der Datenstrukturen (DDL)
Berechtigungssteuerung (DCL)
24
• 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.
A
T
I
K
Abfragen mit SQL
SELECT
FROM
WHERE
ORDER
[Spalten]
[Tabelle]
[Bedingung]
BY [Attribute];
I
N
F
O
R
M
• Syntax einer (einfachen) SQL-Abfrage:
25
• Die WHERE- und die ORDER BY-Klausel sind optional.
Datenbankzugriff mit SQL - Ein erstes Beispiel
T
Name
Einwohner
Breite
Berlin
Mainz
Paris
Speyer
…
3458763
184752
2181300
50600
…
52,52 13,41
50,00
8,27
48,86
2,35
49,31
8,43
…
…
Laenge
Millionenstädte ?
Land
Deutschland
Deutschland
Frankreich
Deutschland
…
I
N
F
O
R
M
ort
A
I
K
SELECT Name, Einwohner, Land
FROM ort
WHERE Einwohner > 1000000
Ergebnistabelle
Name
Einwohner
Land
Berlin
Paris
…
3458763
2181300
… …
Deutschland
Frankreich
28
• Bedingungen mit Textattributen:
Name = 'Paris'
Name LIKE 'P%'
Name LIKE 'A_len'
(Potsdam, Peine, Pirmasens)
(Aalen, Ahlen)
A
T
I
K
SQL – WHERE
I
N
F
O
R
M
• Bedingungen mit Zahlattributen:
29
Stufe=7
Stufe<>7
Stufe<7
Stufe>7
Stufe<=7
Stufe>=7
Stufe BETWEEN 7 AND 10
(gleich 7)
(ungleich 7)
(kleiner 7)
(größer 7)
(kleiner gleich 7)
(größer gleich 7)
(zwischen 7 und 10)
K
SQL – WHERE
• Vergleich auf Nullwert (kein Attributwert angegeben):
• Logische Verknüpfungen:
NOT (Land='Deutschland')
(Land nicht Deutschland)
(Land='Deutschland') AND (Einwohner>100000)
(Millionenstädte in Deutschland)
(Land='Deutschland') OR (Land='Schweiz')
(Orte in Deutschland und Schweiz)
I
N
F
O
R
M
A
T
I
Breite IS NULL
30
• Das Abfrageergebnis kann sortiert werden:
SELECT
FROM
WHERE
ORDER
[Spalten]
[Tabelle]
[Bedingung]
BY [Attribute];
• Die Sortierung geschieht nach dem angegebenen Attribut.
• Bei mehreren Sortierattributen wird nach dem zweiten (dritten...)
sortiert, sobald die Werte des ersten (zweiten...) identisch sind.
• Absteigende Sortierung mit DESC
I
N
F
O
R
M
A
T
I
K
SQL – ORDER BY
• Beispiele:
SELECT * FROM ort ORDER BY Name
SELECT * FROM ort ORDER BY Land, Einwohner DESC
31
• Bearbeiten Sie in inf-schule die Aufgaben 2-8 unter
http://inf.schule/information/datenbanksysteme/terra/relationaledb/uebungen
I
N
F
O
R
M
A
T
I
K
Übungen 1
32
• Beispieltabelle
• Geben Sie alle Länder aus:
Name, Einwohner, Hauptstadt
Sortierung nach Einwohner absteigend
N
F
O
R
M
A
T
I
K
Übungen 1
I
• Welche Länder haben zwischen 10 und 100 Mio. Einwohner?
33
Absteigend nach Einwohner sortiert
6.
Welche Länder haben einen „Arm“ oder ein „Bein“ im Namen?
8.
Welche Länder liegen in Asien und Australien?
I
N
F
O
R
M
A
T
I
K
Übungen 1
34
• Wichtig sind vor allem Funktionen zur Manipulation von Strings und
Datumsangaben, z.B.
A
T
I
K
Hilfsfunktionen
DATEDIFF(D1, D2)
NOW()
…
Differenz (Tage)
Aktuelle Zeit/Datum (SELECT
CURDATE())
CONCAT(S1,S2,…)
LOWER(),UPPER()
CHAR_LENGTH()
MID(str,pos,len)
TRIM(s), LTRIM, RTRIM
…
Verbinden von Strings
In Groß-/Kleinbuchstaben umwandeln
Länge in Zeichen
String ausschneiden
Abschneiden von Leerzeichen
• Weitere Funktionen online in der Hilfe zu MySQL!
I
N
F
O
R
M
• Wichtige Stringfunktionen
SQL ist hier nicht standardisiert
Die Funktionen sind bei anderen DBS oft unterschiedlich
35
• Ausgabe der Länder in folgender Form:
CONCAT(UPPER(Name),' - ',Hauptstadt) AS Land,
round(Einwohner) AS "Mio. Einwohner"
Spalten können mit „AS“ umbenannt werden
I
N
F
O
R
M
A
T
I
K
Nutzen der Hilfsfunktionen
36
• Wozu dient die Spalte LNR in der Land-Tabelle ?
• … ein anderes Beispiel:
Suche nach der Hauptstadt „Berlin“
Man benötigt noch das
Land als Suchhilfe.
Suche nach der Hauptstadt „Washington“
I
N
F
O
R
M
A
T
I
K
Exkurs: Primärschlüssel
37
Selbst das Land reicht als
Suchhilfe nicht aus.
• 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.
R
M
A
T
I
K
Relationale Datenbank – Aufbau
O
Name
Einwohner
Hauptstadt
Kontinent
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
5.16
81.33
761.00
6.30
Kopenhagen
Berlin
Delhi
Kigali
Europa
Europa
Asien
Afrika
I
N
LNR
F
Land
Schlüsselattribut
38
• Welche Länder gibt es in Europa mit mehr als 20 Mio Einwohner?
WHERE Kontinent = 'Europa'
AND Einwohner > 20
I
N
F
O
R
M
A
T
I
K
Fehler in Daten
Frankreich??
Problem: Europa wird unterschiedlich geschrieben!
Lösung: Auslagerung in eine eigene Tabelle
39
• 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.
LNR
Name
Einwohner
Hauptstadt
Kontinent
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
5.16
81.34
761.00
6.30
Kopenhagen
Berlin
Delhi
Kigali
Europa
Europa
Asien
Afrika
F
O
R
M
A
T
I
K
Relationale Datenbanken – Beziehungen
I
N
Land
Kontinent
LNR
Name
…
KNR
KNR
Name
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
…
…
…
…
EU
EU
AS
AF
EU
AS
AF
Europa
Asien
Afrika
40
Schlüsselattribut aus Kontinent
Land
Kontinent
LNR
Name
…
KNR
KNR
Name
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
…
…
…
…
EU
EU
AS
AF
EU
AS
AF
Europa
Asien
Afrika
A
T
I
K
Relationale Datenbanken – Beziehungen
I
N
F
O
R
M
Primärschlüssel aus Kontinent
41
• 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.
• Müssen in SQL Daten aus mehreren Tabellen entnommen werden, so
werden sog. „Joins“ gebildet.
I
K
SQL – einfache Joins
T
Die Abarbeitung eines Joins in mehreren Schritten kann an folgendem
Beispiel veranschaulicht werden:
M
A
• Es sollen alle Länder mit ihren Kontinenten ausgegeben werden, die mehr als 10
Mio. Einwohner haben.
Kontinent
LNR
Name
Einwohner
KNR
KNR
Name
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
5.16
81.34
761.00
6.30
EU
EU
AS
AF
EU
AS
AF
Europa
Asien
Afrika
I
N
F
O
R
Land
42
Name
Einwohner
KNR
KNR
Name
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
5.16
81.34
761.00
6.30
EU
EU
AS
AF
EU
AS
AF
Europa
Asien
Afrika
O
F
N
I
43
LNR
Name
Einwohner
KNR
KNR
Name
DK
DK
DK
D
D
D
IND
IND
IND
…
Dänemark
Dänemark
Dänemark
Deutschland
Deutschland
Deutschland
Indien
Indien
Indien
…
5.16
5.16
5.16
81.34
81.34
81.34
761.00
761.00
761.00
…
EU
EU
EU
EU
EU
EU
AS
AS
AS
…
EU
AS
AF
EU
AS
AF
EU
AS
AF
…
Europa
Asien
Afrika
Europa
Asien
Afrika
Europa
Asien
Afrika
Kontinent
A
M
LNR
R
Land
K
SELECT *
FROM Land, Kontinent
T
1. Cross-Join („jede Zeile mit jeder“)
I
SQL – einfache Joins
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
WHERE Land.KNR= Kontinent.KNR
I
N
F
O
R
M
A
T
I
K
SQL – einfache Joins
44
LNR
Name
Einwohner
KNR
KNR
Name
DK
DK
DK
D
D
D
IND
IND
IND
…
Dänemark
Dänemark
Dänemark
Deutschland
Deutschland
Deutschland
Indien
Indien
Indien
…
5.16
5.16
5.16
81.34
81.34
81.34
761.00
761.00
761.00
…
EU
EU
EU
EU
EU
EU
AS
AS
AS
…
EU
AS
AF
EU
AS
AF
EU
AS
AF
…
Europa
Asien
Afrika
Europa
Asien
Afrika
Europa
Asien
Afrika
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
AND Land.Einwohner > 10
I
N
F
O
R
M
A
T
I
K
SQL – einfache Joins
45
LNR
Name
Einwohner
KNR
KNR
Name
DK
DK
DK
D
D
D
IND
IND
IND
…
Dänemark
Dänemark
Dänemark
Deutschland
Deutschland
Deutschland
Indien
Indien
Indien
…
5.16
5.16
5.16
81.34
81.34
81.34
761.00
761.00
761.00
…
EU
EU
EU
EU
EU
EU
AS
AS
AS
…
EU
AS
AF
EU
AS
AF
EU
AS
AF
…
Europa
Asien
Afrika
Europa
Asien
Afrika
Europa
Asien
Afrika
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
LNR
Name
Einwohner
KNR
KNR
Name
D
IND
…
Deutschland
Indien
…
81.34
761.00
…
EU
AS
…
EU
AS
…
Europa
Asien
Name
Einwohner
Name
Deutschland
Indien
…
81.34
761.00
…
Europa
Asien
…
I
N
F
O
R
M
A
T
I
K
SQL – einfache Joins
46
In der Realität versucht das DBMS,
durch „geschicktes“ Vorgehen die
Datenmenge schon früher zu
reduzieren.
I
N
F
O
R
M
A
T
I
K
Übungen 2
47
• Bearbeiten Sie in inf-schule die Aufgaben unter
http://inf.schule/information/datenbanksysteme/terra/datenverknuepfen/uebungen
• Aufgabe 2
Warum wäre das Attribut "Name" ein möglicher Primärschlüssel für die
Schüler-Tabelle?
Was ist im Moment ein möglicher Primärschlüssel der Noten-Tabelle?
Was ist der Fremdschlüssel in der Noten-Tabelle?
I
N
F
O
R
M
A
T
I
K
Übungen 2
48
4.
Welche Länder liegen in Asien?
Name und Einwohner Länder
Sortierung nach Einwohnerzahl absteigend
I
N
F
O
R
M
A
T
I
K
Übungen 2
49
5. Orte in Europe mit mehr als 1 Mio. Einwohner
• In welchen Kontinenten gibt es Länder mit mehr als 100 Mio.
Einwohner?
I
K
Duplikate...
kontinent.Name
land, kontinent
land.KNR = kontinent.KNR
land.Einwohner > 100
R
Lösung: DISTINCT-Anweisung
F
Problem: Es werden Duplikate angezeigt
O
M
A
T
SELECT
FROM
WHERE
AND
I
N
SELECT
FROM
WHERE
AND
DISTINCT kontinent.Name
land, kontinent
land.KNR = kontinent.KNR
land.Einwohner > 100
50
• 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“.
Ort
Land
ONR
Name
…
LNR
LNR
Name
…
KNR
BANGAL
GOETTI
KARLSR
KOPENH
Bangalore
Göttingen
Karlsruhe
Kopenhagen
…
…
…
…
IND
D
D
DK
DK
D
IND
RWA
Dänemark
Deutschland
Indien
Rwanda
…
…
…
…
EU
EU
AS
AF
I
N
F
O
R
M
A
T
I
K
Erweiterung der Datenbank
Schlüsselattribut aus Land
51
• Ein erstes „E/R-Modell“ (Entity/Relationship)
eigentlich intuitiv zu lesen!?
A
T
I
K
Bisheriges „Schema“ der Datenbank
Teil von
M
Land
Ort
O
R
Hauptstadt
N
F
Teil von
Hatten Sie die Stelle in der
Datenbank terra3, an der die
„Hauptstadt“ abgespeichert
ist, gefunden?
I
Kontinent
52
• 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:
Ort
Teil von
Land
Hauptstadt
Ort
I
N
F
O
R
M
A
T
I
K
SQL – Tabellen-Alias
53
SELECT
FROM
WHERE
AND
AND
o.Name AS Stadt, l.Name AS Land, hs.Name
Ort o, Land l, Ort hs
o.LNR = l.LNR
Der Alias-Name für
l.HauptONR = hs.ONR
Land ist nicht
o.Einwohner>10000000
notwendig (verkürzt
die Abfrage)
• 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?
Fluss
Ort
FNR
Name
Laenge
ONR
ONR
Name
ELB
MEK
MOS
RHE
Elbe
Mekong
Mosel
Rhein
1144
4500
544
1320
HAMBUR
PHNOMP
KOBLEN
KOBLEN
GOETTI
KARLSR
KOBLEN
KOPENH
Göttingen
Karlsruhe
Koblenz
Kopenhagen
I
N
F
O
R
M
A
T
I
K
Erweiterung der Datenbank
Problem: Für Flüsse müssen beliebig viele Orte eingetragen werden.
54
• 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?
Fluss
Ort
FNR
Name
Laenge
ONR
Name
FNR
ELB
MEK
MOS
RHE
Elbe
Mekong
Mosel
Rhein
1144
4500
544
1320
GOETTI
KARLSR
KOBLEN
KOPENH
Göttingen
Karlsruhe
Koblenz
Kopenhagen
LEI
RHE
RHE
I
N
F
O
R
M
A
T
I
K
Erweiterung der Datenbank
Problem: Für Orte müssen mehrere Flüsse eingetragen werden.
55
Lösung: Auslagerung der Zuordnung in eine eigene Tabelle
• Es sollen Flüsse gespeichert werden.
Flüsse fließen durch Orte.
Manche Orte werden von mehreren Flüssen durchflossen
(z.B. Koblenz)
F
O
R
M
A
T
I
K
Erweiterung der Datenbank
Zuordnungstabelle mit Schlüsseln aus beiden Haupttabellen.
Fluss
Ort
FNR
Name
Laenge
ONR
Name
ELB
MEK
MOS
RHE
Elbe
Mekong
Mosel
Rhein
1144
4500
544
1320
GOETTI
KARLSR
KOBLEN
KOPENH
Göttingen
Karlsruhe
Koblenz
Kopenhagen
I
N
Stadtfluss
FNR
ONR
ELB
RHE
RHE
MOS
HAMBUR
KOBLEN
KARLSR
KOBLEN
56
I
K
Struktur der Datenbank terra4
1
n
T
Teil von
Ort
A
Land
1
Hauptstadt
1
n
Teil von
N
I
57
durchfließt
1
m
F
O
R
M
n
Kontinent
Fluss
• Bearbeiten Sie in inf-schule die Aufgaben unter
http://inf.schule/information/datenbanksysteme/terra/beziehungstabelle/uebungen
I
N
F
O
R
M
A
T
I
K
Übungen 3
58
1. Welche Orte liegen an der Saar ?
3.
Welche Orte durchfließt der Rhein in Rheinland-Pfalz?
Ordnung nach Rheinkilometer
I
N
F
O
R
M
A
T
I
K
Übungen 3
59
4. Welche Länder durchfließt die Donau?
• 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
I
N
F
O
R
M
A
T
I
K
Gruppieren von Ergebnissen
ONR
Name
AALBOR
KOPENH
BERLIN
DUESSE
MAINZ
TALLIN
Dänemark
Dänemark
Deutschland
Deutschland
Deutschland
Estland
Selbst zählen???
NEIN!
60
• 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
I
N
F
O
R
M
A
T
I
K
Gruppieren von Ergebnissen
61
ONR
Name
AALBOR
KOPENH
BERLIN
DUESSE
MAINZ
TALLIN
Dänemark
Dänemark
Deutschland
Deutschland
Deutschland
Estland
2
3
1
Name
Anzahl
Dänemark
Deutschland
Estland
2
3
1
• Bearbeiten Sie in inf-schule die Aufgaben 1 - 3 unter
http://inf.schule/information/datenbanksysteme/terra/aggregation/uebungen
I
N
F
O
R
M
A
T
I
K
Übungen 4
62
1. Wie viele Orte liegen in Frankreich?
M
A
T
I
K
Übungen 4
I
N
F
O
R
3.
63
In welchen Staaten liegen Megacities (mehr als 1 Mio. Einwohner)?
Ausgabe: Anzahl der Städte pro Land!
3. Wie viele Einwohner haben die Länder pro Kontinent im Schnitt?
4. Welche Städte liegen an mehr als einem Fluss?
I
N
F
O
R
M
A
T
I
K
Übungen 4
64
K
Struktur der kompletten Datenbank „miniterra“
I
Sprache
T
n
benachbart
m
m
1
n
Teil von
Land
n
Ort
1
Hauptstadt
1
n
F
R
n
O
M
A
gesprochen
durchfließt
m
1
I
N
Teil von
Kontinent
65
Fluss
n
1
mündet
• Welche Städte liegen an mehr als einem Fluss?
Welche Flüsse sind es jeweils?
R
M
A
T
I
K
Für Experten…
I
N
F
O
• Welche Länder grenzen an Deutschland?
66
• Welche Länder grenzen an Deutschland?
Geben Sie nur die Nachbarländer aus!
R
M
A
T
I
K
Für Experten…
I
N
F
O
• Welche Flüsse münden in den Rhein?
67
• 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)
…
I
N
F
O
R
M
A
T
I
K
u.v.m.
68
Strukturierte Speicherung von Daten
Verteilter, gleichzeitiger Zugriff mehrerer Benutzer / Programme
Verwaltung von Zugriffsrechten
R
M
A
T
I
K
Was bietet mir eine Datenbank (noch)?
ACID – Prinzip
(Idee: Analogie zu Bank-Transaktionen)
Atomicity
• Transaktionen (Änderungen an der Datenbank) werden ganz oder gar nicht
durchgeführt.
N
F
O
Consistency
• Eine Transaktion führt wieder zu einem konsistenten (gültigen) Zustand der
Datenbank.
Isolation
• Transaktionen beeinflussen sich nicht gegenseitig.
I
Durability
• Eine Transaktion ist dauerhaft gespeichert, auch gegen Systemabstürze
gesichert.
Im Unterricht gut durch Rollenspiele zu veranschaulichen.
69
• A – Atomicity
• Bsp.: Ein Kontosystem mit nicht überziehbaren Konten
Bob überweist Alice 500 €.
Die Transaktion bricht nach der Abbuchung von Bobs Konto ab.
O
R
M
A
T
I
K
ACID-Prinzip
Alice
F
Bob
I
N
700 €
500 €
300 €
200 €
Die Transaktion darf nur „ganz oder gar nicht“ stattfinden.
Konkret: Das Geld darf unterwegs nicht „verschwinden“
70
• C – Consistency
• Bsp.:
Bob will Alice 1000 € überweisen.
Die Transaktion überzieht sein Konto, was nicht erlaubt ist.
O
R
M
A
T
I
K
ACID-Prinzip
Alice
F
Bob
-300 €
1000 €
300 €
1300 €
I
N
700 €
71
Jede Transaktion muss die Datenbank in einem konsistenten
(den definierten Regeln entsprechenden) Zustand hinterlassen.
(insbesondere bei der Konsistenz von Schlüsselbeziehungen, s.u.)
• I – Isolation
• Bsp.:
Bob überweist Alice 400 € und gleichzeitig an Carol 500 €.
Jede Transaktion für sich ist in Ordnung, zusammen überziehen sie das
Konto.
O
R
M
A
T
I
K
ACID-Prinzip
Carol
Alice
F
Bob
500 €
600 €
700 €
400 €
-200 €
300 €
700 €
I
N
100 €
72
Jede Transaktion muss so ablaufen, dass parallel ablaufende
Transaktionen sie nicht stören können.
(zumindest logisch nacheinander ablaufen – serialisierbar)
Datenbanken – Wozu?
Abfragesprachesprache SQL
Verwaltung MySQL/MariaDB
Datenbankmodellierung
I
N
F
O
R
M
A
T
I
K
Agenda
73
Themenvernetzung (DB-Zugriff, etc.)
Ausblick
• Starten Sie den Datenbankserver und den Webserver
I
N
F
O
R
M
A
T
I
K
MySQL/MariaDB – Jetzt wird es (endlich) praktisch…
• Das Datenbanksystem bietet einen Service für andere Rechner an
Die Windows-Firewall kann dies melden.
Der Port muss freigegeben werden.
74
• Administration von MySQL/MariaDB funktioniert selbst schon am
einfachsten über den Browser (oder Admin-Button in Control Panel)
I
K
Die erste Datenbank importieren
T
Webarchitektur http://localhost/phpmyadmin
A
Browser
R
M
Client
Webserver
N
F
O
Apache
I
MySQL
MariaDB
Datenbankserver
75
• Legen Sie eine neue Datenbank „terra“ an.
• Wechseln Sie zur Datenbank (links), wählen Sie den Punkt
„Importieren“ und suchen die Datei „terra.zip“
I
N
F
O
R
M
A
T
I
K
Die erste Datenbank importieren
76
• Klicken Sie auf „Struktur“: u.a. wird die Tabelle „land“ angezeigt.
Lassen Sie sich den Inhalt der Tabelle anzeigen.
I
N
F
O
R
M
A
T
I
K
Die importierten Tabellen anschauen…
Tipp: Ändern Sie die Einstellungen von phpmyadmin,
so dass nur die Icons angezeigt werden!
77
• In einem Datenbanksystem müssen Rechte für verschiedene Benutzer
verwaltet werden:
I
K
Verwaltung des Datenbanksystems
• Jeder kann auf alle Datenbanken zugreifen und diese verändern
Mehrere Schüler sollen sich einen Datenbankserver „teilen“, dabei sich
aber nichts gegenseitig „kaputtmachen“
• Die Rechte können sehr fein vergeben werden, am Wichtigsten sind:
SELECT:
INSERT/UPDATE/DELETE:
CREATE/ALTER/…:
Benutzer kann Tabellen auslesen
Tabelleninhalte dürfen verändert werden
Tabellenstruktur darf verändert werden
I
N
F
O
R
M
A
T
MySQL arbeitet nach der Installation ohne Schutz des Administrators
78
• Der Administrator (root) für die Datenbank hat alle Rechte und muss
geschützt werden.
I
N
F
O
R
M
A
T
I
K
MySQL – Passwort für Administrator ändern
79
• phpMyAdmin in Browser starten
Menüpunkt „Benutzerkonten“
Benutzer „root - localhost“ auswählen und bearbeiten
Button „Passwort ändern“
Beim nächsten Aufruf von phpMyAdmin ist die Eingabe des neuen
Passworts notwendig
N
F
O
R
M
A
T
I
K
MySQL – Passwort für Administrator ändern
I
oder einfacher - direkt per SQL-Befehl:
SET password = PASSWORD('HierMussEinGutesPasswortRein')
80
I
N
F
O
R
M
A
T
I
K
MySQL – Passwort für Administrator ändern
81
• Anmeldetyp für phpMyAdmin ändern
Ins Verzeichnis xampp\phpmyadmin wechseln.
Datei config.inc.php mit Notepad++ oder Wordpad öffnen.
(oder über Control Panel öffnen)
• Anmeldetyp für phpMyAdmin ändern
Zeile $cfg['Servers'][$i]['auth_type'] = ‘config';
ändern auf = 'cookie';
Bei der nächsten Anmeldung (Browser einmal zuvor schließen!) ist die
Eingabe von Benutzer (root) und Passwort notwendig
I
N
F
O
R
M
A
T
I
K
MySQL – Passwort für Administrator ändern
82
• Über den Reiter „Benutzerkonten“ können weitere Benutzer angelegt
und Rechte auf den Datenbanken vergeben werden
z.B. für einen zentralen Datenbankserver sollen pro Schülergruppe
„exklusive“ Datenbanken zur Verfügung gestellt werden
• Oder einfacher… gleich noch etwas SQL lernen:
M
A
T
I
K
Benutzer / Rechte vergeben
CREATE USER Schueler1@localhost
IDENTIFIED BY 'meinPasswort';
CREATE DATABASE dbSchueler1;
I
N
F
O
R
Da phpmyadmin
immer lokal auf dem
Server läuft…
GRANT ALL PRIVILEGES ON dbSchueler1.*
TO Schueler1@localhost;
83
• Einem Benutzer können aber auch Rechte (z.B. nur Leserecht) auf
zentralen Datenbanken wie terra vergeben werden:
GRANT SELECT ON terra.* TO Schueler1@localhost;
• … oder auch entzogen werden:
REVOKE SELECT ON terra.* FROM Schueler1@localhost;
I
N
F
O
R
M
A
T
I
K
Benutzer / Rechte vergeben
84
• Jetzt kann der Benutzer über http://Rechnername/phpmyadmin oder
über http://IP-Adresse/phpmyadmin vom Schulnetzwerk auf den Server
zugreifen.
Problem: Neues Rechte-System in aktuelleren XAMPP-Versionen
I
N
F
O
R
M
A
T
I
K
Problem: XAMPP-Rechte
85
Manuelles Anpassen der Konfigurationsdatei httpd-xampp.conf nötig.
• Im Verzeichnis \xampp\apache\conf\extra findet sich die
Konfigurationsdatei httpd-xampp.conf
evtl. Sicherungskopie anlegen!
Im letzten Abschnitt muss der Zugriff wieder erlaubt werden, indem das
Verbot „auskommentiert“ wird.
I
N
F
O
R
M
A
T
I
K
Anpassen der Konfigurationsdatei httpd-xampp.conf
86
Danach muss der Webserver mit XAMPP Control Panel neu gestartet
werden.
Dies ist die „quick and dirty“-Methode
ohne Beachtung eines Sicherheitskonzepts
Die Anpassung ist für ein „öffentliches“
System im Internet absolut ungeeignet!
1. Schützen Sie den Administrator-Zugang für ihren mySQL-Server wie
zuvor beschrieben.
2. Legen Sie einen Benutzer „ifb“ und Passwort „Speyer“ an. Dieser soll
die Leserechte (SELECT) auf der Datenbank „terra“ erhalten.
3. Passen Sie die Konfigurationsdatei httpd-xampp.conf an.
I
N
F
O
R
M
A
T
I
K
Übung: Benutzer anlegen
87
4. Versuchen Sie, mit diesem Benutzer auf die Datenbank des Nachbarn /
der Nachbarin zuzugreifen.
• Zur Vereinfachung existiert ein PHP-Skript, das eine erste Umgebung für
den Unterricht einrichtet:
Verzeichnis terra_install in das htdocs-Verzeichnis des XAMPP-Pakets
kopieren.
http://localhost/terra_install aufrufen.
• Das Skript
legt die Datenbanken terra1…4 und miniterra an.
erzeugt Benutzerkonten und Datenbanken für die Schüler mit
entsprechenden Rechten.
I
N
F
O
R
M
A
T
I
K
Skript zur Anlage der Datenbanken
88
Datenbanken – Wozu?
Abfragesprachesprache SQL
Verwaltung MySQL
Datenbankmodellierung
I
N
F
O
R
M
A
T
I
K
Agenda
89
Themenvernetzung (DB-Zugriff, etc.)
Ausblick
K
Ein neues Informationssystem… Anforderungskatalog
T
I
Schulverwaltung
Die Benutzer können eine Liste aller Lehrer mit ihrem Dienstkürzel
abrufen.
•
Für jede Klasse ist eine Liste der durchgeführten Klassenfahrten
mit dem leitenden Lehrer ersichtlich.
•
StD L. Lämpel übernimmt dieses Jahr die 7a als Klassenleiter. Die
Klasse kann das im Internet schon in den Ferien erfahren.
•
Eine Suche ist möglich über Klassenstufe, Lehrer oder Fach.
•
StR A. Kribich hat sich fortgebildet und darf ab diesem Jahr neben
Mathematik und ev. Religion auch Informatik unterrichten. Die
Fachschaftsliste muss aktualisiert werden.
•
Nachdem LiA Sch. Merz in Rente gegangen ist, geht die
Fachbereichsleitung in Sport an OStR‘ G. Lenk.
I
N
F
O
R
M
A
•
90
• Um ein Informationssystem zu erstellen, muss ein Ausschnitt der realen
Welt („Miniwelt“) im Computersystem erfasst werden.
I
K
Modellbildung
• Eine Suche ist möglich über
Klassenstufe, Lehrer oder Fach.
R
O
• StD L. Lämpel übernimmt dieses
Jahr die 7a als Klassenleiter. Die
Klasse kann das im Internet
schon in den Ferien erfahren.
?
• …
I
N
Datenmodell
• Die Benutzer können eine Liste
aller Lehrer mit ihrem
Dienstkürzel abrufen.
F
M
A
T
Miniwelt
91
Unstrukturierte
Informationen über die
Miniwelt
Repräsentation der
Informationen als
strukturierte Daten
• Um aus einer Beschreibung einer Miniwelt das Datenmodell einer
Datenbank abzuleiten, bietet es sich an, zunächst ein grafisches Konzept
der Daten zu erstellen.
Text
I
N
F
O
R
M
A
T
I
K
Modellbildung
Externe
Sicht
Konzeptionelle
Sicht
Internes
Modell
(z.B. relationales
Datenmodell)
92
• E/R-Diagramme dienen dazu, das konzeptionelle Modell des
Informationssystems zu erstellen. Es werden zwei Konstrukte
verwendet:
Entitätstypen
Beziehungstypen (Relationships)
R
M
A
T
I
K
Konzeptionelles Modell – E/R-Diagramme
• Eine Entität ist ein bestimmtes Objekt der realen Welt oder unserer
Vorstellung
• Entitäten mit gleichen Eigenschaften werden zu Entitätstypen
zusammengefasst
Symbol: Rechteck
I
N
F
O
z.B. eine Person, ein Gegenstand, ein Ereignis
Lehrer
93
• Beispiel Entitätstyp:
Entität:
Entitätstyp:
T
I
K
E/R-Diagramme - Entitätstyp
Kürzel:
Name:
Vorname:
Titel:
Lä
Lämpel
Ludwig
StD
Kürzel:
Name:
Vorname:
Titel:
Kr
Kribich
Alfred
StR
Kürzel:
Name:
Vorname:
Titel:
Le
Lenk
Gertrud
OStR'
Entitätstyp
„Lehrer“
I
N
F
O
R
M
A
Primärschlüssel:
Lehrer Lämpel, Kürzel Lä
Menge aller Lehrer mit den Merkmalen Vorname,
Nachname, Kürzel, …
Kürzel (?) (oder ein künstlicher Schlüssel)
3 Entitäten
94
• Gleichartige Beziehungen zwischen Entitäten werden als ein
Beziehungstyp zwischen den Entitätstypen definiert.
I
K
E/R-Diagramme - Beziehungstyp
• Beispiel:
Ein Lehrer führt Klassenfahrten durch.
Kuerzel:
Name:
Lä
Lämpel
Kuerzel:
Name:
Kuerzel:
Name:
Beziehungen
Stufe:
Teil:
8
a
Kr
Kribich
Stufe:
Teil:
11
M1
Me
Merz
Stufe:
Teil:
12
m3
I
N
F
O
R
M
A
T
Symbol: Raute
95
Lehrer
Klassenfahrt
Klasse
Entitätstyp
Beziehungstyp
Entitätstyp
• Die Beziehung „Klassenfahrt“ könnte man auch als eigenen Entitätstyp
modellieren.
Modellierung ist oft nicht eindeutig, es gibt je nach Ansicht mehrere
sinnvolle Modelle für eine Miniwelt.
A
T
I
K
Modellierung oft nicht eindeutig
Klasse
O
R
M
Lehrer
nimmt
teil
Klassenfahrt
I
N
F
führt
durch
96
• Die Eigenschaften aller Entitäten und Beziehungen eines Entitätstyps
bzw. eines Beziehungstyps werden mit Hilfe von Attributen erfasst.
I
K
E/R-Diagramme - Attribute
• Beispiel:
R
M
A
T
Symbol: Ellipse
Lehrer
Klasse
Name
Stufe
Teil
identifizierend
I
Vorname
beschreibend
97
Datum
Kürzel
N
F
O
Klassenfahrt
Ziel
Anzahl
• Ein Beziehungstyp wird durch die Kardinalität genauer bezeichnet:
1:n- Beziehung am Beispiel: Klassenzuordnung der Schüler
Name:
9a
Name: Müller
Vorname: Yvonne
Name:
9b
Name: Meier
Vorname: Jan
Name:
10d
Name: Dietz
Vorname: Nicole
Name: Seiler
Vorname: Manfred
O
R
M
A
T
I
K
E/R-Diagramme – Kardinalität
Schüler
I
N
F
Klasse
1
Klasse
n
Schüler
angehören
Ein Schüler gehört einer Klasse an. Einer Klasse gehören mehrere Schüler an.
98
• n:m – Beziehung am Beispiel:
Kurszuordnung von Schülern in der MSS
T
LK: ja
Name: Müller Vorname: Yvonne
A
Fach: Deutsch
LK: ja
Name: Meier
Vorname: Jan
Fach: Englisch
LK: ja
Name: Dietz
Vorname: Nicole
R
Fach: Mathe
M
I
K
E/R-Diagramme – Kardinalität
O
Name: Seiler Vorname: Manfred
Schüler
Kurs
n
besucht
m
Schüler
I
N
F
Kurs
Ein Kurs hat mehrere Schüler. Ein Schüler nimmt an mehreren Kursen teil.
99
• Die Kardinalitäten (1:1, 1:n, n:m) geben nur an, wie viele Entitäten
maximal miteinander verbunden sind.
I
K
E/R-Diagramme – Kardinalität
1
angehören
n
Schüler
A
T
Klasse
Ein Schüler ist maximal einer Klasse zugeordnet.
Einer Klasse sind maximal n Schüler zugeordnet.
• Die Kardinalität kann zusätzlich eingeschränkt werden.
N
F
O
R
M
Bsp.:
1
Klasse
angehören
Schüler
[8,30]
I
[1,1]
n
Bsp.: Eine Klasse hat minimal 8 und maximal 30 Schüler.
100
• Beziehungen können auch auf dem gleichen Entitätstyp gelten,
Selbstbeziehung oder Reflexive Beziehung.
I
K
E/R-Diagramme – Reflexive Beziehungstypen
T
Bsp.: Heirat
Vorname: Klaus
Name: Bach
Vorname: Stefan
Name: Meier
Vorname: Sabine
Name: Bach-Meier Vorname: Petra
Name: Hurtig
Vorname: Hans
Personen
N
F
O
R
M
A
Name: Meier
I
Personen
oder n:m ?
101
1
1
Heirat
• Im ersten Teil wurde eine bestehende Datenbank sukzessive erweitert
und vor allem in mehrere Tabellen zerlegt, um Redundanzen zu
vermeiden.
• Dieser Prozess kann in der sog. „Normalisierung“ formalisiert werden.
Das Relationenschema wird dabei in die erste, zweite, dritte usw.
Normalform überführt.
Immer mehr Redundanzen werden vermieden.
Immer mehr Tabellen sind notwendig (und Anfragen werden komplexer).
Prozess wird in der Realität nur bis zu einem gewissen Grad durchlaufen.
Weitergehendes mit Beispielen in:
http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
I
N
F
O
R
M
A
T
I
K
Normalisierung von relationalen Schemata
103
K
Für jeden Entitätstyp eine Tabelle
T
• Transformation von Entitätstypen
I
Transformation E/R-Modell in relationales Schema
E/R-Modell
M
A
Schüler
Name
R
SNR
Schueler
I
SNR
104
Name
Vorname
Relationales Schema
N
F
O
Vorname
• Transformation von 1:n-Beziehungstypen
Fremdschlüssel wird auf Seite der „Kind“-Klasse hinzugefügt
(kann, aber muss nicht der Name des Primärschlüssels sein).
1
n
angehören
Schüler
Name
KNR
SNR
Stufe
O
R
M
Klasse
E/R-Modell
A
T
I
K
Transformation E/R-Modell in relationales Schema
N
Klasse
Schueler
Stufe
SNR
Name
Vorname
KNR
I
KNR
105
Relationales Schema
F
Vorname
• Transformation von n:m-Beziehungstypen
Einfügen eines Fremdschlüssels nicht möglich
Separate Tabelle mit zwei Fremdschlüsseln
n
besucht
m
Schüler
Name
KNR
Stufe
SNR
Fehlstunden
O
R
M
Kurs
E/R-Modell
A
T
I
K
Transformation E/R-Modell in relationales Schema
Kurs
I
KNR
106
Besucht
Stufe
KNR
Schueler
SNR
Fehlst.
SNR
Name
Vorname
Relationales Schema
N
F
Vorname
• Transformation von 1:1-Beziehungstypen
z.B. das separate Speichern von sensiblen Daten zu Personen
Separate Tabelle, wobei dort Primärschlüssel auch Fremdschlüssel ist.
1
1
Zusatzdaten
SchülerPrivat
Vorname
SNR
Konfession
SNR
Name
O
R
M
Schüler
E/R-Modell
A
T
I
K
Transformation E/R-Modell in relationales Schema
Schueler
Name
Vorname
SNR
Konfession
Herkunft
I
SNR
SchuelerPrivat
107
• DBDesigner4
http://fabforce.net/dbdesigner4/
• MySQL Workbench
http://www.mysql.com/downloads/workbench/
A
T
I
K
Tools für E/R-Diagramme
Mogwai ER-Designer
http://sourceforge.net/projects/mogwai/
TOAD Data Modeler
TOAD für MySQL
http://toadformysql.com/index.jspa
I
N
F
O
R
M
• Ungetestet:
109
• Oder doch einfach mit Office-Programmen…
Relationales Schema
N
F
Herkunft
• Erstellen Sie ein E/R-Modell und dann das relationale Schema.
•
In der Bibliothek müssen Bücher erfasst werden. Eine Suche ist
möglich über Sachgebiet, Autor, Titel, Erscheinungsort und –jahr,
Verlag.
•
Bei der Suche wird eine Liste aller verfügbaren Verlage
vorgeblendet.
•
Leser, die Bücher ausleihen wollen, müssen sich zuvor registrieren.
•
Für ein Buch kann herausgefunden werden, ob es zur Zeit
ausgeliehen ist und von wem.
•
Um Schäden nachvollziehen zu können, können alle vorherigen
Ausleiher ermittelt werden.
•
Bei zu langer Ausleihe erfolgt eine Mahnung an den Leser. Das
muss vermerkt werden.
I
N
F
O
R
M
A
T
I
K
Bibliothek … Anforderungskatalog
110
• Erstellen Sie ein E/R-Modell und dann das relationale Schema.
•
Dr. Mager (kurz Ma) behandelt am 21.2.2005 den Patienten Willi
Schäfer (Patientennummer 3012). Im Rahmen dieser Behandlung
werden die folgenden Leistungen erbracht: Beratung,
symptombezogene Untersuchung, Schutzimpfung. Jede dieser
Leistungen ist über eine Nummer identifizierbar und kostet eine
bestimmte Gebühr.
•
Frau Dr. Hurtig (kurz Hu) wird am Sonntag (27.2.2005) zu einem
Notfall gerufen. Patient Manfred Achilles ist beim Fußballspiel
eine Sehne gerissen. In der Untersuchung vor Ort wird das Bein
ruhig gestellt und der Patient ins Krankenhaus eingewiesen.
•
Herr Dr. Alzheimer (kurz Al) besucht regelmäßig seine Patientin
Paula Stein im Altenheim. Diese Untersuchung gilt als
Vorsorgemaßnahme.
I
N
F
O
R
M
A
T
I
K
Arztpraxis … Anforderungskatalog
111
• Erstellen Sie ein E/R-Modell und dann das relationale Schema.
•
Andi Macht meldet sich am 10.6. bei seiner Fahrschule an. Nach dem
Erfassen seiner Daten wird sein Fahrschulkonto mit 85 € Grundgebühr
belastet.
•
Am 4.7. hat der Schüler Eddi Kett seine erste Fahrstunde bei Fahrlehrer
Klaus Uhr.
•
Der Schüler Farin Urlaub ist schon seit Wochen nicht erreichbar. Auf
seinem Fahrschulkonto sind aber noch 100 € von den letzten
Fahrstunden offen. Dafür wird eine Mahnung geschrieben.
•
Die theoretische Prüfung am 30.6. hat der Schüler André Richtung leider
nicht bestanden. Er muss daher zu einer Wiederholungsprüfung
antreten.
•
Die Schülerin Sunny Täter absolviert alle ihre Fahrstunden bei der
Fahrlehrerin Martha Pfahl. Sie würde in Zukunft aber gerne bei einem
anderen Fahrlehrer weitermachen.
•
Der Schüler Volker Racho hat am 5.7. seine letzte Pflichtstunde auf der
Autobahn absolviert. Fahrlehrerin Pfahl stellt fest, dass er jetzt zur
praktischen Prüfung zugelassen werden kann. Für die Vorstellung zur
praktischen Prüfung wird sein Fahrschulkonto mit 80 € belastet.
I
N
F
O
R
M
A
T
I
K
Fahrschule … Anforderungskatalog
112
•
Bei der Registrierung muss der Benutzer sich einen eindeutigen
Benutzernamen auswählen und seine email-Adresse hinterlegen.
•
Benutzer legen Gruppen an, denen weitere Benutzer beitreten
können.
•
Ein Benutzer sieht in einer Übersicht, mit welchen anderen
Benutzern er Freundschaften unterhält.
•
Ein persönliches Blog erlaubt einem Benutzer, regelmäßig sein
Leben mit anderen zu teilen.
•
Ein Benutzer wird rechtzeitig an Events erinnert, an denen er
teilnimmt.
•
Bilder sind ein wesentliches Element eines sozialen Netzwerks.
Ein Benutzer kann beliebig viele Bilder in das Netzwerk eintragen
und in Kategorien einordnen - eines davon verwendet er jeweils
als Profilbild.
I
N
F
O
R
M
A
I
• Erstellen Sie ein E/R-Modell und dann das relationale Schema.
T
K
Wer kennt wen? - Anforderungskatalog
113
Datenbanken – Wozu?
Abfragesprachesprache SQL
Verwaltung MySQL
Datenbankmodellierung
Themenvernetzung (DB-Zugriff, etc.)
Ausblick
I
N
F
O
R
M
A
T
I
K
Agenda
114
• Grafische Auswertung der Datenbank
(z.B. Anzahl der Länder pro Kontinent)
I
N
F
O
R
M
A
T
I
K
Vernetzung des Themas - Auswertungen
115
über Werkzeuge (z.B. Excel)
über selbst erstellte Programme
• Umrechnung Breiten/Längen-Angaben in Bildschirmkoordinaten
I
N
F
O
R
M
A
T
I
K
Vernetzung des Themas - Koordinatensystem
116
• Problem: „Verfolgen eines Flusslaufes“
von der Quelle zum Meer
z.B. Spree
Nordsee
T
I
K
Vernetzung des Themas - Grenzen von SQL
• Hier werden iterative Strukturen
benötigt, die SQL (als mengenorientierte Sprache) im Standard
nicht bietet.
F
Spree
Weser
Rhein
Fulda
Werra
Main
Anknüpfung an Programmierung
Python, PHP, Delphi, Java
N
Havel
Aller
O
R
M
A
Elbe
Mosel
Neckar
Donau
I
Inn
Isar
117
• Problem: „Verfolgen eines Flusslaufes“
vom Meer zu den Zuflüssen
z.B. Nordsee
Nordsee
T
I
K
Vernetzung des Themas - Grenzen von SQL
R
M
A
Elbe
Havel
Aller
Beispiel für eine (elegante?)
rekursive Programmierung
Spree
Weser
Rhein
Fulda
O
Werra
F
Main
N
Mosel
Neckar
Donau
I
Inn
Isar
118
I
N
F
O
R
M
A
T
I
K
Datenschutz
123
• Anknüpfungspunkt: www.schober.de
• Ein Blick ins Bundesdatenschutzgesetz:
(http://bundesrecht.juris.de/bdsg_1990/ )
I
N
F
O
R
M
A
T
I
K
Datenschutz
124
I
N
F
O
R
M
A
T
I
K
Vernetzung des Themas - Datenschutz
125
• Datenbank-basierte Umfrage in der Schule
Wie können durch Verknüpfen (eigentlich harmloser) Daten neue
Informationen gewonnen werden?
Herunterladen