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-Code18.1.2.112.1.2.Z.218.1.6.6 Protein0.88.61813 Masseinheitggg Wasser86.7939.6325.929 Masseinheitggg Kalium315159.927680 Masseinheitmg Kohlehydrate12.148.80211.8 Masseinheitggg Vitamin E0.70.4117 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-Code18.1.2.1 12.1.2.Z.2 Nährstoff_id18084571808457 Menge86.7912.10.439.63248.8022.032 Nährstoffe Nährstoff_id5784180178 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_id10008421001511 Name_dAprikoseBürli Name_fAbricotBürli Name_iAlbicoccaBürli CH-Code18.1.2.112.1.2.Z.2 Nährstoffe Nährstoff_id1808457178 Name_dWasserKohlehydratEisenVitamin K Name_fEauHydrate de carbonFerVitamine K Name_iAcquaCarboidratiFerroVitamina K Masseinheitggmg Analyse Analyse_id12 NMittel_id10008421001511 Nährstoff_id18084 QuelleCIQUALInst. f. LMW Menge86.7948.802 MethodeunbekanntSummenwert PersonM. RacherS. Jacob 11/35 1 1 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 Aprikose18.1.2.186.79g12.1g0.4mg Bürli12.1.2.Z.239.632g 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 Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Aprikose18.1.2.1570.4 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 Nährstoff_idName_dName_fName_iMasseinh. 57EisenFerFerromg 84KohlehydrateHydrate de carbonCarboidrateg 180WasserEauAcquag Nahrungsmittel Nährstoffe NameCH-CodeWasserMasseinhKohlehydMassein h EisenMassein h Aprikose18.1.2.186.79g12.1g0.4mg Bürli12.1.2.Z.239.632g 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 Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Aprikose18.1.2.1570.4 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 Id_NrName_dName_fName_iMasseinh. 57EisenFerFerromg 84KohlehydrateHydrate de carbonCarboidrateg 180WasserEauAcquag Nahrungsmittel Nährstoffe Nam e Name_dMenge BürliWasser39.632 BürliKohlehydrate48.802 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 Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Paranuss18.1.6.61805.929 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 CH-Code 18.1.2.1 18.1.6.6 12.1.2.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 Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Paranuss18.1.6.61805.929 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 Nahrungsmittel NameCH-CodeNährstoff_idMenge Aprikose18.1.2.18412.1 Paranuss18.1.6.61805.929 Bürli12.1.2.Z.2572.032 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 8412.1 8448.802 Resultat: 22/35 NameCH-CodeNährstoff_idMenge Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Paranuss18.1.6.61805.929 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 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 Aprikose18.1.2.118086.79 Aprikose18.1.2.18412.1 Aprikose18.1.2.1570.4 Bürli12.1.2.Z.218039.632 Bürli12.1.2.Z.28448.802 Bürli12.1.2.Z.2572.032 Id_NrName_dName_fName_iMasseinh. Hauptkomp. 57EisenFerFerromgja 84KohlehydrateHydrate de carbonCarboidrategja 180WasserEauAcquagja NM NS NM.NameNS.Name_dNM.Menge BürliWasser39.632 BürliKohlehydrate48.802 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