agenda für heute, 7. november 2008 datenverwaltungdatenverwaltung datenmodellierung pause...
Post on 06-Apr-2015
104 Views
Preview:
TRANSCRIPT
Agenda für heute, 7. November 2008
• DatenverwaltungDatenverwaltung• Datenmodellierung
• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
© Departement Informatik, ETH Zürich
Elemente der Datenverwaltung
Leute
Information
Daten
Computer
Programme
Daten-verwaltung
Verarbeitung+
Speicherung
Algorithmen+
Datenstrukturen
Speicherkapazität+
Rechenleistung
2/43
© Departement Informatik, ETH Zürich
Datenverwaltung: Form follows Function
3/43
Unterstützung bei: - Einfügen,- Löschen,- Suchen,- Selektieren von Daten
Art der Speicherung grenzt Verarbeitung ein durch:
Verarbeitung stellt Anforderungen an Speicherung für:
Einschränkung von: - Grösse- Flexibilität- Kompatibilität
© Departement Informatik, ETH Zürich
Datenverwaltung braucht ein universelles Speichermedium
4/43
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
Tabellen: die praktischste Datenstruktur um den Speicher zu organisieren.
Kompatibilität: Tabellen lassen sich einfach zwischen Anwendungen austauschen.
Flexibilität: Sowohl die Anzahl Spalten als auch die Anzahl Zeilen sind frei wählbar
© Departement Informatik, ETH Zürich
Die Tabelle als universelles Speichermedium
5/43
Nährwerte Schokoladencornet
Nährstoff Wert Einheit
Energie 1'230 kJ
Wasser 40.50 g
Protein 4.70 g
Fett, total 13.40 g
Fettsäuren, gesättigt 7.00 g
Cholesterin 27.00 mg
selektieren ([Spalte, Zeile])
löschen
einfügen
such
en
© Departement Informatik, ETH Zürich
Die Tabelle als flexibles Speichermedium
6/43
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
Die Tabelle kann man so erweitern:
© Departement Informatik, ETH Zürich
Die Tabelle als flexibles Speichermedium
7/43
Nährwerte Schokoladenprodukte
Produkt Energie Wasser ProteinFett, total
Fettsäuren, gesättigt Cholesterin
Cornet 1'230.0 40.5 4.7 13.4 7.0 27.0
Pudding 498.0 71.2 1.3 2.6 0.4 3.0
Schokolade 2'258.0 3.0 7.5 32.9 19.1 20.0
Einheit kJ g g g g mg
. . . oder so:
Nehmen wir an, wir möchten nun den Zuckergehalt von Schokoladen-Rahmglace speichern.
© Departement Informatik, ETH Zürich
Probleme mit der Tabelle als flexibles Speichermedium
8/43
Nährwerte Schokoladenprodukte
Produkt Energie Wasser Protein ZuckerFett, total
Fettsäuren, gesättigt Cholesterin
Cornet 1'230.0 40.5 4.7 13.4 7.0 27.0
Pudding 498.0 71.2 1.3 2.6 0.4 3.0
Rahmglace 24.6
Schokolade 2'258.0 3.0 7.5 32.9 19.1 20.0
Einheit kJ g g g g g mg
. . . dann gibt es "Löcher" in der Tabelle:
Dies lässt sich mit "Listen" vermeiden.
© Departement Informatik, ETH Zürich
Vereinfachung der Struktur durch linearisieren der Einträge
9/43
Nährwerte Schokoladenprodukte
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
Redundanz Vorteil
• Einfache Speicherung
• Einfache Verarbeitung
Nachteil
• Gross
• Unübersichtlich
© Departement Informatik, ETH Zürich
Die Nachteile einfacher Listen lassen sich beheben
10/43
Übersichtlichkeit wieder gewinnen
Redundanz eliminieren
• Listeneinträge selektieren • Zusammenfassungen berechnen• Daten reformatieren: Pivot-Tabellen
• Voraussetzung: Die Daten sind als Liste organisiert.
• Tabelle entlang Spaltengrenzen aufteilen • Wiederholungen in Teiltabellen entfernen• Einträge in Teiltabellen indizieren• Über Indizes Verbindung zu abgetrennten Teilen herstellen
© Departement Informatik, ETH Zürich
Daten thematisch in verschiedene Tabellen aufteilen
11/43Die Einträge der neuen Tabellen über Querverweise verbinden
© 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
• Datenverwaltung
• DatenmodellierungDatenmodellierung• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
© Departement Informatik, ETH Zürich
Hilfsmittel für die Modellierung von Daten
Methode Unterstützt
Mind mapping Gedanken assoziativspontan darstellen
Entity-Relationship Modell Datenbankgerechte Darstellung von Objekten,deren Merkmale und Beziehungen zueinander
Concept Maps Wissen kontextabhängig organisieren und darstellen
13/43
Eine Beschreibung der Verarbeitung und Speicherung der Daten muss für Leute verständlich sein, sich aber auch für die Programmierung eignen!
© Departement Informatik, ETH Zürich
Mind mapping
14/43
Merkmale um den Begriff "Lebensmittel" zu beschreiben
© Departement Informatik, ETH Zürich
Concept maps
15/43
© Departement Informatik, ETH Zürich
Entity-Relationship-Diagramm (Chen Notation)
Nahrungsmittel
Name
Analyse Nährstoffe
Typ
Masseinheit
NameNährstoff
Wert
16/43
Nährstoffe Methode
1 m m 1
Entitätsmenge Beziehung (Relationship) Entitätsmenge
Merkmal (Attribut)
Beziehungstyp (Kardinalität)
© Departement Informatik, ETH Zürich
Anwendung des E-R-Modells: Tabellen für Entitätsmengen
Nährwerte
Name Aprikose Kochbutter Paranuss
CH-Code 18.1.2.1 12.1.2.Z.2 18.1.6.6
Protein 0.8 0.5 13
Masseinheit g g g
Wasser 86.79 16.6 5.929
Masseinheit 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
Entität
Attribut
17/43
Entitätsmenge
Attributname
© 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
Nährstoff_id 180 84 57 180 84 57
Menge 86.79 12.1 0.4 39.632 48.802 2.032
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
Masseinheit mg g g mg
18/43
Verbindende Indizes
Primärschlüssel
Fremdschlüssel
© Departement Informatik, ETH Zürich
Tabellen für Beziehungen (Relationships)
Nahrungsmittel
NMittel_id 1000842 1001511
Name_d Aprikose Bürli
Name_f Abricot Bürli
Name_i Albicocca Bürli
CH-Code 18.1.2.1 12.1.2.Z.2
Nährstoffe
Nährstoff_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
Masseinheit g g mg mg
Analyse
Analyse_id 1 2
NMittel_id 1000842 1001511
Nährstoff_id 180 84
Quelle CIQUAL Inst. f. LMW
Menge 86.79 48.802
Methode unbekannt Summenwert
Person M. Racher S. Jacob
19/43
1
1
m
m
© Departement Informatik, ETH Zürich20/43
Zusammenfassung
• Datenverwaltung
• Datenmodellierung
• Pause
• DatenbankentwurfDatenbankentwurf• Relationale Operatoren und SQL
• Datenschutz: Statistische Datenbanken
© Departement Informatik, ETH Zürich
Modelle vs. Schemata
Modellierung derDaten aus der realen Welt
Modellierung derDaten im Rechner
Konzeptionelles Schema
Entity-Relationship-Modell
Relationales Datenmodell
21/43
© Departement Informatik, ETH Zürich
Grundlagen für den Datenbankentwurf
Datenbank
Basisdaten Selektive Abfrage
Konzeptionelles Schema
Internes Schema Externes Schema• Datenstrukturen
• Datentypen
• Zugriffsmechanismen
• Anwendungsspezifische Sicht auf die Daten
• Logische Gesamtstruktur
• Eigenschaften der Daten
• Beziehungen unter den Daten
Datenmodell
22/43
© 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)
• Verknüpfen von Daten aus den individuellen Tabellen mit relationalen Operatoren stellt die ursprüngliche Information wieder her
• Verteilen von Daten auf mehrere Tabellen (Normalisieren) reduziert Redundanz, d.h. die wiederholte Speicherung gleicher Werte
23/43
© Departement Informatik, ETH Zürich
Elemente einer Relation
Name CH-Code Wasser Masseinh Kohlehyd Masseinh Eisen Masseinh
Aprikose 18.1.2.1 86.79 g 12.1 g 0.4 mg
Bürli 12.1.2.Z.2 39.632 g 39.632 g 2.032 mg
Nährwerte
24/43
Tupel
AttributRelation Attributname
Attributwert
© Departement Informatik, ETH Zürich
Normalisieren: Verteilen von Daten auf mehrere Tabellen
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ährstoff_id Name_d Name_f Name_i Masseinh.
57 Eisen Fer Ferro mg
84 Kohlehydrate Hydrate de carbon Carboidrate g
180 Wasser Eau Acqua g
Nahrungsmittel
Nährstoffe
Name CH-Code Wasser Masseinh Kohlehyd Masseinh Eisen Masseinh
Aprikose 18.1.2.1 86.79 g 12.1 g 0.4 mg
Bürli 12.1.2.Z.2 39.632 g 39.632 g 2.032 mg
Nährwerte
25/43
Id_Nr Name_d Name_f Name_i Masseinh.
57 Eisen Fer Ferro mg
84 Kohlehydrate Hydrate de carbon Carboidrate g
180 Wasser Eau Acqua g
© Departement Informatik, ETH Zürich
Daten zusammenführen: Nährwerte von Bürli
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
Nahrungsmittel
Nährstoffe
Name Name_d Menge
Bürli Wasser 39.632
Bürli Kohlehydrate 48.802
Nährwerte
26/43
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
Id_Nr Name_d Name_f Name_i Masseinh.
57 Eisen Fer Ferro mg
84 Kohlehydrate Hydrate de carbon Carboidrate g
180 Wasser Eau Acqua g
• Datenverwaltung
• Datenmodellierung
• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL Relationale Operatoren und SQL • Datenschutz: Statistische Datenbanken
© Departement Informatik, ETH Zürich
Relationale Operatoren
Die drei wichtigsten Operatoren der relationalen Algebra für das Manipulieren von Tabellen sind:
a) SelectionWählt diejenigen Tupel einer Relation aus, welche bestimmte Bedingungen erfüllen
b) ProjectionWählt eine oder mehrere Spalten einer Relation aus
c) JoinPaart selektiv Spalten aus verschiedenen
Relationen
27/43
© Departement Informatik, ETH Zürich
Datenbanken abfragen: SQL
"Wieviele Nahrungsmittel enthalten weniger als 50 g Kohlehydrate ?"
28/43
Abfragesprache für Datenbankenz.B. SQL (Structured Query Language)
SELECT Menge FROM Nährstoffe WHERE Nährstoff_id = 84 AND Menge < 50
Natürlichsprachlich formulierte Frage
Tabellarische Ausgabe (Relation)
Nährstoffe
© Departement Informatik, ETH Zürich
Projection mit dem SQL-Befehl SELECT
SELECT CH-Code FROM Nahrungsmittel
29/43
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
CH-Code
18.1.2.1
18.1.2.1
18.1.6.6
12.1.2.Z.2
12.1.2.Z.2
12.1.2.Z.2
Nahrungsmittel
Resultat:
Attribut Relation
© Departement Informatik, ETH Zürich
Selection mit dem SQL-Befehl SELECT
SELECT * FROM Nahrungsmittel WHERE Menge < 15
Resultat:
30/43
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
Nahrungsmittel
Name CH-Code 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
Attributwert
© Departement Informatik, ETH Zürich
Selection + Projection mit dem SQL-Befehl SELECT
SELECT Nährstoff_id, Menge FROM Nahrungsmittel WHERE Nährstoff_id = 84
Nährstoff_id Menge
84 12.1
84 48.802
Resultat:
31/43
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
Nahrungsmittel
© Departement Informatik, ETH Zürich
Wie SELECT-Abfragen am besten gelesen werden
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
SELECT Nährstoff_id, Menge FROM Nahrungsmittel WHERE Nährstoff_id = 84
© Departement Informatik, ETH Zürich
Selection + Projection + Join mit dem SQL-Befehl SELECT
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
Id_Nr Name_d Name_f Name_i Masseinh. Hauptkomp.
57 Eisen Fer Ferro mg ja
84 Kohlehydrate Hydrate de carbon Carboidrate g ja
180 Wasser Eau Acqua g ja
NM
NS
NM.Name NS.Name_d NM.Menge
Bürli Wasser 39.632
Bürli Kohlehydrate 48.802
Resultat:
SELECT Name, Name_d, Menge FROM NM, NS WHERE Name = Bürli AND Menge > 30
33/43
• Datenverwaltung
• Datenmodellierung
• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL
• Datenschutz: Statistische DatenbankenDatenschutz: Statistische Datenbanken
© Departement Informatik, ETH Zürich
Statistische Datenbanken
• Abfragen beschränkt auf statistische Operationen (Aggregationen), die SQL zur Verfügung stellt:
COUNT
SUM
MEAN
MIN
MAX
• Vertrauliche Daten
34/43
© Departement Informatik, ETH Zürich
Statistische Datenbanken
35/43
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!
© Departement Informatik, ETH Zürich
Von Urs Schmied (im Bild rechts) wissen wir, dass er
36/43
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 1
Die Daten sind erfunden, Ähnlichkeiten mit lebenden Personen sind rein zufällig!
• zwischen 34 und 36 Jahre alt ist
• Jus studierte
• bei der UBS eine Position als Vizepräsident inne hat
© 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ännlichAlter 34 – 36VerheiratetZwei KinderLic.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
Name Geschlecht Beruf Spende (CHF)
Schamanski M Journalist 3000
Staub M Journalist 500
Bertolli M Unternehmer 1
Ott W Journalist 5000
Zwahlen W Wissenschaftler 1000
Koller M Wissenschaftler 20000
Waser W Arzt 2000
Schmid M Anwalt 10000
Geheime Wahlspenden
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: Wie viele Personen sind Journalist?
Antwort: 3
Frage: Wie viele Personen sind Journalist AND M?
Antwort: 2
Rückschluss: (Journalist AND W) identifiziert 1 Individuum (Ott)
Frage: Summe der Spenden der Journalisten?
Antwort: CHF 8500
Frage: Summe der Spenden Journalist AND M?
Antwort: 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
DeshalbZugriffe aufzeichnen (threat monitoring)
Notwendiger Aufwand für Blossstellungen hoch halten
43/43
Wir wünschen Ihnen ein schönes Wochenende
top related