Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte.

Ähnliche Präsentationen


Präsentation zum Thema: "Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte."—  Präsentation transkript:

1 Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte

2 © Institut für Computational Science, ETH Zürich 2/35

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

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

5 © Institut für Computational Science, ETH Zürich Hilfsmittel für die Modellierung von Daten MethodeUnterstützt Mind mappingGedanken assoziativ spontan darstellen Entity-Relationship ModellDatenbankgerechte Darstellung von Objekten, deren Merkmale und Beziehungen zueinander Concept Maps Wissen kontextabhängig organisieren und darstellen 5/35

6 © Institut für Computational Science, ETH Zürich Mind mapping 6/35

7 © Institut für Computational Science, ETH Zürich Concept maps 7/35

8 © Institut für Computational Science, ETH Zürich Entity-Relationship-Diagramm Nahrungsmittel Name RezeptLebensmittel Warencode Nährstoff Name Quantität Zutaten 8/35 Nährstoff Verluste m m 1 Entitätsmenge Beziehung (Relationship) Entitätsmenge Merkmal (Attribut) Beziehungstyp

9 © Institut für Computational Science, ETH Zürich Tabellarische Darstellung von Entitätsmengen Nahrungsmittel NameAprikoseBürliParanuss CH-Code Z Protein Masseinheitggg Wasser Masseinheitggg Kalium Masseinheitmg Kohlehydrate Masseinheitggg Vitamin E Masseinheitmg Entität Attribut 9/35 Entitätsmenge Attributname

10 © Institut für Computational Science, ETH Zürich Entflechten von Information Nahrungsmittel NameAprikose Bürli CH-Code Z.2 Nährstoff_id Menge Nährstoffe Nährstoff_id Name_dEisenKohlehydrateWasserVitamin K Name_fFerHydrate de carbonEauVitamine K Name_iFerroCarboidratiAcquaVitamina K Masseinheitmggg 10/35 = Schlüssel: stellt Verbindung zwischen Tabellen her

11 © Institut für Computational Science, ETH Zürich Festhalten von Beziehungen (Relationships) Nahrungsmittel NMittel_id Name_dAprikoseBürli Name_fAbricotBürli Name_iAlbicoccaBürli CH-Code Z.2 Nährstoffe Nährstoff_id Name_dWasserKohlehydratEisenVitamin K Name_fEauHydrate de carbonFerVitamine K Name_iAcquaCarboidratiFerroVitamina K Masseinheitggmg Analyse Analyse_id12 NMittel_id Nährstoff_id18084 QuelleCIQUALInst. f. LMW Menge MethodeunbekanntSummenwert PersonM. RacherS. Jacob 11/ m m

12 © Institut für Computational Science, ETH Zürich Datenmodellierung DatenbankentwurfDatenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte

13 © Institut für Computational Science, ETH Zürich Modelle vs. Schemata Modellierung der Daten aus der realen Welt Modellierung der Daten im Rechner Konzeptionelles Schema Entity-Relationship-Modell Relationales Datenmodell 12/35

14 © Institut für Computational Science, ETH Zürich Grundlagen für den Datenbankentwurf Datenbank Basisdaten Selektive Abfrage Konzeptionelles Schema Internes SchemaExternes Schema Datenstrukturen Datentypen Zugriffsmechanismen Anwendungsspezifische Sicht auf die Daten Logische Gesamtstruktur Eigenschaften der Daten Beziehungen unter den Daten Datenmodell 13/35

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

16 © Institut für Computational Science, ETH Zürich Elemente einer Relation NameCH-CodeWasserMassein h KohlehydMassein h EisenMassein h Aprikose g12.1g0.4mg Bürli Z g g2.032mg Nahrungsmittel 15/35 Tupel Attribut Relation Attributname Attributwert

17 © Institut für Computational Science, ETH Zürich Verteilen von Daten auf mehrere Tabellen NameCH-CodeNährstoff_idMenge Aprikose Aprikose Aprikose Bürli Z Bürli Z Bürli Z Nährstoff_idName_dName_fName_iMasseinh. 57EisenFerFerromg 84KohlehydrateHydrate de carbonCarboidrateg 180WasserEauAcquag Nahrungsmittel Nährstoffe NameCH-CodeWasserMasseinhKohlehydMassein h EisenMassein h Aprikose g12.1g0.4mg Bürli Z g g2.032mg Nahrungsmittel 16/35

