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