AND Menge - EvIM

Werbung
Agenda für heute, 7. November 2008
• Datenverwaltung
•
•
•
•
•
Datenmodellierung
Pause
Datenbankentwurf
Relationale Operatoren und SQL
Datenschutz: Statistische Datenbanken
Elemente der Datenverwaltung
Leute
Daten
Speicherkapazität
+
Rechenleistung
Information
Computer
Datenverwaltung
Programme
Verarbeitung
+
Speicherung
2/43
Algorithmen
+
Datenstrukturen
© Departement Informatik, ETH Zürich
Datenverwaltung: Form follows Function
Verarbeitung stellt Anforderungen an Speicherung für:
Unterstützung bei:
- Einfügen,
- Löschen,
- Suchen,
- Selektieren von Daten
Art der Speicherung grenzt Verarbeitung ein durch:
Einschränkung von:
- Grösse
- Flexibilität
- Kompatibilität
3/43
© Departement Informatik, ETH Zürich
Datenverwaltung braucht ein universelles Speichermedium
Tabellen:
die praktischste Datenstruktur um den Speicher zu
organisieren.
Mit Tabellen lassen sich Einschränkungen der Speicherung leicht
beheben.
Grösse: Tabellen lassen sich leicht aufteilen oder zusammenfügen, das
Resultat sind wieder Tabellen
Flexibilität:
Sowohl die Anzahl Spalten als auch die Anzahl Zeilen sind
frei wählbar
Kompatibilität:
Tabellen lassen sich einfach zwischen Anwendungen
austauschen.
4/43
© Departement Informatik, ETH Zürich
Die Tabelle als universelles Speichermedium
suchen
Nährwerte
Schokoladencornet
Nährstoff
Wert
Einheit
Energie
1'230
kJ
Wasser
40.50
g
löschen
Protein
4.70
g
Fett, total
13.40
g
Fettsäuren,
gesättigt
7.00
g
Cholesterin
27.00
mg
einfügen
selektieren ([Spalte, Zeile])
5/43
© Departement Informatik, ETH Zürich
Die Tabelle als flexibles Speichermedium
Die Tabelle kann man so erweitern:
Nährwerte
Schokoladenprodukte
Nährstoff
Cornet
Pudding
Schokolade
Einheit
Energie
1'230
498
2'258
kJ
Wasser
40.50
71.20
1.30
g
Protein
4.70
3.00
7.50
g
Fett, total
13.40
2.60
32.90
g
Fettsäuren,
gesättigt
7.00
0.40
19.10
g
Cholesterin
27.00
3.00
20.00
mg
6/43
© Departement Informatik, ETH Zürich
Die Tabelle als flexibles Speichermedium
. . . oder so:
Nährwerte
Schokoladenprodukte
Fettsäuren,
gesättigt
Cholesterin
Produkt
Energie
Cornet
1'230.0
40.5
4.7
13.4
7.0
27.0
498.0
71.2
1.3
2.6
0.4
3.0
2'258.0
3.0
7.5
32.9
19.1
20.0
kJ
g
g
g
g
mg
Pudding
Schokolade
Einheit
Wasser Protein
Fett,
total
Nehmen wir an, wir möchten nun den Zuckergehalt von
Schokoladen-Rahmglace speichern.
7/43
© Departement Informatik, ETH Zürich
Probleme mit der Tabelle als flexibles Speichermedium
. . . dann gibt es "Löcher" in der Tabelle:
Nährwerte
Schokoladenprodukte
Fettsäuren,
gesättigt
Cholesterin
Produkt
Energie
Cornet
1'230.0
40.5
4.7
13.4
7.0
27.0
498.0
71.2
1.3
2.6
0.4
3.0
32.9
19.1
20.0
g
g
mg
Pudding
Wasser Protein Zucker
Fett,
total
Rahmglace
Schokolade
Einheit
24.6
2'258.0
3.0
7.5
kJ
g
g
g
Dies lässt sich mit "Listen" vermeiden.
8/43
© Departement Informatik, ETH Zürich
Vereinfachung der Struktur durch linearisieren der Einträge
Nährwerte
Schokoladenprodukte
Redundanz
Produkt
Nährstoff
Wert
Einheit
Cornet
Energie
1'230
kJ
Cornet
Wasser
40.50
g
Cornet
Protein
4.70
g
Cornet
Fett, total
13.40
g
Cornet
Fettsäuren, gesättigt
7.00
g
Cornet
Cholesterin
27.00
mg
Pudding
Energie
498
kJ
Pudding
Wasser
71.20
g
Pudding
Protein
3.00
g
Pudding
Fett, total
2.60
g
Pudding
Fettsäuren, gesättigt
0.40
g
Rahmglace
Zucker
24.6
g
9/43
Vorteil
• Einfache
Speicherung
• Einfache
Verarbeitung
© Departement Informatik, ETH Zürich
Die Nachteile einfacher Listen lassen sich beheben
Übersichtlichkeit wieder gewinnen
• Listeneinträge selektieren
• Zusammenfassungen berechnen
• Daten reformatieren: Pivot-Tabellen
• Voraussetzung: Die Daten sind als Liste
organisiert.
Redundanz eliminieren
• Tabelle entlang Spaltengrenzen aufteilen
• Wiederholungen in Teiltabellen entfernen
• Einträge in Teiltabellen indizieren
• Über Indizes Verbindung zu abgetrennten Teilen herstellen
10/43
© Departement Informatik, ETH Zürich
Daten thematisch in verschiedene Tabellen aufteilen
Die Einträge der neuen Tabellen über Querverweise verbinden
11/43
© Departement Informatik, ETH Zürich
Konsequenzen für die Datenverwaltung
Damit Daten für ihre Verarbeitung zweckmässig gespeichert
werden können, müssen deren Eigenschaften erkannt, und
vereinfacht dargestellt werden.
So wie die Naturwissenschaften komplexe Zusammenhänge
mit Modellen vereinfacht und sichtbar macht, verwendet die
Informatik Datenmodelle um Merkmale von Daten und deren
Beziehungen zueinander zu erfassen.
12/43
© Departement Informatik, ETH Zürich
• Datenverwaltung
• Datenmodellierung
•
•
•
•
Pause
Datenbankentwurf
Relationale Operatoren und SQL
Datenschutz: Statistische Datenbanken
Hilfsmittel für die Modellierung von Daten
Eine Beschreibung der Verarbeitung und Speicherung der Daten muss für
Leute verständlich sein, sich aber auch für die Programmierung eignen!
Methode
Unterstützt
Mind mapping
Gedanken assoziativ
spontan darstellen
Concept Maps
Wissen kontextabhängig
organisieren und darstellen
Entity-Relationship Modell
Datenbankgerechte
Darstellung von Objekten,
deren Merkmale und
Beziehungen zueinander
13/43
© Departement Informatik, ETH Zürich
Mind mapping
Merkmale um den Begriff "Lebensmittel" zu beschreiben
14/43
© Departement Informatik, ETH Zürich
Concept maps
15/43
© Departement Informatik, ETH Zürich
Entity-Relationship-Diagramm (Chen Notation)
Beziehungstyp (Kardinalität)
Name
Nahrungsmittel
Nährstoffe
Entitätsmenge
Nährstoff
1
m
Typ
Name
Analyse
Wert
m
1
Methode
Beziehung (Relationship)
Nährstoffe
Masseinheit
Entitätsmenge
Merkmal (Attribut)
16/43
© Departement Informatik, ETH Zürich
Anwendung des E-R-Modells: Tabellen für Entitätsmengen
Nährwerte
Entitätsmenge
Name
Aprikose
Kochbutter
Paranuss
CH-Code
18.1.2.1
12.1.2.Z.2
18.1.6.6
0.8
0.5
13
g
g
g
86.79
16.6
5.929
g
g
g
Kalium
315
20
680
Masseinheit
mg
mg
mg
Kohlehydrate
12.1
0.7
11.8
Masseinheit
g
g
g
Vitamin E
0.7
1.75
7
Masseinheit
mg
mg
mg
Protein
Masseinheit
Wasser
Masseinheit
Attributname
Attribut
Entität
17/43
© Departement Informatik, ETH Zürich
Vereinfachung: Entflechten von Information
Nahrungsmittel
Name
Aprikose
Aprikose
Aprikose
Bürli
Bürli
Bürli
CH-Code
18.1.2.1
18.1.2.1
18.1.2.1
12.1.2.Z.2
12.1.2.Z.2
12.1.2.Z.2
180
84
57
180
84
57
86.79
12.1
0.4
39.632
48.802
2.032
Nährstoff_id
Menge
Verbindende Indizes
Nährstoffe
Nährstoff_id
57
84
180
178
Name_d
Eisen
Kohlehydrate
Wasser
Vitamin K
Name_f
Fer
Hydrate de carbon
Eau
Vitamine K
Name_i
Ferro
Carboidrati
Acqua
Vitamina K
mg
g
g
mg
Masseinheit
Primärschlüssel
Fremdschlüssel
18/43
© Departement Informatik, ETH Zürich
Tabellen für Beziehungen (Relationships)
Nahrungsmittel
Analyse
1
NMittel_id
1000842
1001511
Name_d
Aprikose
Bürli
Name_f
Abricot
Bürli
Name_i
Albicocca
Bürli
18.1.2.1
12.1.2.Z.2
CH-Code
1
2
NMittel_id
1000842
1001511
m Nährstoff_id
180
84
Quelle
CIQUAL
Inst. f. LMW
Menge
86.79
48.802
Methode
unbekannt
Summenwert
Person
M. Racher
S. Jacob
m
1
Nährstoffe
Nährstoff_id
Analyse_id
180
84
57
178
Name_d
Wasser
Kohlehydrat
Eisen
Vitamin K
Name_f
Eau
Hydrate de carbon
Fer
Vitamine K
Name_i
Acqua
Carboidrati
Ferro
Vitamina K
g
g
mg
mg
Masseinheit
19/43
© Departement Informatik, ETH Zürich
Zusammenfassung
20/43
© Departement Informatik, ETH Zürich
• Datenverwaltung
• Datenmodellierung
• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
Modelle vs. Schemata
Modellierung der
Daten aus der
realen Welt
Entity-Relationship-Modell
Konzeptionelles Schema
Relationales Datenmodell
Modellierung der
Daten im Rechner
21/43
© Departement Informatik, ETH Zürich
Grundlagen für den Datenbankentwurf
Selektive Abfrage
Basisdaten
Datenbank
Konzeptionelles Schema
Internes Schema
• Datenstrukturen
• Datentypen
• Zugriffsmechanismen
• Logische Gesamtstruktur
• Eigenschaften der Daten
• Beziehungen unter den Daten
Datenmodell
22/43
Externes Schema
• Anwendungsspezifische
Sicht auf die Daten
© Departement Informatik, ETH Zürich
Das Verbreitetste: Das Relationenmodell
• Tabellen in denen Einträge (Tupel) eingefügt, gelöscht oder
geändert werden können (Mutationen)
• Verteilen von Daten auf mehrere Tabellen (Normalisieren) reduziert
Redundanz, d.h. die wiederholte Speicherung gleicher Werte
• Verknüpfen von Daten aus den individuellen Tabellen mit
relationalen Operatoren stellt die ursprüngliche Information wieder
her
23/43
© Departement Informatik, ETH Zürich
Elemente einer Relation
Relation
Attributname
Attribut
Nährwerte
Name
Aprikose
Bürli
CH-Code Wasser Massein
h
Kohlehyd Massein
h
Eisen Massein
h
18.1.2.1
86.79
g
12.1
g
0.4
mg
12.1.2.Z.2
39.632
g
39.632
g
2.032
mg
Tupel
Attributwert
24/43
© Departement Informatik, ETH Zürich
Normalisieren: Verteilen von Daten auf mehrere Tabellen
Nährwerte
Name
Aprikose
Bürli
CH-Code
Wasser
18.1.2.1
86.79
g
12.1
g
0.4
mg
12.1.2.Z.2
39.632
g
39.632
g
2.032
mg
Nahrungsmittel
Masseinh Kohlehyd Massein
h
Name
Nährstoffe
Nährstoff_id Name_d
CH-Code
Eisen
Massein
h
Nährstoff_id Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Aprikose
18.1.2.1
57
0.4
Bürli
12.1.2.Z.2
180
39.632
Bürli
12.1.2.Z.2
84
48.802
Bürli
12.1.2.Z.2
57
2.032
Name_f
Name_i
Masseinh
.
57
Eisen
Fer
Ferro
mg
84
Kohlehydrate
Hydrate de carbon
Carboidrate
g
180
Wasser
Acqua
g
Eau
25/43
© Departement Informatik, ETH Zürich
Daten zusammenführen: Nährwerte von Bürli
Nahrungsmittel
Name
CH-Code
Nährstoff_id Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Aprikose
18.1.2.1
57
0.4
Bürli
12.1.2.Z.2
180
39.632
Bürli
12.1.2.Z.2
84
48.802
Bürli
12.1.2.Z.2
57
2.032
Nährwerte
Nam
e
Name_d
Menge
Bürli
Wasser
39.632
Bürli
Kohlehydrate
48.802
Nährstoffe
Id_Nr
57
84
180
Name_d
Eisen
Name_f
Name_i
Fer
Ferro
Kohlehydrate Hydrate de carbon Carboidrate
Wasser
Eau
Acqua
26/43
Masseinh
.
mg
g
g
© Departement Informatik, ETH Zürich
•
•
•
•
Datenverwaltung
Datenmodellierung
Pause
Datenbankentwurf
• Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
Relationale Operatoren
Die drei wichtigsten Operatoren der relationalen
Algebra für das Manipulieren von Tabellen sind:
a) Selection
Wählt diejenigen Tupel einer Relation aus,
welche bestimmte Bedingungen erfüllen
b) Projection
Wählt eine oder mehrere Spalten einer
Relation aus
c) Join
Paart selektiv Spalten aus verschiedenen
Relationen
27/43
© Departement Informatik, ETH Zürich
Datenbanken abfragen: SQL
"Wieviele Nahrungsmittel
enthalten weniger als 50 g
Kohlehydrate ?"
Natürlichsprachlich
formulierte Frage
Abfragesprache für
Datenbanken
z.B. SQL
SELECT Menge FROM Nährstoffe
WHERE Nährstoff_id = 84 AND
Menge < 50
(Structured Query Language)
Nährstoffe
Tabellarische Ausgabe
(Relation)
28/43
© Departement Informatik, ETH Zürich
Projection mit dem SQL-Befehl SELECT
Attribut
Relation
SELECT CH-Code FROM Nahrungsmittel
Nahrungsmittel
Name
CH-Code
Nährstoff_id Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Resultat:
Paranuss
18.1.6.6
180
5.929
CH-Code
Bürli
12.1.2.Z.2
180
39.632
18.1.2.1
Bürli
12.1.2.Z.2
84
48.802
18.1.2.1
Bürli
12.1.2.Z.2
57
2.032
18.1.6.6
12.1.2.Z.2
12.1.2.Z.2
12.1.2.Z.2
29/43
© Departement Informatik, ETH Zürich
Selection mit dem SQL-Befehl SELECT
SELECT * FROM Nahrungsmittel WHERE Menge < 15
Nahrungsmittel
Resultat:
Name
CH-Code
Nährstoff_id Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Paranuss
18.1.6.6
180
5.929
Bürli
12.1.2.Z.2
180
39.632
Bürli
12.1.2.Z.2
84
48.802
Bürli
12.1.2.Z.2
57
2.032
Name
CH-Code
Attributwert
Nährstoff_id Menge
Aprikose
18.1.2.1
84
12.1
Paranuss
18.1.6.6
180
5.929
Bürli
12.1.2.Z.2
57
2.032
30/43
© Departement Informatik, ETH Zürich
Selection + Projection mit dem SQL-Befehl SELECT
SELECT Nährstoff_id, Menge FROM Nahrungsmittel WHERE Nährstoff_id = 84
Nahrungsmittel
Name
CH-Code
Nährstoff_id Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Paranuss
18.1.6.6
180
5.929
Bürli
12.1.2.Z.2
180
39.632
Bürli
12.1.2.Z.2
84
48.802
Bürli
12.1.2.Z.2
57
2.032
Nährstoff_id
Menge
84
12.1
84
48.802
Resultat:
31/43
© Departement Informatik, ETH Zürich
Wie SELECT-Abfragen am besten gelesen werden
SELECT Nährstoff_id, Menge FROM Nahrungsmittel WHERE Nährstoff_id = 84



