agenda für heute, 15. dezember 2006 datenmodellierungdatenmodellierung pause datenbankentwurf...
TRANSCRIPT
![Page 1: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/1.jpg)
Agenda für heute, 15. Dezember 2006
• DatenmodellierungDatenmodellierung• Pause
• Datenbankentwurf
• Relationale Operatoren und SQL
• Sicherheitsaspekte
![Page 2: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/2.jpg)
© Institut für Computational Science, ETH Zürich2/35
![Page 3: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/3.jpg)
© Institut für Computational Science, ETH Zürich
Elemente der Datenverwaltung
Leute
Information
Daten
Computer
Programme
Daten-verwaltung
Verarbeitung+
Speicherung
Algorithmen+
Datenstrukturen
Eine Beschreibung der Verarbeitung und Speicherung der Daten muss für Leute verständlich sein, sich aber auch für die Programmierung eignen!
Speicherkapazität+
Rechenleistung
3/35
![Page 4: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/4.jpg)
© Institut für Computational Science, ETH Zürich
Wieso Datenmodellierung?
Verständnis: Wie sollen die Daten gespeichert werden (Organisation)
Abstrahieren: Welche Daten sollen gespeichert werden
Bsp.: Bodenbeschaffenheit
• Verständnis über Herkunft und Verwendung der Daten
• Details abstrahieren
4/35
![Page 5: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/5.jpg)
© Institut für Computational Science, 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
5/35
![Page 6: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/6.jpg)
© Institut für Computational Science, ETH Zürich
Mind mapping
6/35
![Page 7: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/7.jpg)
© Institut für Computational Science, ETH Zürich
Concept maps
7/35
![Page 8: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/8.jpg)
© Institut für Computational Science, ETH Zürich
Entity-Relationship-Diagramm
Nahrungsmittel
Name
Rezept Lebensmittel
Warencode
Nährstoff
NameQuantität
Zutaten
8/35
Nährstoff Verluste
m m m 1
Entitätsmenge Beziehung(Relationship)
Entitätsmenge
Merkmal(Attribut)
Beziehungstyp
![Page 9: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/9.jpg)
© Institut für Computational Science, ETH Zürich
Tabellarische Darstellung von Entitätsmengen
Nahrungsmittel
Name Aprikose Bürli Paranuss
CH-Code 18.1.2.1 12.1.2.Z.2 18.1.6.6
Protein 0.8 8.618 13
Masseinheit g g g
Wasser 86.79 39.632 5.929
Masseinheit g g g
Kalium 315 159.927 680
Masseinheit mg mg mg
Kohlehydrate 12.1 48.802 11.8
Masseinheit g g g
Vitamin E 0.7 0.411 7
Masseinheit mg mg mg
Entität
Attribut
9/35
Entitätsmenge
Attributname
![Page 10: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/10.jpg)
© Institut für Computational Science, ETH Zürich
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
10/35
= Schlüssel: stellt Verbindung zwischen Tabellen her
![Page 11: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/11.jpg)
© Institut für Computational Science, ETH Zürich
Festhalten von 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
11/35
1
1
m
m
![Page 12: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/12.jpg)
© Institut für Computational Science, ETH Zürich
• Datenmodellierung
• DatenbankentwurfDatenbankentwurf• Relationale Operatoren und SQL
• Sicherheitsaspekte
![Page 13: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/13.jpg)
© Institut für Computational Science, ETH Zürich
Modelle vs. Schemata
Modellierung derDaten aus der realen Welt
Modellierung derDaten im Rechner
Konzeptionelles Schema
Entity-Relationship-Modell
Relationales Datenmodell
12/35
![Page 14: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/14.jpg)
© Institut für Computational Science, 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
13/35
![Page 15: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/15.jpg)
© Institut für Computational Science, 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
14/35
![Page 16: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/16.jpg)
© Institut für Computational Science, 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
Nahrungsmittel
15/35
Tupel
AttributRelation Attributname
Attributwert
![Page 17: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/17.jpg)
© Institut für Computational Science, ETH Zürich
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
Nahrungsmittel
16/35
![Page 18: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/18.jpg)
© Institut für Computational Science, 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
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
Nahrungsmittel
Nährstoffe
Name Name_d Menge
Bürli Wasser 39.632
Bürli Kohlehydrate 48.802
Nährwerte
17/35
![Page 19: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/19.jpg)
• Datenmodellierung
• Datenbankentwurf
• Relationale Operatoren und SQL Relationale Operatoren und SQL • Sicherheitsaspekte
![Page 20: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/20.jpg)
© Institut für Computational Science, 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.
18/35
![Page 21: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/21.jpg)
© Institut für Computational Science, ETH Zürich
Datenbanken abfragen: SQL
"Wieviele Nahrungsmittel enthalten weniger als 50 g Kohlehydrate ?"
19/35
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 22: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/22.jpg)
© Institut für Computational Science, ETH Zürich
Projection mit dem SQL-Befehl SELECT
SELECT CH-Code FROM Nahrungsmittel
20/35
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 23: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/23.jpg)
© Institut für Computational Science, ETH Zürich
Selection mit dem SQL-Befehl SELECT
SELECT * FROM Nahrungsmittel WHERE Menge < 15
Resultat:
21/35
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 24: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/24.jpg)
© Institut für Computational Science, 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:
22/35
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 25: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/25.jpg)
© Institut für Computational Science, ETH Zürich
Hinweis
• Im Allgemeinen versteht man eine SELECT-FROM-WHERE Abfrage am schnellsten, indem man zuerst die FROM-Klausel betrachtet um zu sehen, welche Relationen involviert sind (Nahrungsmittel).
• Anschliessend betrachtet man die WHERE-Klausel um zu sehen, welche Attribute eines Tupels für die Abfrage wichtig sind (Nährstoff_id).
• Am Schluss sieht man der SELECT-Klausel an, was die Ausgabe ist (Nährstoff_id, Menge).
23/35
SELECT Nährstoff_id, Menge FROM Nahrungsmittel WHERE Nährstoff_id = 84
![Page 26: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/26.jpg)
© Institut für Computational Science, 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
24/35
![Page 27: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/27.jpg)
© Institut für Computational Science, ETH Zürich
Funktionen in SQL
SQL stellt verschiedene andere Operatoren zur Verfügung, so unter Anderem die folgenden fünf Aggregations-Operatoren :
SUMBerechnet die Summe der numerischen Werte einer Spalte
AVGBerechnet den Durchschnitt der Werte einer Spalte
MINGibt den kleinsten Wert einer Spalte zurück
MAXGibt den grössten Wert einer Spalte zurück
COUNT Gibt die Anzahl Zeilen einer Tabelle zurück
25/35
![Page 28: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/28.jpg)
• Datenmodellierung
• Datenbankentwurf
• Relationale Operatoren und SQL
• SicherheitsaspekteSicherheitsaspekte
![Page 29: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/29.jpg)
© Institut für Computational Science, ETH Zürich
Statistische Datenbanken
• Abfragen beschränkt auf statistische Operationen (Aggregationen):
COUNT
SUM
MEAN
MIN
MAX
• Vertrauliche Daten
26/35
![Page 30: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/30.jpg)
© Institut für Computational Science, ETH Zürich
Statistische Datenbanken
27/35
Abfragen an Datenbanken werden als logischer Ausdruck formuliert
Beispiel
Suche: "weiblich AND Professor OR (Gehalt ≥ CHF 80000)"
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 31: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/31.jpg)
© Institut für Computational Science, ETH Zürich
Von Urs Schmied (im Bild rechts) wissen wir, dass er
28/35
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 32: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/32.jpg)
© Institut für Computational Science, 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 folgende Frage:
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 mit der folgenden Abfrage:
29/35
![Page 33: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/33.jpg)
© Institut für Computational Science, ETH Zürich
Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 1
Frage: 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"
30/35
![Page 34: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/34.jpg)
© Institut für Computational Science, ETH Zürich
Lassen sich solche Rückschlüsse verhindern?
Einfaches Prinzip der "Blossstellung"
• Eine Abfrage deren Antwortgrösse 1 ist.
• Die Antwortgrösse der Abfrage AND X.
Verhinderung durch minimale Antwortgrösse:
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 wirksam
31/35
![Page 35: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/35.jpg)
© Institut für Computational Science, 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
32/35
![Page 36: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/36.jpg)
© Institut für Computational Science, ETH Zürich
Rückschlüsse mittels "Tracker"
Angenommen, die Frage: (Journalist AND W)
identifiziert Ott eindeutig
Kontrolle Die minimale Anwortgrösse verhindert direkte Abfragen über Ott
UmgehungKleine Antwortmengen "füttern", damit sie die minimale Antwortgrösse erreichen
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)
33/35
![Page 37: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/37.jpg)
© Institut für Computational Science, 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!
34/35
![Page 38: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/38.jpg)
© Institut für Computational Science, 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
35/35
![Page 39: Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d8049795902118d3095/html5/thumbnails/39.jpg)
Wir wünschen Ihnen ein schönes Wochenende!