Daten – Bank 6. Vorlesung Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig und schnell mit dem Objekt, welches es repräsentiert, in Verbindung gebracht werden können. ISBN TITLE 3-12-517154-7 … ISBN Number Man beachte die Nutzung/Kontext! Für eine Bücherei wäre die ISBN-Nummer nicht ausreichend, da es von einem Buch mehrere Exemplare geben kann. Dr. Karsten Tolle – PRG2 – SS 2017 2 Prinzipien des digitalen Speicherns II Atomisierung der Daten – teile die Daten in ihre kleinste Einheit auf 1. Normalform ISBN AUTHORS TITLE 0-13-221211-0 Jeffrey Hoffer, Mary Prescott and Fred McFadden … … ISBN TITLE … 0-13-221211-0 … Dr. Karsten Tolle – PRG2 – SS 2017 ISBN AUTHOR_ID 0-13-221211-0 1 0-13-221211-0 2 0-13-221211-0 3 ID VName NName 1 Jeffrey Hoffer 2 Mary Prescott 3 Fred McFadden 3 Prinzipien des digitalen Speicherns III … ein weiteres Beispiel (aus der Realität). … RULER … … Hadrian (Sabina) … Bedeutet: Hadrian war der Prägeherr und prägte die Münze für (zu ehren von) Sabina. … RULER COINED_FOR Hadrian Sabina … … Dr. Karsten Tolle – PRG2 – SS 2017 4 Prinzipien des digitalen Speicherns IV Handhabung unsicherer Informationen: … RULER … … Hadrian? … ?Nero Nero Bedeutung: … nicht wirklich sicher / abgeleitet aus anderen Informationen. … … Dr. Karsten Tolle – PRG2 – SS 2017 RULER QUALIFICATION Hadrian uncertain Nero inferred Nero certain … 5 Prinzipien des digitalen Speicherns V Konsistenz in der Namensgebung für Tabellen und Attribute. coinlist metal_information ID … CODE … besser coin_list metal_information ID … Dr. Karsten Tolle – PRG2 – SS 2017 ID … 6 Prinzipien des digitalen Speicherns VI Ausnutzung der referenziellen Integrität wo immer möglich! „ANTONINVS PIVS“ vs „ANTONINVS PIVS “ vs „ANTONINVS PIVS“ vs „ANTONINVS PIVS “ … Unterschied ist kaum sichtbar! … aber vorhanden! Dr. Karsten Tolle – PRG2 – SS 2017 7 Man beachte die Situation … Kunde ( Name Vorname Strasse Stadt) select * from Kunde; vs Nicht in Programmen! select Name, Vorname, Strasse, Stadt from Kunde; Dr. Karsten Tolle – PRG2 – SS 2017 8 Sicherheit beachten • … gibt es existierende Module/Bibliotheken? (Patches beachten) • … Benutzer, Rollen, Grant/Revoke … nur zulassen was nötig ist. • … keine unnötigen Infos nach draußen! • … testen und testen lassen! Dr. Karsten Tolle – PRG2 – SS 2017 9 Unterschiede: Rel. Modell - OO Rel. Modell OO Primary Key / Daten Object Identifier (intern) Generalisierung Wird nicht direkt unterstützt! Vererbung enthalten Datenkapselung Wird nicht direkt unterstützt! Zugriff nur über Methoden Beziehungen zwischen Objekten Teilweise durch Foreign Keys über Methoden, Attribute Interaktionen zwischen Objekten Wird nicht direkt unterstützt! über Methoden Identität Trigger und Stored Procedures können dies teilweise simulieren! … weiterführende Literatur: http://www.cs.utexas.edu/~wcook/Drafts/2005/PLDBProblem.pdf Dr. Karsten Tolle – PRG2 – SS 2017 10 OR-Mapping DB OR-Mapper Prog. Framework Beschreibung Java Persistence API (JPA) Ist eine Schnittstelle für die objektrelationale Abbildung von POJOs (Plain old Java Object). Wurde im Rahmen der EJB 3.0 von der Software Expert Group als Teil der JSR 220 entwickelt und herausgegeben. Sie soll die besten Ideen der APIs von Hibernate, Toplink und JDO beinhalten. Hibernate (Nhibernate für .NET) Open-Source Framework für Java entwickelt von der JBoss Community. Setzt auch die JPA um (Hibernate EntityManager). Hibernate wird von den meisten als die Referenz für die Lösung des IM im Open-SourceBereich für Java gesehen. … Dr. Karsten Tolle – PRG2 – SS 2017 11 Reverse Engineering • Basierend auf Foreign Keys! Dr. Karsten Tolle – PRG2 – SS 2017 12 Zusammenfassung … von Person AusweisNr. (0,n) Name Vorname lebt_in bis (0,n) Ort PLZ Ortsname Datenaustauschformate: CSV, JSON, XML, … SQL: • create • insert • select Dr. Karsten Tolle – PRG2 – SS 2017 • 1. Normalform • Schlüssel und Funktionale Abhängigkeiten • 2. Normalform Sicherheit 13 Klausur • PRG-2 Klausur am Montag den 31. Juli Start: 9:00 Uhr • Wo: Hörsaalgebäude Bockenheim Vorlesungsräume HV, HIV und HVI • Studierendenausweis mitbringen! Dr. Karsten Tolle – PRG2 – SS 2017 14 Chaos im Dreieck Java lernen Greenfoot (www.greenfoot.org) Gegeben ist ein Dreieck (ABC) und ein Startpunkt X. Wiederhole: •Zeichne bei X einen Punkt und •verschiebe X um die halbe Strecke in Richtung eines der Eckpunkte A, B oder C (zufällige Wahl) A Frage: Ergebnis nach 10.000 Wiederholungen? X B C