1. Die FROM-Klausel sagt, welche Relationen involviert sind.
2. Die WHERE-Klausel zeigt, welche Attribute wichtig sind.
3. Die SELECT-Klausel gibt an, was ausgegeben wird.
32/43
© Departement Informatik, ETH Zürich
Selection + Projection + Join mit dem SQL-Befehl SELECT
SELECT Name, Name_d, Menge FROM NM, NS WHERE Name = Bürli AND Menge > 30
NM
Name
CH-Code
Nährstoff_id Menge
Resultat:
NM.Name NS.Name_d
NM.Menge
Aprikose
18.1.2.1
180
86.79
Aprikose
18.1.2.1
84
12.1
Bürli
Wasser
39.632
Aprikose
18.1.2.1
57
0.4
Bürli
Kohlehydrate
48.802
Bürli
12.1.2.Z.2
180
39.632
Bürli
12.1.2.Z.2
84
48.802
Bürli
12.1.2.Z.2
57
2.032
NS
Id_Nr
57
84
180
Name_d
Eisen
Name_f
Name_i
Fer
Kohlehydrate Hydrate de carbon
Wasser
Eau
Masseinh
.
Hauptkomp.
Ferro
mg
ja
Carboidrate
g
ja
g
ja
33/43 Acqua
© Departement Informatik, ETH Zürich
•
•
•
•
•
Datenverwaltung
Datenmodellierung
Pause
Datenbankentwurf
Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
Statistische Datenbanken
• Vertrauliche Daten
• Abfragen beschränkt auf statistische Operationen (Aggregationen),
die SQL zur Verfügung stellt:
COUNT
SUM
MEAN
MIN
MAX
34/43
© Departement Informatik, ETH Zürich
Statistische Datenbanken
Abfragen an Datenbanken werden als logischer Ausdruck formuliert
Beispiel
Suche: "Direktor OR weiblich AND (Gehalt ≥ 180000)"
Bei statistischen Datenbanken sind Antworten Resultate von
Aggregations-Operatoren
• Somit stehen nur statistische Daten zur Verfügung
• Es werden empfindliche Daten nicht preisgegeben
Trotzdem kann es leicht sein, bestimmte vertrauliche Daten durch
geeignete statistische Abfragen, die Rückschlüsse zulassen, herzuleiten!
35/43
© Departement Informatik, ETH Zürich
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 1
Die Daten sind erfunden, Ähnlichkeiten mit lebenden Personen sind rein
zufällig!
Von Urs Schmied (im Bild rechts)
wissen wir, dass er
• zwischen 34 und 36 Jahre alt ist
• Jus studierte
• bei der UBS eine Position als
Vizepräsident inne hat
36/43
© Departement Informatik, ETH Zürich
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 1
Wir wissen auch, dass er im Spital ist, aber nicht wieso.
Weil wir Zugang zur statistischen Datenbank des Spitals haben,
formulieren wir eine COUNT-Abfrage:
Wie viele Patienten haben folgende Eigenschaften?
Männlich
Alter 34 – 36
Verheiratet
Zwei Kinder
Lic.jur.
Bank-Vizepräsident
Antwort: 1
Wir gehen davon aus, dass es sich um Urs handelt und erhalten somit
vertrauliche Informationen über ihn durch erweitern der Abfrage:
37/43
© Departement Informatik, ETH Zürich
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 1
Wie viele Patienten haben folgende Eigenschaften?
Männlich
Alter 34 – 36
Verheiratet
Zwei Kinder
Lic.jur.
Bank-Vizepräsident
Nehmen Antidepressiva
Das System wird mit "1" antworten, falls Schmied Antidepressiva
erhält, sonst mit "0"
38/43
© Departement Informatik, ETH Zürich
Lassen sich solche Rückschlüsse verhindern?
Ursache: Einfaches Prinzip der "Blossstellung" um X zu bestätigen
• Eine Abfrage deren Antwortgrösse 1 ist
• Die Antwortgrösse der Abfrage AND X
Schutz: minimale Antwortgrösse, k, verlangen, d.h.
Antworte auf keine Abfrage, die weniger als k oder mehr als n-k
Datensätze in der Antwort hat.
n = totale Anzahl Datensätze in der Datenbank
Diese Kontrolle ist leider nicht sehr wirksam.
39/43
© Departement Informatik, ETH Zürich
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 2
Geheime Wahlspenden
Name
Geschlecht
Beruf
Spende (CHF)
Schamanski
M
Journalist
3000
Staub
M
Journalist
500
Bertolli
M
Unternehmer
Ott
W
Journalist
5000
Zwahlen
W
Wissenschaftler
1000
Koller
M
Wissenschaftler
20000
Waser
W
Arzt
2000
Schmid
M
Anwalt
10000
1
n = 8; bei k =2: min. Antwortgrösse = 2, max. Antwortgrösse = 6
40/43
© Departement Informatik, ETH Zürich
Rückschlüsse mittels "Tracker"
Die Frage: (Beruf = Journalist AND Geschlecht = W)
identifiziert Ott eindeutig (Antwort = 1).
Schutz
Die minimale Anwortgrösse (2) verhindert, dass geantwortet wird.
Umgehung
1. Kleine Antwortmengen "füttern", damit sie die minimale
Antwortgrösse erreichen.
2. Danach wird der Effekt der zusätzlichen Datensätze subtrahiert.
Die Formel, welche die zusätzlichen Datensätze identifiziert, wird
"Tracker" genannt
(To "track down" additional characteristics of an individual)
41/43
© Departement Informatik, ETH Zürich
Tracker anwenden
Frage:
Antwort:
Frage:
Antwort:
Wie viele Personen sind Journalist?
3
Wie viele Personen sind Journalist AND M?
2
Rückschluss:
Frage:
Antwort:
Frage:
Antwort:
(Journalist AND W) identifiziert 1 Individuum (Ott)
Summe der Spenden der Journalisten?
CHF 8500
Summe der Spenden Journalist AND M?
CHF 3500
Rückschluss:
Spende der einzigen Journalistin = CHF 5000!
42/43
© Departement Informatik, ETH Zürich
Kontrolle ist schwierig
Abfragen tragen unweigerlich Information aus einer Datenbank
Man kann deshalb nicht annehmen, dass sich ein System nie
Blossstellen lässt
Deshalb
Zugriffe aufzeichnen (threat monitoring)
Notwendiger Aufwand für Blossstellungen hoch halten
43/43
© Departement Informatik, ETH Zürich
Wir wünschen Ihnen ein schönes Wochenende
Herunterladen