18 © Institut für Computational Science, ETH Zürich Daten zusammenführen: Nährwerte von Bürli NameCH-CodeNährstoff_idMenge Aprikose Aprikose Aprikose Bürli Z Bürli Z Bürli Z Id_NrName_dName_fName_iMasseinh. 57EisenFerFerromg 84KohlehydrateHydrate de carbonCarboidrateg 180WasserEauAcquag Nahrungsmittel Nährstoffe Nam e Name_dMenge BürliWasser BürliKohlehydrate Nährwerte 17/35

19 Datenmodellierung Datenbankentwurf Relationale Operatoren und SQLRelationale Operatoren und SQL Sicherheitsaspekte

20 © 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) 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. 18/35

21 © Institut für Computational Science, ETH Zürich Datenbanken abfragen: SQL "Wieviele Nahrungsmittel enthalten weniger als 50 g Kohlehydrate ?" 19/35 Abfragesprache für Datenbanken z.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

22 © Institut für Computational Science, ETH Zürich Projection mit dem SQL-Befehl SELECT SELECT CH-Code FROM Nahrungsmittel 20/35 NameCH-CodeNährstoff_idMenge Aprikose Aprikose Paranuss Bürli Z Bürli Z Bürli Z CH-Code Z.2 Nahrungsmittel Resultat: Attribut Relation

23 © Institut für Computational Science, ETH Zürich Selection mit dem SQL-Befehl SELECT SELECT * FROM Nahrungsmittel WHERE Menge < 15 Resultat: 21/35 NameCH-CodeNährstoff_idMenge Aprikose Aprikose Paranuss Bürli Z Bürli Z Bürli Z Nahrungsmittel NameCH-CodeNährstoff_idMenge Aprikose Paranuss Bürli Z Attributwert

24 © 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_idMenge Resultat: 22/35 NameCH-CodeNährstoff_idMenge Aprikose Aprikose Paranuss Bürli Z Bürli Z Bürli Z Nahrungsmittel

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

26 © Institut für Computational Science, ETH Zürich Selection + Projection + Join mit dem SQL-Befehl SELECT NameCH-CodeNährstoff_idMenge Aprikose Aprikose Aprikose Bürli Z Bürli Z Bürli Z Id_NrName_dName_fName_iMasseinh. Hauptkomp. 57EisenFerFerromgja 84KohlehydrateHydrate de carbonCarboidrategja 180WasserEauAcquagja NM NS NM.NameNS.Name_dNM.Menge BürliWasser BürliKohlehydrate Resultat: SELECT Name, Name_d, Menge FROM NM, NS WHERE Name = Bürli AND Menge > 30 24/35

27 © 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 : SUM Berechnet die Summe der numerischen Werte einer Spalte AVG Berechnet den Durchschnitt der Werte einer Spalte MIN Gibt den kleinsten Wert einer Spalte zurück MAX Gibt den grössten Wert einer Spalte zurück COUNT Gibt die Anzahl Zeilen einer Tabelle zurück 25/35

28 Datenmodellierung Datenbankentwurf Relationale Operatoren und SQL SicherheitsaspekteSicherheitsaspekte

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

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

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

32 © 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ä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 mit der folgenden Abfrage: 29/35

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

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

35 © Institut für Computational Science, ETH Zürich Gewisses Vorwissen erlaubt Rückschlüsse: Beispiel 2 NameGeschlechtBerufSpende (CHF) SchamanskiMJournalist3000 StaubMJournalist500 BertolliMUnternehmer1 OttWJournalist5000 ZwahlenWWissenschaftler1000 KollerMWissenschaftler20000 WaserWArzt2000 SchmidMAnwalt10000 Geheime Wahlspenden n = 8; bei k =2: min. Antwortgrösse = 2, max. Antwortgrösse = 6 32/35

36 © 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 Umgehung Kleine 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

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

38 © 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 Deshalb Zugriffe aufzeichnen (threat monitoring) Notwendiger Aufwand für Blossstellungen hoch halten 35/35

39 Wir wünschen Ihnen ein schönes Wochenende!


Herunterladen ppt "Agenda für heute, 15. Dezember 2006 DatenmodellierungDatenmodellierung Pause Datenbankentwurf Relationale Operatoren und SQL Sicherheitsaspekte."

Ähnliche Präsentationen


Google-Anzeigen