2.1 Datenbanken / Einführung 2.1.1 Literatur: ● 2.1 Datenbanken / Einführung WS 05/06 WS 05/06 2.1.2 Begriffe: [8] Peter Kleinschmidt, Christian Rank: Relationale Datenbanksysteme, Eine praktische Einführung, Springer Verlag, Berlin, 1997 – Datenbank (der gesamte Datenbestand der zu verwalten ist) – Datenbanksystem (genauer: Datenbankverwaltungssystem) (besteht aus:) ● ● ● – Englisch: DBMS (Database Management System) Datensammlung (Datenbasis, Datenbank) Sammlung von Programmen zur Erzeugung und Verwaltung der Daten Plattform (Art/Typ des Computersystems) ● PC, Workstation, Mainframe, ... CSA 83 2.1 Datenbanken / Einführung CSA 84 2.1 Datenbanken / Einführung WS 05/06 2.1.3 Software-technische Vorteile, Beispiel: WS 05/06 2.1.4 Software-technische Vorteile, Übersicht: [8], S. 2, Fig. 1 Ein Versicherungunternehmen bietet Haftpflicht- und Rechtsschutzversicherungen. Die Realisierung erfolgt durch verschiedene Anwendungen, die jeweils für sich entwickelt wurden. Damit ergibt sich eine Datenhaltung in verschiedenen (physischen) Dateien auf den Massenspeichern (Festplatten) des Computersystems . Daher der geben sich Probleme: Inkonsistenzen für Kunden mit Haftpflicht und Rechtschutz (z.B. erhalten sie Doppelwerbung durch Marketing, Adresskorrekturen werden versehentlich nur in einem System ausgeführt oder die Namensschreibweisen in beiden Systemen weichen geringfügig voneinander ab, ... ) – Paraleller / konkurrenter Zugriff auf Daten – Konsistenz der Daten (keine "halb fertigen" Änderungen) – Transaktion (ohne DBMS: hoher Programmieraufwand für exklusiven Zugriff ) – Redundanzen (doppelte Datenhaltung) vermeiden – Kapselung der Daten (kein direkter physischer Zugriff, Zugriff nur durch das DBMS) – Meta-Daten (Informationen über die Struktur der Daten) – klarere Trennung Programmier- / Datenebene ● [8], S.3, Fig. 2 Verbesserung durch die Verwendung eines DBMS. CSA 85S Datenabstraktion (kein Konzept erforderlich, wie und wo Daten abgelegt/gespeichert werden) CSA 86 2.1 Datenbanken / Einführung 2.2 Datenbanken / DBMS Anforderungen WS 05/06 WS 05/06 2.2.1 Grundlegende Forderungen: 2.1.5 Vereinfachtes Software Modell einer Datenbank Anwendung: [8], S.4, Fig. 3 – – jeder Zugriff auf die eigentlichen (physischen) Daten erfolgt durch das DBMS Daten müssen manipulierbar (veränderbar) sein – Redundanzfreiheit (evtl. kontrollierbare Redundanz) – Universelle Verwendbarkeit (Einsatz für verschiedene Anwendungsbereiche) – Unabhängigkeit vom Programm (Von Programm A erzeugte Daten DBMS Software: ● ● – – Software zum Ausführen von Programmen / Abfragen Software zum Zugriff auf die physischen Daten müssen durch Programm B lesbar sein) DBMS Daten ● ● – Daten, die die Struktur der gespeicherten Daten (Tabellen) beschreiben (Metadaten) Datenbereich, der den Dateninhalt der gespeicherten Daten enthält. Das ist die eigentliche Datenbank) Konfigurationsunabhängigkeit des DBMS von Hardware, Software, Netz CSA 87S 2.2 Datenbanken / DBMS Anforderungen CSA 88 2.2 Datenbanken / DBMS Anforderungen WS 05/06 2.2.2 Zusätzliche (Unterscheidungs-) Merkmale für DBMS: 2.2.1 Grundlegende Forderungen: – WS 05/06 ● Funktionale Integration: transparente und nutzbare Darstellung semantischer Datenzusammenhänge Einfluss auf die Kaufentscheidung haben (u.a.): – Nationalsprachenunterstüzung – Strukturflexibilität: Struktur muß veränderbar sein (z.B. PLZ Umstellung, Euro-Umstellung ) – Verfügbarkeit für verschiedene Plattformen Mehrbenutzerbetrieb (gleichzeitiger Zugriff, Berechtigungen, Authentifizierung z.B. durch Passwörter) – – sparsame Ressourcenausnutzung (Rechenzeit, Plattenplatz) – Ergänzungstools: – Datenintegrität (Daten vollständig, semantisch korrekt) – ● ● Datensicherheit: Backup, Datenrekonstruktion (Rollforward, Transaktions-Log) CSA 89 ● Berichtserstellung (Reportgenerator) Unterstützung für die Erstellung graphischer Oberflächen (4GL) Tools zur Anwendungsentwicklung, Administration, Entwurf CSA 90 2.3 Datenbanken / Formale Modelle 2.3.1 Relationenmodell – – – 2.3 Datenbanken / Formale Modelle WS 05/06 WS 05/06 2.3.2 Relationenmodell, Beispiele: Seien M1, ..., Mn beliebige Mengen (z.B. ganze Zahlen, reelle Zahlen, Zeichenketten, Datumsangaben) kartesisches Produkt: die Menge M1 × ... × Mn besteht aus (n-) Tupeln: (m1, ..., mn), wobei mi ∈ Mi, 1 ≤ i ≤ n. Relation R: Teilmenge des kartesischen Produktes R ⊆ M1 × ... × Mn – M1 Menge aller Zeichenketten (Strings) – M2 = M3 = M4 Menge ganzer Zahlen – Relation Mitarbeiter MTAR ⊆ M1 × M2 × M3 × M4 – Bedeutung der Attribute ● ● – Die Indices 1, ..., n heißen die Attribute der Relation und – die Menge A = {1, ... n} ist die Attributmenge. – mi heißt Attributwert zum Attribut i. ● ● Attribut (Index) 1 Attribut (Index) 2 Attribut (Index) 3 Attribut (Index) 4 Name Telefonnummer Zimmernummer Personalnummer CSA 92 CSA 91 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.3 Namen für Attribute : – 2.3.4 Tabellendarstellung einer Relation: hier im Beispiel der vorhergehenden Folie wird aus der Attributmenge A = {1,2,3,4} Attributnamen (Spaltennamen) die Menge mit den Namen (oder Bezeichnungen) für die Attribute: A' = { Name, Telefonnummer, Zimmernummer, Personalnummer }. – WS 05/06 benannte Attribute zur Verbesserung der Übersicht ● – 2.3 Datenbanken / Formale Modelle Relation mit benannten Attributen, Schreibweise: MTAR(NAME, TELNR, ZINR, PNR) Bezeichnung für eine Relation mit benannten Attributen: Relationenschema Zeilen: [Daten-]Satz 1 NAME 2 3 TELNR ZINR 4 PNR Schultz 4711 016 803209 Meyer 1147 216 803210 Schmidt 1234 217 803212 Förger 2777 217 803213 Schröder 4321 219 803214 Stoiber 5678 219 803217 Attributwert (Feld eines Datensatzes) CSA 93 CSA 94 2.3 Datenbanken / Formale Modelle 2.3.5 Funktionale Abhängigkeit zweier Relationenschemata – Gegeben sei ein Raltionenschema R(A1, ..., An) mit der Attributmenge A = {A1, ..., An}. – Seien die Attributmengen X,Y Teilmengen der Attributmenge A der Relation R X = {X1, ..., Xk} ⊆ A und Y = {Y1, ..., Yj}⊆ A – 2.3 Datenbanken / Formale Modelle WS 05/06 WS 05/06 2.3.5 Funktionale Abhängigkeit (Fortsetzung) – Definition: Y heißt genau dann voll funktional abhängig von X, wenn für jede echte Teilmenge Z ⊂ X keine funktionale Abhängigkeit vorhanden ist. Schreibweise: X ↳ Y ( und nicht '' ) Definition: Y heißt genau dann funktional abhängig von X, wenn für zwei Tupel P, Q aus der Relation R, d.h. P R und Q R, P=(pA1, ..., pAn), Q=(qA1, ..., qAn), gilt: aus pX1 = qX1, ..., pXk = qXk folgt pY1 = qY1, ..., pYj = qYj Schreibweise: X Y CSA 95 2.3 Datenbanken / Formale Modelle 2 NAME 3 TELNR ZINR 4 PNR Schultz 4711 016 803209 Meyer 1147 216 803210 Schmidt 2777 217 803212 Förger 2777 217 803213 Schröder 4321 219 803214 Stoiber 4321 219 803217 ● WS 05/06 2.3.7 Schlüssel Beispiel: funktionale Abhängigkeit {PNR, ZINR} {TELNR} {ZINR} {TELNR} {ZINR} ↳ {TELNR} – Es sei die Attributteilmenge X der Attributmenge A der Relation R mit X = {X1, ..., Xk} ⊆ A gegeben – Definition: X heißt Superschlüssel für R, wenn gilt XA (funktional abhängig) (d.h. hier gilt: Y=A) – Definition: X heißt Schlüssel für R, wenn gilt X ↳ A (voll funktional abhängig) Funktionale Abhängigkeiten werden in der Regel nicht durch eine Analyse der vorhandenen Daten sondern durch die beabsichtigte Interpretation der Attribute festgelegt. – 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.6 Funktionale Abhängigkeit Beispiel 1 CSA 96 Im obigem Beispiel ist aufgrund einer innerbetrieblichen Organisationsentscheidung festgelegt worden, dass jedes Büro nur ein Telefon erhält. CSA 97 – Jeder Schlüssel ist also auch gleichzeitig Superschlüssel – Ein Schlüssel ist also ein minimaler Superschlüssel, dh. kein Attribut kann aus dem Schlüssel entfernt werden, ohne daß die Schlüsseleigenschaft verloren geht. – Ein Primärschlüssel ist beim Datenbank-Entwurf ausgezeichneter Schlüssel, z.B. der, der am effizientesten eingesetzt werden kann, vielleicht mit den wenigsten Attributen (Konvention: Unterstreichen in Tabellen) CSA 98 2.3 Datenbanken / Formale Modelle 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.8 Entity Relationship Model, Beispiel 2.3.9 Entity Relationship Model [8], S. 11, Fig. 7 Beispiel für Entities und ihre Beziehungen zu einander: Entity: Personal Attribute: Pid, Nachname, Vorname, Straße, Ort, Einstellungsdatum, Gehalt Entity: Abteilung Attribute: Aid, Bezeichnung, Ort Entity:Projekt Attribute: Projid, Name Relationen: "arbeitet in" (n:1): Personal ↔ Abteilung "ist Vorgesetzter von" (n:1): Personal ↔ Personal (Vorgesetzter) "ist zugelteil" (n:m): Personal ↔ Projekt – Entity ● ● – ● – Assoziation (in Beziehung setzten) zweier (mehrerer) Entities nach bestimmten Gesichtspunkten Relationship-Typ ● – Kollektion von Entities mit gleichen Merkmalen (Objekttyp) Relationship (Beziehung) ● – existierendes Objekt von anderen Objekten unterscheidbar Entitytyp Ojekttyp von Relationship Komplexität des Relationship-Typs ● wird über eine Klasseneinteilung festgelegt (nächste Folie) CSA 99S 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.9 Entity Relationship Model (Fortsetzung) – ● Es seien E1, E2 Entitytypen und R ⊆ E1 × E2 ein Realtionshiptyp ● Klasseneinteilung – – – CSA 100 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.10 Entity Relationship Model, Beispieldaten Komplexität des Relationship-Typs – WS 05/06 [8], S. 12, Fig. 8 Konkretes Beispiel für das auf Folie 197 dargestellte ER-Diagramm durch Tabellen mit konkreten Attributwerten. vgl. Übungsaufgabe 1:1-Beziehung: Jeder Entity in E1 wird durch R eine Entity in E2 zugeordnet und umgekehrt (Beispiel für R: "Ist verheiratet mit") 1:n-Beziehung: Jeder Entity in E2 wird durch R eine Entity in E1 zugeordnet (keine Beschränkung in der anderen Richtung) (z.B. E1=Klasse, E2=Kinder) n:1 Beziehung: Jeder Entity in E1 wird durch R eine Entity in E2 zugeordnet (keine Beschränkung in der anderen Richtung) m:n Beziehung: Beliebige Zuordnung von Entities in E1 zu Entities in E2 möglich (z.B. E1= Studenten, E2= Vorlesungen) [8], S. 10, Fig. 6 graphische Darstellung in Entity-Relationship-Diagrammen CSA 101S CSA 102S 2.3 Datenbanken / Formale Modelle 2.3.11 Entity Relationship Model / Relationen ● – Aus dem Beispiel ergeben sich für die Entities die Relationenschemata ● PERSONAL (Pid, Nachname, Vorname, Straße, Ort, Einstellung, Gehalt) ● ABTEILUNG (Aid, Bezeichnung, Ort) ● PROJEKT (Projid, Name) Relationen für die Relationship-Typen im Beispiel: ● ist_vorgesetzter_von (vorges_id, pid) ● arbeitet_in (pid, aid) ● ist_zugeteilt(pid, projid) – – – – Auswahl: Select („alle vom Personal, die in Abteilung 5 [Außendienst] sind“) Projektion: Auswahl bestimmter Spalten (Ort, Aid aus Personal) Vereinigung: Zusammenfassung zweier Relationen zu einer („alle Orte, die Wohnorte von Mitarbeitern oder Abteilungsstandorte sind“) Durchschnitt: Im Ergebnis sind nur Elemente enthalten, die in beiden Relationen vorhanden sind (Attribute paarweise aus der selben Grundmenge) ( „Orte aus Abteilung, die auch Wohnorte von Mitarbeitern sind“) – Differenz: Nur Datensätze, die in der zweiten Menge nicht vorhanden sind, bleiben in der ersten erhalten (Attribute paarweise aus der selben Grundmenge) („Orte aus Abteilung, die nicht Wohnorte von Mitarbeitern sind“) – Kartesisches Produkt (vgl. Einleitung: Ergebnisrelation enthält jedes Element der einen Relation mit kombiniert mit jedem Element der der anderen Relation) CSA 103 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.11 Operationen für Relationen (Fortsetzung) – CSA 104 2.3 Datenbanken / Formale Modelle ● Ergebnisrelation: [8], S. 15, Fig. 10 Ergebnistabelle des Equi-Joins Beispiel: Tabelle Personal mit Tabelle Abteilung: – WS 05/06 2.3.11 Operationen für Relationen (Fortsetzung) Join: Zusammenfassung von Relationen anhand von Beziehungen vergleichbarer Attribute von jeweils zwei Relationen ● WS 05/06 2.3.11 Operationen für Relationen Zusammenhang: Entity-Relationship-Modell /Relationen – 2.3 Datenbanken / Formale Modelle WS 05/06 Attribute Aid müssen übereinstimmen [8], S. 16, Fig. 9 graphische Darstellung der Konstruktion eines (Equi-) Joins ● ● ● Diese Art der Verknüpfung wird als Equi-Join bezeichnet Entfernen doppelter Attribute: Natural Join Verbindung einer Relation mit sich selbst: Self-Join – Beispiel Tabelle Personal, Ergebnis: Nachname Mitarbeiter, Nachname Vorgesetzter ● Regel: Null Werte niemals gleich CSA 106S CSA 105S 2.3 Datenbanken / Formale Modelle 2.3.11 Operationen für Relationen (Fortsetzung) ● 2.3 Datenbanken / Formale Modelle WS 05/06 2.3.12 Zusatzforderungen für relationale DBMS Aggregationsoperationen – (werden dazu genutzt, um aus einer Gruppe (Menge) von Datensätzen (Tupeln) aus den Werten vorgegebener Attribute die folgenden Werte – zu ermitteln ● ● ● ● ● WS 05/06 Informationsregel (Informationen nur einheitlich als Attribut gespeichert) Zugriffsgarantie (erforderliche Zugriffsinformation: Tabellenname, Spaltenname, Primärschlüssel) COUNT Zählen von Datensätzen SUM Summieren von Werten (nur für numerische Attributwerte) MINIMUM auch für Zeichenketten (Strings) -> lexikalisch kleinstes Element MAXIMUM ebenfalls für Zeichenketten, AVG (average) Mittelwert – Nicht bekannte Information werden einheitlich als NULL gespeichert – Datenbankkatalog (auch Beschreibungsinformationen (Metadaten) in Tabellenform, d.h. die Informationen über Tabellen (Relationen), Attribute und deren Typen werden ebenfalls als Tabellen (Relationen) gespeichert) – Mengenorientierung (Unterdrückung doppelter Sätze) – Integritätsunabhängigkeit (Formulierung der Integritätsregeln in Datenbanksprache (SQL), Speicherung im Datenbankkatalog, z.B. in der Projetzuordnung nur Personalnummern zulassen, zu denen es auch einen Mitarbeiter in der Personaltabelle gibt.) CSA 107 2.3 Datenbanken / Formale Modelle DDL – – – ● – – – – – ● Data Definition Language, Beispiele: CREATE TABLE ... Tabelle anlegen ALTER ... Struktur einer Tabelle ändern: z.B. Attribute hinzufügen, löschen, Typ ändern (beispielsweise bei Zeichenketten die Länge verändern) DROP TABLE ... Tabelle löschen ● Wesentlicher Schritt beim Entwurf (engl. Design): Festlegung der Tabellen-Struktur – Frage bei mehreren Alternativen: Was ist eine gute Form für ein Relationenschema? – Kriterien: DML Data Manipulation Language, Beispiele: – SELECT Datensätze auswählen UPDATE Attributwerte ändern INSERT Neue Datensätze einfügen DELETE Datensätze löschen GRANT Benutzern Berechtigungen für den Datenzugriff erteilen REVOKE Benutzern Berechtigungen entziehen DCL – – WS 05/06 2.4.1 Entwurfsaufgabenstellung Datenbanksprache (SQL Structured Query Language) ● 2.4 Datenbanken / Entwurf WS 05/06 2.3.12 Zusatzforderungen für relationale DBMS – CSA 108 ● ● Logische Ebene: Wie leicht fällt die Interpretation Physikalische Ebene: Wie effizient sind Abrufen, Speichern, Ändern Data Control Language, Beispiele: COMMIT ROLLBACK Eine Folge von Änderungen auf einmal anwenden Eine Folge von Änderungen wieder verwerfen CSA 109 CSA 110 2.4 Datenbanken / Entwurf 2.4.2 Entwurfsbedingte Anomalien ● 2.4 Datenbanken / Entwurf WS 05/06 2.4.2 Entwurfsbedingte Anomalien (Fortsetzung) Beispiel, Relationenschema: – Folgerung: Für jeden Kunden nur ein Datensatz (Kunde ist Schlüssel) – Änderungsanomalie Bestellungen (Kunde, Ort, Vertreter, Menge) – Kunde Name des Kunden (eindeutig, Primärschlüssel) – Ort Unternehmenssitz des Kunden – Vertreter Für den Kunden zuständiger Vertreter, ● abhängig vom Unternehmenssitz – ● Menge Menge des bestellten Artikels der Firma – KUNDE ORT VERTRETER MENGE Auer Passau 1 9 Blank Regensburg 2 20 Christ München 3 3 Dom Passau 1 5 2.4 Datenbanken / Entwurf ● – ● – CSA 112 2.4 Datenbanken / Entwurf WS 05/06 Wird ein Kunde gelöscht (z.B. keine Bestellung) => Information über den Ort geht verloren Lösung: Beispiel, Relationenschema: BestellM (Kunde, Menge) STANDORT (Kunde, Ort) Ein neuer Datensatz kann nur eingefügt werden, wenn alle 4 Attribute bekannt sind (das ist eine Forderung des theoretisches Relationenmodell) Abschwächung dieser Forderung bei Datenbanken: Alle Schlüssel müssen bekannt sein – Ausgangspunkt: Funktionale Abhänigkeiten – Idee: aus funktionalen Abhängigkeiten weitere ableiten Seien X, Y, Z Teilmengen der Attributmenge eines Realtionenschemas, dann gelten die folgenden Regeln (Armstrongs Inferenzregeln): – Anomalien reduzieren: ● WS 05/06 2.4.3 Minimale Abhängigkeitssysteme Einfügeanomalie: ● Wird ein Kunde gelöscht (z.B. keine Bestellung) => Information über den Ort geht verloren (siehe nächste Folie) CSA 111 Löschanomalie: ● Ändert sich der Vertreter (z.B. Passau) => mehrere Sätze ändern Lösung: Beispiel, Relationenschema: Bestell1 (Kunde, Ort, Menge) ZUST (Ort, Vertreter) Löschanomalie: ● 2.4.2 Entwurfsbedingte Anomalien (Fortsetzung) – WS 05/06 ● Aus Y ⊆ X folgt: X Y (Reflexivität). ● Gilt X Y, so gilt auch X ∪ Z Y (Argumentierung) ● Gilt X Y und Y Z, so gilt auch X Z (Transitivität) Mit diesen Regeln lassen sich aus einem System von funktionalen Abhängigkeiten alle weiteren Abhängigkeiten ableiten Lösung: Normalformen von Relationen CSA 113 CSA 114 2.4 Datenbanken / Entwurf 2.4.3 Minimale Abhängigkeitssysteme (Fortsetzung) – – – (1) Für jede Abhängigkeit X Y gilt, dass Y aus genau einem Attribut besteht (2) F enthält keine redundanten Abhängigkeiten, dh. es gibt in F keine Abhängigkeit, die sich durch Anwendung der Inferenzregeln ableiten läßt. (3) Eine Abhängigkeit von X A in F kann nicht durch durch Y A ersetzt werden mit Y ⊆ X und X ≠ Y F+ heißt Abschluss von F. Die beiden Systeme ergeben die gleichen Abhängikeiten, wenn gilt: F+ =G+ . – ● In diesem Fall werden F und G als äquivalent bezeichnet 2.4 Datenbanken / Entwurf – Forderung 1: Daraus entstehen viele kleine Abhängigkeiten mit X Ak1, ..., X Akn, Zusammenfassung in der CSA 116 Schreibweise (kompakter, Abkürzung) X Ak1 ∪ ... ∪ Akn, – Herleitung in der Praxis: Durch Analyse der vorgesehen Bedeutung der Attribute (Beispiel: Zimmernr. / Telefonnr.) Umwandlung zur 1. Normalform Schlüssel identifizieren: WS 05/06 2.4.4 Zweite Normalform alle Attribute haben atomare Werte Beispiel nicht in 1. Normalform: 2.4 Datenbanken / Entwurf WS 05/06 2.4.4 Erste Normalform – – Frage: welches System von funktionalen Abhängigkeiten enthält keine „überflüssigen“ Informationen und ist somit minimal? CSA 115 – Minimale Abhängigkeit, Bedingungen: Vergleich zweier Systeme F und G von funktionalen Abhängigkeiten: ● WS 05/06 2.4.3 Minimale Abhängigkeitssysteme (Fortsetzung) Für ein System F wird das (vollständige) System aller funktionaler Abhängigkeiten mit F+ bezeichnet, das sich durch Anwendung der Inferenzregeln ergibt. ● 2.4 Datenbanken / Entwurf WS 05/06 [8], S. 74, Fig. 37 Relation mit nicht atomaren Attributen, Das Attribut Hobbies besteht aus einer Liste, deren Elemente immer die zwei Werte (Name des Hobbies und Priorität) enthalten [8], S. 75, Fig. 38 Überführung der Relation in zwei Relationen zusätzliche Relation Hobbies hat Attribute Nr. (für die Person), Hobbie-Name, Priorität CSA 117S – jedes Attribut, das nicht Bestandteil eines Schlüssels (nicht Superschlüssel) ist, ist voll funktional abhängig von jedem Schlüssel – Folgerung: Sind alle Schlüssel einelementig, so liegt bereits die zweite Normalform vor – Beispiel (Kino): KINO (PLCODE, SAAL, PLATZ, REIHE, PREIS, GRÖSSE) ● PLCODE eindeutige Platznummer im ganzen Kino ● SAAL Nummer des Spielsaals ● PLATZ Nummer des Platzes im Spielsaal ● REIHE Reihe des Platzes im Spielsaal ● PREIS Eintrittspreis für den Platz ● GRÖSSE Größe des Spielsaals CSA 118 2.4 Datenbanken / Entwurf 2.4.4 Zweite Normalform (Fortsetzung) – – a1: {PLCODE} ↳ – a2: {SAAL, PLATZ} ↳ {PLCODE, SAAL, PLATZ, REIHE, PREIS, GRÖSSE} – a3: {SAAL} ↳ {GRÖSSE} – a4: {REIHE} ↳ {PREIS} – Verletzung der Regel: GRÖSSE ist vom einer echten Teilmenge {SAAL} des Schlüssels {SAAL, PLATZ} funktional CSA 119S abhängig [8], S. 77, Fig. 40 Grafische Darstellung der Transformation in die 2. Normalform – erste Normalform liegt vor und – für jede funktionale Abhängigkeit X {Ak} gilt: CSA 120S 2.4 Datenbanken / Entwurf WS 05/06 2.4.5 Dritte Normalform WS 05/06 2.4.5 Dritte Normalform (Fortsetzung) – X ist Superschlüssel der Relation R oder Ak ist Bestandteil eines anderen Schlüssels Normalisierung, dritte Normalform: [8], S. 77, Fig. 40, wie Folie 199 Grafische Darstellung der Transformation in die 2. Normalform – Alternative Formulierung: Analysiere alle Attribute Ak, die nicht Bestandteil eines Schlüssels sind, falls gilt: X ↳ {Ak} muss X Schlüssel sein => 3.Normalform liegt vor. – Hinweis: ein Relationenschema in dritter Normalform liegt automatisch auch in zweiter Normalform vor. – Normalisierung: {PLCODE, SAAL, PLATZ, REIHE, PREIS, GRÖSSE} 2.4 Datenbanken / Entwurf ● WS 05/06 2.4.4 Zweite Normalform (Fortsetzung) [8], S. 76, Fig. 39 Grafische Darstellung der unten genannten (funktionalen) Abhängigkeiten ● 2.4 Datenbanken / Entwurf WS 05/06 Relationen mit nur einem Nichtschlüssel-Attribut sind automatisch in dritter Normalform CSA 121 – nicht in Dritter Normalform: ● {REIHE} ↳ {PREIS} Weder ist Reihe Superschlüssel noch ist Preis Bestandteil irgend eines anderen Schlüssels. CSA 122S 2.4 Datenbanken / Entwurf 2.4 Datenbanken / Entwurf WS 05/06 2.4.5 Dritte Normalform (Fortsetzung) – 2.4.6 Andere Normalform Normalisierung, dritte Normalform, Ergebnis: [8], S. 78, Fig. 41 Grafische Darstellung der Transformation in die 3. Normalform – Für die Praxis von untergeordneter Relevanz – vierte Normalform – Boyce-Codd-Normalform (BCNF) – Domain-Key-Normalform (DKNF) CSA 123S 2.4 Datenbanken / Entwurf CSA 124 2.4 Datenbanken / Entwurf WS 05/06 2.4.6 Bewertung der Normalisierung ● ● WS 05/06 WS 05/06 2.4.6 Datenbankindex Normalisierung, Vorteile: – Verminderung der Redundanz – Weniger Anomalien – Mehr Konsistenz – Speicherplatzersparnis [8], S. 90, Fig. 50 Grafische Darstellung der Struktur eines Indexes Normalisierung, Nachteile: – – ● Unübersichtlichere und schwieriger zu handhabende Datenbanken Höhere Antwortzeiten durch Verknüpfung mehrerer Tabellen CSA 125 Index (B-Baum) – auf eine oder mehrere Spalten – mehrere Indices pro Tabelle sind möglich – automatisch vom DBMS verwaltet – Verbesserung für WHERE, ODER BY CSA 126S 2.4 Datenbanken / Entwurf 2.4.7 Weitere Aspekte bei Datenbanken – Transaktionen (SQL: COMMIT, ROLLBACK) – Sperren von Tabellen (SQL: LOCK TABLE ... ) – Berechtigungen (SQL: GRANT ... , REVOKE ...) – VIEWS (SQL: CREATE VIEW ... ) Pseudo-Tabellen deren Daten durch eine SQL SELECT-Bedingung festgelegt werden – 2.4 Datenbanken / Entwurf WS 05/06 2.4.7 Weitere Aspekte bei Datenbanken (Fortsetzung) – ● ● ● ● Web basiert (Plattform unabhängig) – – ● ● Server basiert: Java, PHP, Perl, ... auf dem Client: HTML/Javascript Client basiert: Java-Applets, JDBC (Java Database Connectivity) auf dem Server: Datenbank mit JDBC Proprietäre Lösung versch. Hersteller 3.1 Verschlüsselung / Einführung – kein Ersatz für Computersicherheit – Warum Verschlüsselung? ● ● ● ● ● – PRIMARY KEY FOREIGN KEY ein oder mehrere Attribute bilden einen Primärschlüssel ein oder mehrere Attribute beziehen sich auf einen Primärschlüssel in einer anderen Datenbanktabelle, d.h. hier stellt das DBMS sicher, das nur Datensätze mit Werten in die Tabelle aufgenommen werden, zu denen es in der anderen Tabelle auch einen zugehörigen Eintrag gibt (referentielle Integrität). CHECK (eingeschränkt) – Trigger bei Änderungen in der Datenbank automatisch eine Aktion ausführen – Cursor dient zum geordneten Durchlaufen von Sätzen in der Datenbank. Der Cursor legt den aktuellen Datensatz fest und durchläuft z.B. nach einander alle Datensätze, die zu einer Anfrage gehören. CSA 128 WS 05/06 Literatur: – Einführung in die Kryptographie Network Associates International (NAI) : http://www.nai.com, ebenfalls unter: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdf – Script von Prof. Völler Fachbereich E+I der HAW: http://users.informatik.haw-hamburg.de/~voeller/crypto.zip – asymmetrisch (public, private Key) symmetrisch, Problem: sicherer Austausch des Schlüssels ein oder mehrere Attribute dürfen einen Wert oder eine Wertekombination nur einmal enthalten. 3.1 Verschlüsselung / Einführung ● Methoden Attribut muss vorhanden sein Stored Procedures (Oracle: PL/SQL = procedural SQL) WS 05/06 zufällige Betrachtung / Enthüllung sensibler Daten Systemadministratoren sollen nicht an alle Informationen herankommen Angriffe erschweren NOT NULL UNIQUE – CSA 127 – Constraint (zusätzliche Bedingungen für Attributwerte) graphische Benutzeroberflächen ● WS 05/06 Das Handbuch der freien Software GnuPG http://www.gnupg.org/gph/de/manual.pdf Software ● ● Netzwerkkommunikation: z.B. ssh, scp E-Mail: z.B. PGP CSA 129 CSA 130 3.2 Verschlüsselung / Beispiel ● 3.3 Verschlüsselung / Verfahren WS 05/06 Beispiel für den Einsatz: 3.3.1 Symmetrische Verschlüsselung – Alice möchte bei Ihrer Bank eine Überweisung in Auftrag geben. Zur Übertragung soll das Internet genutzt werden. – Probleme ● ● ● WS 05/06 Vertraulichkeit (nur die Bank soll den Inhalt der Überweisung lesen können) Authentizität (Die Bank muss sicher sein, daß die Überweisung von Alice stammt) Integrität (Der Inhalt der Daten ist unverändert, z.B. der Überweisungsbetrag) – – Alice Überweisung Integrität ergibt sich automatisch, wenn ● Vertraulichkeit ● Authentizität gewährleistet sind. Manchmal ist Vertraulichkeit nicht erwünscht (z.B. öffentliche Bekanntmachungen), dann sind aber Authentizität (z.B. Reisewarnung stammt wirklich von der Bundesregierung) und Integrität ( z.B.wurde tatsächlich für das Land Algerien herausgegeben) wesentliche Forderungen CSA 131 Quelle der Bilder NAI: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdf CSA 132 3.3 Verschlüsselung / Verfahren 3.3 Verschlüsselung / Verfahren WS 05/06 3.3.1 Symmetrische Verschlüsselung (Fortsetzung) ● 3.3.1 Symmetrische Verschlüsselung (Fortsetzung) ● In unserem Beispiel: Alice Überweisung Merkmale der konventionellen (klassischen, symmetrischen) Verschlüsselung – Sender und Empfänger verfügen über einen gemeinsamen Schlüssel, der zum Ver- und Entschlüsseln benutzt werden kann. – Der verschlüsselte Text ist ohne den Schlüssel nicht lesbar ● Verschlüsselung WS 05/06 – Entschlüsselung d.h. nur mit solchen Aufwand, dass sich der Versuch nicht lohnt Das Verschlüsselungsverfahren ist allgemein bekannt (Kerckhoffs Maxime, niederl. Philologe, Buch: La cryptographie militaire) – CSA 133 Geheim/vertraulich ist nur der Schlüssel CSA 134 3.3.1 Symmetrische Verschlüsselung (Fortsetzung) ● – – – – – ● Umgeordnete Alphabete: – Es sei – Buchstaben verschieben (Cäsar): leicht zu knacken (z.B. Analyse der Buchstabenhäufigkeiten) T der zu verschlüsselnde Ausgangstext C (chiffriert) der verschlüsselte Text K (Key) der Schlüssel, der geheim zu halten ist E( K, T ) eine Funktion, deren Berechnungsvorschrift bekannt ist und die den verschlüsselten Text berechnet (engl. encode): C = E( T, K ) D( K, C ) eine Funktion, deren Berechnungsvorschrift bekannt ist und die den Ausgangstext berechnet (engl. decode): T = D( K, C ) – – weitere ... Verschlüsselungsmaschinen – Dt. Wehrmacht: Enigma Dann gilt: T = D( K, E(K, T) ) ● – – – – – CSA 136 WS 05/06 3.3.2 Symmetrische Verschlüsselung, Beispiele (Fortsetzung) DES (Data Encryption Standard) – Englisch 3.3 Verschlüsselung / Verfahren WS 05/06 3.3.2 Symmetrische Verschlüsselung, Beispiele (Fortsetzung) Deutsch Bilder: Script Prof. Dr. Völler CSA 135 3.3 Verschlüsselung / Verfahren WS 05/06 3.3.2 Symmetrische Verschlüsselung, Beispiele Mathematische Formulierung ● 3.3 Verschlüsselung / Verfahren WS 05/06 Buchstabenhäufigkeiten 3.3 Verschlüsselung / Verfahren – 1977 entwickelt von IBM unter Mitwirkung der NSA Schlüssellänge 56 Bit (+ 8 Paritätsbits = 64) Hintertür vorhanden? ● 1991 Shamir: Differntielle Kryptoanalyse => Reduktion des Analyseaufwandes um 29 (512) auf 247 (1,4 1014) ● Bereits 1977 bekannt, aber nicht publiziert Blockchiffre 64 Bit (8 Byte) Klartext -> 64 Bit Geheimtext einfache logische und arithmetische Operationen, leicht in Hardware zu realisieren verschiedene Modi: ● ECB Electronic Code Book Mode: alle 64 Bit werden mit gleichem Schlüssel verschlüsselt. ● CBC Chiper Block Changing Mode: Verschlüsselung des n-ten Blocks verwendet Ergebnisse der vorangehenden n-1 Verschlüsselungen CSA 137 DES (Data Encryption Standard) ● Sicherheit – – – 1978 Untersuchung durch ein US Senatskomitee: kein Hinweis auf "Hintertüren" der NSA (Berichtsdetails heute noch geheim) DES eine Gruppe? 1992: Keine Gruppe => mehrfache Verschlüsselung ist sinnvoll: C = E( K1, E(K2, T) ) => zusätzliche Sicherheit IDEA (Nachfolger von DES) ● ● Schlüssellänge: 128 Bits Triple IDEA: Verbesserung der Sicherheit: C = E(K1, D(K2, E(K1,T))) T = D(K1, E(K2, D(K1,T))) CSA 138 3.3 Verschlüsselung / Verfahren 3.3.3 Symmetrische Verschlüsselung, Problem – 3.3 Verschlüsselung / Verfahren WS 05/06 WS 05/06 3.3.4 Asymmetrische Verschlüsselung, Prinzip Austausch des symmetrischen Schlüssels (über das Internet: unsicher!) Empfänger Empfänger Übermittlung des b Schlüssels auf sicherem Weg Alice Überweisung Verschlüsselung ● Entschlüsselung Lösung: asymmetrische Verschlüsselung (nächste Folie) Quelle der Bilder NAI: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdfCSA 140 CSA 139 3.3 Verschlüsselung / Verfahren 3.3.5 Hybrides Verfahren Problem: asymmetrische Verschlüsselung ca. 1000 fach langsamer als symmetrische Verschlüsselung – Lösung: Hybrides Verfahren ● WS 05/06 3.3.6 Hybrides Verfahren (Fortsetzung) – ● 3.3 Verschlüsselung / Verfahren WS 05/06 – Entschlüsseln beim hybriden Verfahren Erzeugen eines zufälligen symmetrischen Sitzungsschlüssels Übermittlung des Sitzungsschlüssels mit Hilfe der asymmetrischen Verschlüsselung Quelle der Bilder NAI: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdf CSA 141 Quelle der Bilder NAI: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdfCSA 142 3.3 Verschlüsselung / Verfahren 3.3.7 Sicherheit der asymmetrischen Verschlüsselung – – Schlüssellängenvergleich – – Verifizieren: verschlüsselten Teil mit öffentlichem Schlüssel entschlüsseln, bei Übereinstimmung: Unterschrift OK (Authentizität) Empfänger RSA (1977, Autoren: Rivest, Shamir, Adlemann) – – wähle große Primzhalen p,q, und wähle e,d mit (e*d)%((p-1)*(q-1)) = 1 öffentlicher Schlüssel: (e, p*q), privater Schlüssel: (d, p*q) Verschlüsselung einer Zahl t (0 <= t < p*q): c = te %(p*q), t = cd %(p*q) ElGamal (1985 Taher ElGamal ) ● 3.4 Verschlüsselung / Unterschriften CSA 143 WS 05/06 3.4.2 Anwendbares Verfahren CSA 144 3.4 Verschlüsselung / Unterschriften WS 05/06 3.4.2 Anwendbares Verfahren (Fortsetzung) Nachteile der grundlegenden Idee ● ● ● Unterschreiben: Originaltext + mit privaten Schlüssel verschlüsselten Text übertragen Verfahren der asymmetrischen Verschlüsselung ● – – Empfänger symmetrischer 80 Bit Schlüssel entspricht 1024 Bit asymmetrischem Schlüsselpaar symmetrisch: 128 Bit ≙ asymmetrisch 3000 Bit ● WS 05/06 3.4.1 Digitale Unterschrift, grundlegende Idee entscheidend abhängig von der Rechnertechnologie, da der private Schlüssel grundsätzlich aus dem öffentlichen Schlüssel berechenbar ist, allerdings nur mit hohem Berechnungsaufwand ● 3.4 Verschlüsselung / Unterschriften WS 05/06 große Datenmengen sind zu übertragen (2 x Nachricht) großer Berechnungsaufwand Lösung: Hash-Funktion (berechnet aus einem Text beliebiger Länge: Ausgabe mit fester Länge, geringfügige Änderungen am Ausgangstext verändern Ergebnis völlig, z.B. MD5 [RFC1321]: Message digest (engl. Nachrichten Zusammenfassung) Version 5, 128 Bit Länge (Autor: Rivest), SHA1 [RFC3174]: US Secure Hash Algorithm 1, 160 Bit Länge) CSA 145 Quelle der Bilder NAI: http://www.rzbd.haw-hamburg.de/ftp/files/kryptografie.pdfCSA 146 3.5 Verschlüsselung / Zertifikate 3.5.1 Grundlegende Idee – – 3.5 Verschlüsselung / Zertifikate WS 05/06 Problem: Angriffe durch gezielte Verfälschung eines öffentlichen Schlüssels (Man in the middle attack) 3.5.2 Zertifikate als Beispiel: X.509 – ITU-T X.509 Zertifikate (internationaler Standard) Lösung: Zertifikate / unterschriebene Schlüssel zur Prüfung der ● Authentizität eines öffentlichen Schlüssels ● – – ● – – ● X.509-Zertifikate Unterschriebene öffentliche Schlüssel (PGP, Fa. NAI) Web of Trust (=“Netz des Vertrauens“) ● ● Inhalt: – – öffentlicher Schlüssel Zertifikatsdaten zur Identität des Benutzers eine oder mehrere digitale Unterschriften einer vertrauenswürdigen Einrichtung ● ● Liste von vertrauenswürdigen Einrichtungen + deren öffentliche Schlüssel Certificate Server (Schlüssel/ Zertifikatserver) IE: Extras -> ● Abrufen von Schlüsseln / Zertifikaten Internetoptionen... <Inhalte> ● Bereitstellen von Schlüsseln/Zertifikaten >Zertifikate ...<CSA 147 3.5 Verschlüsselung / Zertifikate ● ● ... weitere Zertifiaktstypen z.B. PGP – Weitere Möglichkeit zur Prüfung der Gültigkeit: Fingerabdruck (=Hash des Zertifikates) 3.5 Verschlüsselung / Zertifikate – müssen bei einer entsprechende Stelle beantragt werden ein Name eine digitale Unterschrift – ● CSA 148 WS 05/06 3.5.3 Public Key Infrastructure (PKI) Eigenschaften der X.509 Zertifikate ● ● Gültigkeitsdauer (Anfangs- und Ablaufdatum) Eindeutiger Name des Zertifikatausstellers Digitale Unterschrift des Ausstellers Kennung für das Unterschriftsverfahren (Algorithmus = Berechnungsmethode) WS 05/06 3.5.2 Zertifikate als Beispiel: X.509 (Fortsetzung) – X.509 Versionsnummer öffentlicher Schlüssel des Zertifikatsinhabers Seriennummer des Zertifikats Eindeutige Kennung des Zertifikatsinhabers CN=Bob Allen, OU=Total Network Security Division, O=Network Associates C=US CN: Common Name (bekannter Name), OU: Organization Unit (Firmenabteilung), O: Organization (Firma) , C: Country (Land) zur Automatisierung des Ablaufes benötigt man: – WS 05/06 Def. PKI: Darunter versteht man alle Einrichtungen, Werkzeuge und Verfahren, die erforderlich sind, um Verschlüsselung in einem konkreten Anwendungsfall fachgerecht einzusetzen. ● ● ● MD5 Fingerprint=22:55:A4:CF:F3:3D:5E:73:74:E1:5F:73:B3:5A:9F:8B Ein solcher Fingerabdruck kann beispielsweise auf einer Visitenkarte stehen, die persönlich (oder per Post) einem Kommunikationspartner übergeben wird. Zertifizierungsinstanz (entspricht Behörde, die Ausweise ausstellt) (Trustcenter) Zertifikat-Server Verwaltungsinformationen für Zertifikate – ● Zertifizierungskette / -pfad – CSA 149 Gültigkeit: Ausgestellt, zurückgenommen, Vertrauenseinstufung Auf oberster Ebene: Root Zertifikat CSA 150