48
Agenda für heute, 7. November 2008 Datenverwaltung Datenverwaltung • Datenmodellierung • Pause • Datenbankentwurf Relationale Operatoren und SQL Datenschutz: Statistische Datenbanken

Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

Embed Size (px)

Citation preview

Page 1: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

Agenda für heute, 7. November 2008

• DatenverwaltungDatenverwaltung• Datenmodellierung

• Pause

• Datenbankentwurf

• Relationale Operatoren und SQL

• Datenschutz: Statistische Datenbanken

Page 2: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© Departement Informatik, ETH Zürich

Elemente der Datenverwaltung

Leute

Information

Daten

Computer

Programme

Daten-verwaltung

Verarbeitung+

Speicherung

Algorithmen+

Datenstrukturen

Speicherkapazität+

Rechenleistung

2/43

Page 3: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 4: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 5: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 6: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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:

Page 7: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

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

Page 8: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

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

Page 9: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 10: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 11: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© Departement Informatik, ETH Zürich

Daten thematisch in verschiedene Tabellen aufteilen

11/43Die Einträge der neuen Tabellen über Querverweise verbinden

Page 12: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 13: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

• Datenverwaltung

• DatenmodellierungDatenmodellierung• Pause

• Datenbankentwurf

• Relationale Operatoren und SQL

• Datenschutz: Statistische Datenbanken

Page 14: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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!

Page 15: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© Departement Informatik, ETH Zürich

Mind mapping

14/43

Merkmale um den Begriff "Lebensmittel" zu beschreiben

Page 16: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© Departement Informatik, ETH Zürich

Concept maps

15/43

Page 17: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

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

Page 18: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 19: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 20: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 21: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© Departement Informatik, ETH Zürich20/43

Zusammenfassung

Page 22: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

• Datenverwaltung

• Datenmodellierung

• Pause

• DatenbankentwurfDatenbankentwurf• Relationale Operatoren und SQL

• Datenschutz: Statistische Datenbanken

Page 23: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 24: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 25: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 26: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 27: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 28: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

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

Page 29: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

• Datenverwaltung

• Datenmodellierung

• Pause

• Datenbankentwurf

• Relationale Operatoren und SQL Relationale Operatoren und SQL • Datenschutz: Statistische Datenbanken

Page 30: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 31: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 32: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 33: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 34: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 35: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 36: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 37: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

• Datenverwaltung

• Datenmodellierung

• Pause

• Datenbankentwurf

• Relationale Operatoren und SQL

• Datenschutz: Statistische DatenbankenDatenschutz: Statistische Datenbanken

Page 38: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 39: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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!

Page 40: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 41: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 42: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 43: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 44: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 45: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 46: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 47: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

© 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

Page 48: Agenda für heute, 7. November 2008 DatenverwaltungDatenverwaltung Datenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Datenschutz:

Wir wünschen Ihnen ein schönes Wochenende