Datenorganisation Februar bis Mai 2007 Dipl.-Oek. Patrick Bartels Institut für Wirtschaftsinformatik Universität Hannover Telefon: +49 (0) 511 762 - 4979 +49 (0) 170 342 84 95 Email: [email protected] Internet: www.iwi.uni-hannover.de Datenorganisation | Veranstaltung 6 4. Datenintegrität 2 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 Literatur Schwarze, J. Kemper, A. ; Eickler, A., S. 133-141 Schicker, E., S. 73-82, 212-220 Vossen, G., S. 147-152, 171-177 3 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4. Datenintegrität „Datenintegrität umfasst Widerspruchsfreiheit (Konsistenz) der Daten, die Sicherung der Daten gegen Verlust und Verfälschung sowie die Einhaltung von Datenschutzvorschriften.“ Quelle: Schwarze 4 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4. Datenintegrität Datenintegrität umfasst: Datensicherheit: Sicherung der Daten vor Zerstörung, Verfälschung und unberechtigtem Zugriff Datenschutz: Einhaltung rechtlicher Richtlinien, insbesondere Schutz personenbezogener Daten Datenkonsistenz: Sicherstellung der Widerspruchsfreiheit der Daten 5 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit 6 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit „Als Datensicherheit bezeichnet man den Schutz vor Zugriffen von unberechtigten Personen und den Schutz gegen zufälliges oder absichtliches Verändern oder Zerstören der Daten.“ Quelle: Schwarze 7 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit Schutz der Daten vor folgenden Gefahren: Zerstörung von Daten durch Feuer, Diebstahl, Festplattendefekt, ... Computerviren Datenmissbrauch, d. h. Verhinderung, dass ein unberechtigter Benutzer auf die Daten zugreift 8 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit Maßnahmen zum Schutz der Daten: Zugriffsschutz, z. B. Zugangskontrolle über Benutzername und Passwort Schutz vor Zerstörung (z. B. Brandschutz, USV, Virenscanner) Räumliche Zugangssperren Regelmäßige Datensicherungen (Backup, Recovery) 9 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit Sicherheitsprozess 10 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit Sicherheitskosten 11 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.1. Datensicherheit Sicherheitskosten 12 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.2. Datenschutz 13 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.2. Datenschutz „Datenschutz bezieht sich auf die rechtliche Seite des unbefugten Zugriffs und der unbefugten Weitergabe personenbezogener Daten.“ Geregelt im Bundesdatenschutzgesetz usw. Quelle: Schwarze 14 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.2. Datenschutz Maßnahmen zur Gewährleistung von Datenschutz: Zugriffsschutz (Benutzername und Passwort) Sichten, Zugriffsrechte auf Feldebene Verschlüsselung (Kryptographie) Schriftliche Einwilligung der Datenverarbeitung durch Kunden (Data Mining) 15 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3. Datenkonsistenz 16 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3. Datenkonsistenz Sicherstellung von Datenkonsistenz (Widerspruchsfreiheit) durch: Jede einzelne Anwendung (fehleranfällig!) DBMS (nur an einer Stelle) 17 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3. Datenkonsistenz Arten von Integritätsbedingungen: Statische Bedingungen: müssen von jedem Zustand einer Datenbank erfüllt werden Transitionale und dynamische Bedingungen: Zustandsübergänge, z. B. ledig → verheiratet → (geschieden oder verwitwet) 18 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3. Datenkonsistenz Statische Integritätsbedingungen: Auf Feldebene: z. B. Einschränkung des Wertebereichs (Ober-/Untergrenze), Eingabeformate, Festlegung bestimmter Werte, Not-Null Auf Datensatzebene: [RDAT]>=[LDAT] Auf Tabellenebene: z. B. Primärschlüssel Referentielle Bedingungen: Beziehungen 19 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Referentielle Integrität: Unter referentieller Integrität versteht man die Durchsetzung der definierten Beziehungen zwischen Relationen Jede Relation hat einen Primärschlüssel Die Verknüpfung von zwei Relationen geschieht durch Schlüsselvererbung: Der Primärschlüssel der einen Relation wird als Fremdschlüssel an die andere Relation vererbt 20 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität 1-Seite: Haupt- oder Mastertabelle n-Seite: Detailtabelle (enthält Primärschlüssel der Haupttabelle als Fremdschlüssel) Der Fremdschlüssel (n-Seite) kann nur gültige Werte des vererbenden Primärschlüssels (1-Seite) Beispiel: Kunde — Rechnung 21 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Jeder Fremdschlüsselwert in der Detailtabelle muss als Primärschlüsselwert in der Haupttabelle existieren Verweist ein Fremdschlüsselwert auf einen Primärschlüsselwert, kann der Primärschlüsselwert nicht geändert werden 22 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Änderung des Primärschlüssels: on update no action on update cascade (Aktualisierungsweitergabe) on update set null 23 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Löschen eines Datensatzes: on delete no action on delete cascade (Löschweitergabe) on delete set null 24 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Referentielle Integrität bei 1:n-Beziehungen: Aktualisierungsweitergabe: Eine Änderung des Primärschlüssels in der Haupttabelle führt zu einer Anpassung der Fremdschlüssel der zugehörigen Detaildatensätze (on update cascade) Löschweitergabe: Eine Löschung eines Datensatzes in der Haupttabelle führt zur Löschung aller zugehörigen Datensätze in der Detailtabelle (on delete cascade) 25 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.1. Referentielle Integrität Kaskadierendes Löschen : Mehrfaches „on delete cascade“ Vorsicht: eventuell werden Datensätze gelöscht, die gar nicht gelöscht werden sollten 26 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.2. Trigger Die Integritätsüberwachung kann transaktionsorientiert oder ereignisorientiert erfolgen. Transaktionsorientiert: Nach Durchführung einer Datenbankoperation wird überprüft, ob die Integrität verletzt wurde. Wenn ja, wird die Operation rückgängig gemacht. Ereignisorientiert: Bei Vorliegen eines Ereignisses wird eine Bedingung geprüft. Ist die Bedingung erfüllt, wird eine Aktion ausgeführt. 27 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.2. Trigger Ein Trigger (engl. „Auslöser“) stellt eine aktive Komponente eines DBMS dar, da ein Trigger eine Aktion eigenständig ausführen kann. 28 Ereignis: Datenbankoperation (Löschen, Einfügen, Ändern von Datensätzen) Bedingung (kann hohen Komplexitätsgrad aufweisen) Aktion (z. B. benutzerdefinierte Prozedur) 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.2. Trigger trigger on { INSERT | DELETE | UPDATE } if Bedingung then do Aktion trigger on { INSERT | DELETE | UPDATE } if not Bedingung then undo Aktion 29 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.2. Trigger Vereinfachtes Beispiel: create trigger auftrag_tr after update on auftrag insert into auftragshistorie(auftrnr, datum, zeit, user, summe) values(auftrag.auftrnr, date(), time(), user,auftrag.auftr_summe); 30 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 4.3.2. Trigger In Access: Ereignisorientierte Programmierung, z. B. beim Verlassen eines Formularfeldes wird eine Prozedur aufgerufen. Die Ausführung der Prozedur ist jedoch nicht abhängig von einer Bedingung. 31 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5. Datenmanipulation 32 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 Literatur Schwarze, J. Kemper, A. ; Eickler, A., S. 72-90, 205-207, 241-247 Schicker, E., S. 60-62, 82-87, 237-238 Vossen, G., S. 435-469, 499-508 33 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5. Datenmanipulation „Unter einer Datenmanipulation versteht man eine beliebige Operation auf einer Datenbank.“ Man unterscheidet drei Zugriffsarten: Abfrage: lesender Zugriff auf die Daten Mutation: Ändern, Löschen, Einfügen Transaktion: konsistenzerhaltende Operationen Quelle: Schwarze 34 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5. Datenmanipulation Abfragearten: Freie Abfrage, z. B. SQL oder QBE Strukturierte Abfrage: menügesteuert QBE: Query by Example: fensterorientierte, visuelle Abfragesprache, einfach zu erlernen, interaktiv 35 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung 36 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung „Eine Transaktion ist eine konsistenzerhaltende Operation auf einer Datenbank. Eine Operation besteht aus einer beliebigen Anzahl von Abfragen und Mutationen.“ „Konsistenz heißt die Freiheit von Widersprüchen innerhalb einer Datenbank.“ „Eine Transaktion muss .. immer entweder komplett oder gar nicht ausgeführt werden. Eine Transaktion ist demnach ein atomarer Zugriff!“ Quelle: Schicker 37 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Konten-Beispiel: Abbuchen von Betrag x von Konto 1 Zugang von Betrag x auf Konto 2 Erst nach Abschluss beider Buchungen ist die Datenbank wieder in einem konsistenten Zustand. 38 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Transaktionen sind wichtig für: das Recovery (Fehlerbehandlung) die Mehrbenutzersynchronisation (parallel ablaufende Transaktionen) 39 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Elemente einer Transaktion: begin of transaction (BOT) Befehle 1, 2, ..., n (Lesen, Schreiben) commit (Beendigung einer Transaktion) abort (Abbruch einer Transaktion, "rollback") 40 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Erfolgreiche Transaktion: BOT Befehl 1 Befehl 2 ... Befehl n commit 41 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Abbruch einer Transaktion: BOT Befehl 1 Befehl 2 ... Befehl n abort 42 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Fehler während einer Transaktion: BOT Befehl 1 Befehl 2 ... Befehl n Fehler (Stromausfall, Hard-/Software, Verletzung von Konsistenzbedingungen usw.) 43 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Eigenschaften von Transaktionen (ACID): Atomicity: Eine Transaktion stellt die kleinste, nicht weiter zerlegbare Einheit dar. Sie wird entweder vollständig abgearbeitet oder vollständig zurückgesetzt. Consistency: Eine Transaktion überführt den Datenbestand von einem konsistenten Zustand in einen (anderen) konsistenten Zustand. Isolation: Gleichzeitig ausgeführte Transaktionen dürfen sich nicht gegenseitig beeinflussen. Durability (Dauerhaftigkeit): Eine erfolgreich abgeschlossene Transaktion muss permanent (auch nach einem Fehler) in der Datenbank erhalten bleiben. 44 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Transaktionsverwaltung in SQL: Transaktionen werden implizit begonnen (kein BOT) Abschluss einer Transaktion mit commit work Abbruch einer Transaktion mit rollback work 45 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.1. Transaktionsverwaltung Transaktionsverwaltung in Access: Transaktionen werden explizit begonnen (mit begin transaction) Abschluss einer Transaktion mit commit [work | transaction] Abbruch einer Transaktion mit rollback [work | transaction] Können verschachtelt sein (5 Ebenen) 46 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2. Abfragesprachen 47 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2. Abfragesprachen Für die Abfrageformulierung in relationalen Datenbanken gibt es die folgenden zwei formalen Abfragesprachen: 1. Relationale Algebra (Relationenalgebra) 2. Relationenkalkül Sie bilden die theoretische Basis für SQL und QBE. 48 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Relationenalgebra: Es gibt acht Operatoren, mit denen die Zugriffe auf die Relationen einer Datenbank formuliert werden können. Ein Ausdruck der Relationenalgebra wird aus diesen Operatoren zusammengesetzt. 49 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Die acht Operatoren der Relationenalgebra: Selektion (R WHERE Bedingung) Projektion (R [Attributauswahl]) Vereinigung (R1 UNION R2) Mengendifferenz (R1 MINUS R2) Kartesisches Produkt (R1 TIMES R2) Verbindung/Join (R1 JOIN R2) Mengendurchschnitt (R1 INTERSECT R2) Division (R1 DIVIDE BY R2) 50 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Selektion (R WHERE Bedingung): Die neue Relation enthält alle Datensätze, die der Bedingung entsprechen. σF(R) SigmaFormel(Relation) Attribute, Konstanten =,<,>,≤,≥,≠,∧(und),∨(oder),¬(nicht) σOrt='Hannover'(Kunden) 51 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Projektion (R [Attributauswahl]): Die neue Relation enthält alle Datensätze, aber nur die angegebenen Attribute. ΠA(R) ΠAttributliste(Relation) ΠKDNr,NName,Ort(Kunden) 52 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Vereinigung (R1 UNION R2): Die neue Relation enthält alle Datensätze, die in mindestens einer der beiden Relationen enthalten ist. R1 ∪ R2 (müssen das gleiche Schema haben) ΠA(R1) ∪ ΠA(R2) ΠCDNr(CD) ∪ ΠVINr(Video) 53 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Mengendifferenz (R1 MINUS R2): Die neue Relation enthält diejenigen Datensätze, die in R1, aber nicht in R2 enthalten sind. R1 — R2 (gleiches Schema) ΠA(R1) — ΠA(R2) ΠCDNr(CD) — ΠCDNr(Leihe) 54 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Kartesisches Produkt (R1 TIMES R2): Die neue Relation enthält alle Kombinationen der in R1 und R2 enthaltenen Datensätze. R1 x R2 a b Kunde x Leihe Evtl. qualifizierte Attributnamen, z. B. Kunde.KDNr, Leihe.KDNr 55 19. März 2007 Dipl.-Ök. Patrick Bartels x y z a a a b b b x y z x y z Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Die ersten fünf Operatoren sind notwendig, die folgenden drei Operatoren lassen sich jedoch durch Kombination aus den ersten fünf Operatoren ausdrücken. 56 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Verbindung/Join (R1 JOIN R2): Die neue Relation enthält Kombinationen von Datensätzen der Relationen R1 und R2, die über ein gemeinsames Attribut verknüpft wurden. R1 R2 (natural Join) ΠA1,...,B,C1,...(σR1.B=R2.B(R1xR2)) Kunden Leihe x1 y1 x2 y2 x3 y2 y1 z1 y2 z2 y3 z1 x1 y1 z1 x2 y2 z2 x3 y2 z2 57 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Allgemeiner (innerer) Join: Beim allgemeinen Join (Theta-Join) handelt es sich um einen Join, bei dem die Verknüpfungsattribute nicht gleichbenannt sein müssen. R1 θ R2 σθ(R1 x R2) σR1.A=R2.B(R1 x R2) (Equi-Join) x1 y1 x2 y2 x3 y2 y1 z1 y2 z2 y3 z1 x1 y1 y1 z1 x2 y2 y2 z2 x3 y2 y2 z2 58 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Äußerer Join: Left outer join (alle Tupel der linken Relation bleiben erhalten: R1 R2 Right outer join (alle Tupel der rechten Relation bleiben erhalten: R1 R2 Full outer join (alle Tupel der linken und der rechten Relation bleiben erhalten: R1 R2 59 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Mengendurchschnitt (R1 INTERSECT R2): Die neue Relation enthält nur die Datensätze, die in beiden Relationen enthalten sind. R1 ∩ R2 = R1 — (R1 — R2) R1 und R2 müssen das gleiche Schema haben ΠA(R1) ∩ ΠA(R2) ΠCDNr(CD) ∩ ΠCDNr(Leihe) 60 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Division (R1 DIVIDE BY R2): R2 ist in R1 enthalten. Die neue Relation enthält die Attribute, die nicht in R2 enthalten sind, und die Datensätze aus R1, bei denen eine Übereinstimmung zu den Werten in R2 existiert. R1 : R2 Π(R1-R2)(R1) — Π(R1-R2)((Π(R1-R2)(R1) x R2) — R1) 61 19. März 2007 Dipl.-Ök. Patrick Bartels a a a b c x y z x y x y a Datenorganisation | Veranstaltung 6 5.2.1. Relationenalgebra Operatorbaum-Darstellung: Bei komplexen Anfragen ist die Darstellung über einen Operatorbaum übersichtlicher: ∏ CDNr, CDTitel, Interpret CD.CDNr=Leihe.CDNr σ CDNr=CD00000001 Leihe CD 62 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.2. Relationenkalkül Relationenkalkül: Der Relationenkalkül ist eher deklarativ, d. h. die gesuchten Datensätze werden beschrieben, ohne anzugeben, wie das Ergebnis bestimmt werden soll. Es gibt zwei Ausprägungen des Relationenkalküls: Der relationale Tupelkalkül Der relationale Domänenkalkül 63 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.2. Relationenkalkül Der relationale Tupelkalkül: {t | Bedingung} t heißt Tupelvariable {p | p ∈ CD ∧ p.Interpret='Joe Cocker'} Der Relationenkalkül lässt sich ohne Verluste in die Relationenalgebra umformen. Beide Anfragesprachen sind "relational vollständig". 64 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.3. Anfrageoptimierung Anfrageoptimierung: Das DBMS muss entscheiden, wie eine Anfrage optimal abgearbeitet wird, da es unter Umständen sehr viele Ausführungsmöglichkeiten gibt, die sich in ihrer Ausführungsdauer stark unterscheiden können. select ... from ... where Projektion(Selektion(Kreuzprodukt)) 65 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 5.2.3. Anfrageoptimierung Projektion(Selektion(Kreuzprodukt)) ∏ CDNr, CDTitel, Interpret σ CDNr='CD00000001' ∧ ∏ CDNr, CDTitel, Interpret σ CD.CDNr=Leihe.CDNr CD.CDNr=Leihe.CDNr x x σ CDNr='CD00000001' CD 66 19. März 2007 Leihe CD Dipl.-Ök. Patrick Bartels Leihe Datenorganisation | Veranstaltung 6 6. Recovery 67 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 Literatur Kemper, A. ; Eickler, A., S. 249-269 Schicker, E., S. 173-187 Vossen, G., S. 583-595 68 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6. Recovery Unter Recovery versteht man die Wiederherstellung einer Datenbank nach aufgetretenen Fehlern. Dabei muss die Konsistenz der Daten sichergestellt werden. Das Recovery hängt eng mit dem Begriff der Transaktionen zusammen. 69 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6. Recovery Fehlerarten: Hardwarefehler: Stromzufuhr, Hardwaredefekt durch Brand, Netzwerkausfall usw. Softwarefehler: Fehler im Anwendungsprogramm (z. B. Division durch 0), in der Datenübertragungssoftware usw. Benutzerfehler: Benutzer führt eine Transaktion nicht vollständig aus. 70 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6. Recovery Transaktion: Konsistenzerhaltender Datenbankzugriff Besteht meistens aus mehreren Einzelzugriffen Commit Work oder Rollback Work Alle Änderungen an den Daten werden in einer Logdatei protokolliert, damit ein Commit oder Rollback auch im Fehlerfall durchgeführt werden kann 71 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6. Recovery Maßnahmen des Recovery: Wöchentliche Komplettsicherung der Datenbank Tägliche Differenzsicherung (nur Änderungen werden gesichert) Führen einer Protokolldatei (Logdatei) 72 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.1. Logdatei 73 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.1. Logdatei Protokolldatei: alle Veränderungen an den Daten werden in der Datenbank und in der Logdatei gespeichert Auf einem nichtflüchtigen Speicher Auf einem anderen Medium (nicht die gleiche physische Festplatte) als die Datenbank 74 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.1. Logdatei Ablauf: Laden der Daten in den DB-Puffer Before Image: zu verändernde Daten werden in Logdatei gespeichert Ändern der Daten im Datenbankpuffer After Image: geänderte Daten werden in Logdatei gespeichert Wiederholung für jeden Einzelschritt einer Transaktion Commit (Transaktionsende in Logdatei speichern) oder Rollback (Rückgriff auf Before Image, Rücksetzen aller Änderungen) Asymmetrische Speicherung der geänderten Daten in die Datenbank 75 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.1. Logdatei Informationen in der Logdatei: Redo-Infos: wie können die Änderungen nachträglich vollzogen werden (After Image) Undo-Infos: wie können die Änderungen rückgängig gemacht werden (Before Image) Fortlaufende Nummer des Log-Eintrags Nummer der Transaktion Nummer der Datenbank-Seite Zeiger auf vorherigen Log-Eintrag der TA 76 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.1. Logdatei Umfang des Datentransfers in die Logdatei ist sehr gering Verzögertes Schreiben der Änderungen in Logdatei, kurz bevor die Änderungen in die Datenbank geschrieben werden (zum Transaktionsende), reicht aus (Logpuffer) In die Logdatei wird sequentiell geschrieben Normale Logdatei (auf Festplatte) und Logarchiv (auf Band) 77 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.2. Fehlerarten 78 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.2. Fehlerarten Lokaler Fehler (einzelne Transaktion, noch kein Commit) Ausfall des Arbeitsspeichers (des Datenbankpuffers!) Hardwareausfall (z. B. Defekt einer Festplatte) 79 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.2. Fehlerarten Lokaler Fehler (einzelne Transaktion): Lokales Undo: Alle Änderungen an den Daten, die von der aktiven Transaktion ausgelöst wurden, werden rückgängig gemacht Die Logdatei wird für die betroffene Transaktion von hinten nach vorne durchgearbeitet Relativ häufig Im Millisekundenbereich 80 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.2. Fehlerarten Ausfall des Arbeitsspeichers (DB-Puffers): Vor dem Ausfall gespeicherte Transaktionen (kein Handlungsbedarf) Globales Redo: nicht gespeicherte, aber abgeschlossene Transaktionen, müssen in die DB gespeichert werden (Winner) Globales Undo: gespeicherte, nicht abgeschlossene Transaktionen werden rückgängig gemacht (Looser) 81 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.2. Fehlerarten Hardwareausfall: Rücksicherung der Archivkopie der Datenbank Konsistenz herstellen über Log-Archiv (beinhaltet alle seit Anlegen der Archivkopie gespeicherten Änderungen, wird aufgrund seiner Größe meist auf Magnetband gespeichert) 82 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints 83 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints Checkpoints = Sicherungspunkte Markierung einer Position in der Logdatei, ab der die Wiederherstellung erfolgen soll Ältere Log-Einträge sind ohne Bedeutung 84 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints Transaktionskonsistente Checkpoints: Alle Transaktionen werden zu Ende geführt, keine neuen begonnen Es werden alle veränderten Datenbankseiten vom Datenbankpuffer in die Datenbank übertragen Es werden also nur abgeschlossene Transaktionen abgespeichert Beeinträchtigt stark den Datenbankablauf 85 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints Aktionskonsistente Checkpoints: Alle elementaren Änderungsoperationen werden zu Ende geführt, keine neuen begonnen Es werden alle veränderten Datenbankseiten vom Datenbankpuffer in die Datenbank übertragen Es werden auch nicht abgeschlossene Transaktionen abgespeichert Beeinträchtigt den DB-betrieb weniger 86 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints Checkpoints reduzieren den Aufwand eines Recovery (Redo ab Checkpoint) Zu häufige Checkpoints: häufiges Abspeichern in Datenbank erhöht den Datenverkehr Zu seltene Checkpoints: hohe Stoßbelastung während eines Checkpoints 87 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 6.3. Checkpoints Ausfall des Arbeitsspeichers (DB-Puffers): Aktualisierung der Datenbank ab dem letzten Checkpoint Vor dem Checkpoint abgeschlossene Transaktionen (sind in DB gespeichert) Nach dem Checkpoint abgeschlossene Transaktionen (evtl. Redo) Nach dem Checkpoint nicht abgeschlossene Transaktionen (Undo) 88 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency 89 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 Literatur Kemper, A. ; Eickler, A., S. 273-307 Schicker, E., S. 187-202 Vossen, G., S. 551-567 90 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Transaktionen laufen im sog. Mehrbenutzerbetrieb häufig gleichzeitig, d. h. parallel ab. Die Konsistenz der Datenbank darf dadurch nicht beeinträchtigt werden. Jede Transaktion muss vom DBMS so abgearbeitet werden, als wäre sie die einzige Transaktion im System. 91 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Probleme des konkurrierenden Zugriffs: Problem der verloren gegangenen Änderung (lost update) Abhängigkeit von nicht abgeschlossenen Transaktionen (dirty read) Problem der Inkonsistenz Phantomproblem 92 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Verlorengegangene Änderung: Zwei Transaktionen wollen die gleichen Daten lesen und ändern TA1 schreibt seine Änderungen in die DB TA2 überschreibt anschließend die Änderungen von TA1 TA1 TA2 select R ... select R update R ... update R 93 19. März 2007 Das Update von TA1 geht verloren ! Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Nicht abgeschlossene Transaktionen: 94 Transaktion 2 ändert Daten Transaktion 1 liest die geänderten Daten Transaktion 2 macht seine Änderungen rückgängig T1 hat also ungültige Daten gelesen 19. März 2007 TA1 TA2 ... update R select R ... ... Rollback Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Problem der Inkonsistenz: TA1 TA2 select Konto1 (500) select Konto2 (200) ... select Konto3 (800) update Konto3 (800-500=300) select Konto1 (500) update Konto1 (500+500=1.000) Commit Work select Konto3 (300) Summe=1.000 Commit Work Korrekte Summe wäre 1.500 gewesen! 95 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Phantomproblem: Die Select-Anweisung gibt innerhalb einer Transaktion zwei unterschiedliche Ergebnisse zurück TA1 TA2 select ... from R insert into R ... ... select ... from R 96 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Verfahren: Optimistische Strategie: Änderungen in der Datenbank dürfen vorgenommen werden. Vor einem Commit wird überprüft, ob es Konflikte mit anderen Transaktionen gibt. Wenn ja, wird ein Rollback durchgeführt und die Transaktion neu gestartet Pessimistische Strategie: Man geht von Konflikten aus und lässt ein gemeinsames Ändern von Daten nicht zu 97 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7. Concurrency Pessimistische Verfahren: Sperrbasierte Synchronisation (mit Abstand wichtigstes Verfahren) Zeitstempelbasierte Synchronisation 98 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.1. Sperrmechanismen 99 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.1. Sperrmechanismen Eine Sperre ist anzufordern, bevor Daten gelesen oder geschrieben werden sollen — Vom DBMS automatisch — Vom DB-Programmierer vor jedem Zugriff Eine Sperre wird nach Transaktionsende automatisch freigegeben (beim Commit oder Rollback) 100 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.1. Sperrmechanismen Sperrmodi: Share-Lock, read lock, Lesesperre: für Lesezugriffe, kann von mehreren Transaktionen angefordert werden Exclusive-Lock, write lock, Schreibsperre: für Schreibzugriffe, kann nur von einer Transaktion angefordert werden Wird ein Exclusive-Lock angefordert, obwohl es bereits einen Share-Lock gibt, muss die Transaktion auf Freigabe warten 101 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.1. Sperrmechanismen Sperr-Granulate: Datenbank-Lock Tabellen-Lock Seiten-Lock Tupel-Lock Eintrags-Lock Multiple-granularity locking (MGL): flexible Auswahl der benötigten Sperrgranulate je Transaktion 102 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks 103 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Verlorengegangene Änderung: Anfordern Share-Lock Anfordern Exclusive-Lock Warten auf Freigabe des Share-Lock T A 1 T A 2 S -L o c k a n fo rd e rn s e le c t R ... S -L o c k a n fo rd e rn s e le c t R X -L o c k a n fo rd e rn w a rte n ... 104 19. März 2007 ... X -L o c k a n fo rd e rn w a rte n ... Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Nicht abgeschlossene Transaktionen: TA1 TA2 S -L o c k a n fo rd e rn w a rte n X -L o c k a n fo rd e r n u p d a te R ... ... R o llb a c k s e le c t R Serialisierung konkurrierender Zugriffe Transaktionen laufen nacheinander ab 105 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Problem der Inkonsistenz: Warten auf Freigabe der Sperren TA1 TA2 S-Lock zu Konto3 anfordern select Konto3 (800) S-Lock zu Kont1 anfordern select Konto1 (500) S-Lock zu Konto2 anfordern select Konto2 (200) S-Lock zu Konto3 anfordern warten 106 19. März 2007 X-Lock zu Konto3 anfordern update Konto3 (800-500=300) S-Lock zu Konto 1 anfordern select Konto1 (500) X-Lock zu Konto1 anfordern warten Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Deadlock: Ein Deadlock ist eine Verklemmung von Transaktionen. Zwei oder mehr Transaktionen warten auf die Freigabe von Sperren (Share- oder Exclusive-Locks) Es gibt verschiedene Strategien zur Deadlockvermeidung und Deadlockauflösung 107 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Deadlockerkennung durch Wartegraphen: TA1 wartet auf Freigabe einer Sperre, die von TA2 gehalten wird, TA2 wartet auf Freigabe einer Sperre, die von TA3 gehalten wird, TA3 wartet auf Freigabe einer Sperre, die von TA1 gehalten wird Es ist ein Zyklus entstanden: Deadlock TA1 TA3 108 19. März 2007 TA2 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 7.2. Deadlocks Deadlockauflösung: Bei Vorliegen eines Deadlocks muss eine der betroffenen Transaktionen abgebrochen werden Alle von dieser Transaktion gehaltenen Sperren werden damit freigegeben Die abgebrochene Transaktion muss von neuem gestartet werden 109 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8. Moderne Datenbankarchitekturen 110 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 Literatur Schwarze, J. Kemper, A. ; Eickler, A., S. 403-438 Schicker, E., S. 185-187, 268-278 Vossen, G., S. 39-62, 177-179 111 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken 112 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken "Beim Client-Server-Konzept einer Datenbank geht es ... um die Verteilung von Prozessen, d. h. von Aufgaben innerhalb der Datenverwaltung, auf mehrere vernetzte Rechner.„ Quelle: Schwarze 113 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken Grundprinzip einer Client-Server-Interaktion: Client-Prozess: sendet eine Anfrage Server-Prozess: antwortet auf die Anfrage Ein Computer kann sowohl die Rolle eines Clients als auch die eines Servers einnehmen (bei unterschiedlichen Prozessen) Client Anfrage Antwort Quelle: Schwarze 114 19. März 2007 Dipl.-Ök. Patrick Bartels Server Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken Aufteilung der Datenbankaufgaben 115 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken Mögliche Vorteile: Verteilung der Last auf verschiedene Computer (Entlastung des Servers) Verbesserung des Antwortzeitverhaltens Datenbankbasierter Anwendungen Bessere Skalierbarkeit der Hardware Mögliche Nachteile: Koordinationsaufwand Bei Anfrageverarbeitung durch Client: Es müssen zunächst alle betroffenen Tabellen über das Netzwerk auf den Client übertragen werden (hohe Netzbelastung) 116 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.1. Client-Server-Datenbanken Konkrete Architekturen: Client enthält API (z. B. ODBC-Treiber) Client enthält API und Teile der Abfrageverwaltung Client enthält API und die gesamte Abfrageverwaltung usw. Konkrete Verteilung der Aufgaben auf zwei oder mehr Computer! 117 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken 118 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Werden die logisch zusammengehörenden Daten einer Datenbank auf miteinander vernetzten Computern (Knoten, Sites) an unterschiedlichen Orten gespeichert, handelt es sich um eine verteilte Datenbank. Die zugehörigen Datenbankmanagementsysteme bezeichnet man als verteilte Datenbankmanagementsysteme (VDBMS). 119 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Strategien der Datenverteilung: Replikation: Daten werden in mind. zwei Knoten redundant gespeichert Horizontale Partitionierung: Daten werden satzweise auf Knoten verteilt Vertikale Partitionierung: Daten werden attributweise auf Knoten verteilt Kombinationen der drei Strategien 120 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Aufgabe des VDBMS: Koordination des Zugriffs zu den verteilt gespeicherten Daten Globale Anfrageoptimierung Globales Recovery Globales Concurrency Globales Sicherheitsmanagement 121 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Grundprinzip eines VDBMS: Die verteilte Datenbank soll sich für den Anwender und Programmierer so verhalten, als ob sie physisch an einem Ort (nichtverteilt) abgespeichert ist (Fragmentierungstransparenz). 122 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Anforderungen an ein VDBMS: Transparenz der Speicherstelle Replikationstransparenz Fehlertransparenz Transparenz des gleichzeitigen Zugriffs Anfrageoptimierung (Date stellt insgesamt 12 Forderungen auf) 123 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Anforderungen an ein VDBMS: Transparenz der Speicherstelle: dem Anwender bzw. Programmierer soll die physische Speicherstruktur verborgen bleiben Replikationstransparenz: Daten werden behandelt, als ob sie in einem einzigen Knoten gespeichert wären Fehlertransparenz: globales Recovery Transparenz des gleichzeitigen Zugriffs: globales Concurrency Anfrageoptimierung: sehr komplexe Aufgabe! Auf welchem Computer soll welche Verarbeitung stattfinden (Umfang der Netzbelastung, Reihenfolge der relationalen Operatoren wie Selektion, Join,...) 124 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Repository eines VDBMS: Enthält Schemainformationen für alle beteiligten Datenbanken Ergibt die logische Struktur der Gesamtdatenbank 125 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Vorteile: Verbesserung der Antwortzeiten und höhere Integrität der Daten (Speicherung und Administration der Daten am Ort der Entstehung bzw. des Bedarfs) Ausfallsicherheit: höhere Zuverlässigkeit des Gesamtsystems Höhere Skalierbarkeit des Gesamtsystems Höhere Effizienz (paralleles Arbeiten) Senkung der Kommunikationskosten 126 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Nachteile: Ein VDBMS ist sehr komplex Hoher Aufwand für die Koordination (Recovery, Concurrency usw.) Belastung des Netzwerks Niedrige Übertragungsgeschwindigkeit des Netzwerks Bestimmung einer optimalen Verteilungsstrategie schwierig Anfrageoptimierung schwierig 127 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Beispiel Recovery: Datenbankübergreifende Transaktionen Die globale Transaktion darf erst dann abgeschlossen sein, wenn alle lokalen Einzeloperationen der Transaktion beendet sind Zwei-Phasen-Commit 128 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Zwei-Phasen-Commit: 1. 2. 3. 4. 129 Lokales Abarbeiten einer Transaktion Melden des Transaktionsendes (Ende Phase 1) Globales Transaktionsende Endgültiges lokales Transaktionsende (Ende Phase 2) 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken 1. Lokales Abarbeiten einer Transaktion: Die Einzelschritte der Transaktion werden lokal abgearbeitet und in der lokalen Logdatei protokolliert Es erfolgt ein lokales Commit Work 130 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken 2. Melden des lokalen Transaktionsendes: Nach erfolgreich durchgeführter Transaktion, wird eine Meldung an den Koordinator (i. d. R. einer der beteiligten Knoten) gesendet Ist die lokale Transaktion missglückt, erfolgt eine entsprechende Fehlermeldung 131 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken 3. Globales Transaktionsende: Der Koordinator sammelt alle Meldungen der Knoten (lokale Transaktionen) Sind alle Meldungen positiv, wird ein globales Commit Work protokolliert Ist auch nur eine Rückmeldung negativ, so ist ein globales Rollback die Folge 132 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken 4. Endgültiges lokales Transaktionsende: Der Koordinator teilt den Knoten das Ergebnis der globalen Transaktion mit Die Knoten übernehmen das globale Ergebnis: endgültiges Commit oder Rollback Die globale Transaktion ist abgeschlossen 133 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.2. Verteilte Datenbanken Probleme des Zwei-Phasen-Commit: Extrem zeitintensiv (Antwortzeiten können sich erheblich verschlechtern) Es ist ein Koordinator notwendig (widerspricht einer der Forderungen an verteilte Datenbanken) Dauert eine lokale Transaktion zu lange, wird sie als gescheitert angenommen (Zeitüberschreitung) 134 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.3. Aktive Datenbanken 135 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.3. Aktive Datenbanken Klassische Datenbank: Das DBMS hat die Aufgabe, Daten bereitzustellen, es wartet also passiv auf Anfragen Anwendungsprogramme greifen auf die Daten zu, sie führen also aktiv Operationen auf der Datenbank aus 136 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.3. Aktive Datenbanken Trigger: ECA-Prinzip: Event-Condition-Action Ein Ereignis löst die Überprüfung einer Bedingung aus; ist die Bedingung erfüllt, wird eine bestimmte Aktion ausgelöst (z. B. Rollback oder Starten eines kleinen Programms) 137 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.3. Aktive Datenbanken Problem: Die Überprüfung der Bedingung nach Eintritt eines Ereignisses ist für manche Anwendungen zu langsam Beispiele: Datenbank zur Überwachung von Kernkraftanlagen, Aktienhandel (Kauf/Verkauf bei Überschreiten eines bestimmten Schwellenwertes) Lösung: Permanente Überwachung der Ereignisse und Bedingungen 138 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.3. Aktive Datenbanken Aktive Datenbank: Verallgemeinerung des Konzepts der Trigger Beliebige Ereignisse (nicht nur Updates) Tritt das Ereignis ein, ist dem DBMS meist bereits bekannt, ob die Bedingung erfüllt ist Reaktion bereits innerhalb einer Transaktion möglich (Immediate Firing) 139 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken 140 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken Ausgangslage: Vielzahl bereichsbezogener (unterschiedlicher) Datenbanken Bestimmte Datenobjekte existieren in verschiedenen (logischen) Datenbanken (z. B. Adressdaten) Den Datenbanken liegen häufig verschiedene Datenmodelle zugrunde (z. B. hierarchische, relationale, multidimensionale Datenmodelle) 141 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken Konzept der Föderierten Datenbanken: Erweiterung der Drei-Ebenen-Architektur um eine weitere Schicht (sog. Föderierungsschicht), die die Integration der verschiedenen DBMS ermöglicht Föderieren: sich verbünden Vier-Ebenen-Architektur Die beteiligten DBMS behalten ihre Selbständigkeit 142 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken Konzept der Föderierten Datenbanken: Ein Benutzer kann (ähnlich wie in VDBMS) auf alle Datenbanken zugreifen oder bekommt zumindest einen Überblick über die im Unternehmen verfügbaren Daten Realisierung z. B. über geeignete Middleware Eine aktive Komponente übernimmt die Aktualisierung von Daten (z. B. Änderung von Kundenstammdaten in einer Datenbank, entsprechende Aktualisierung der Daten auch in den anderen Datenbanken, in denen sie gespeichert sind) Dabei sind z. B. Schemaanpassungen notwendig 143 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken Aufbau der Föderierter Datenbanken: 144 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.4. Föderierte Datenbanken Aufbau der Föderierter Datenbanken: 145 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Operative Systeme arbeiten mit zweckmäßig auf die Erfüllung konkreter Aufgabenstellungen ausgerichteten Daten. Diese sind weitestgehend durch die Unternehmensmodellierung erfasst und werden durch System-Kataloge erfasst (Data Dictionary). - Operative Systeme sind i. d. R. nicht zur Informationsbeschaffung geeignet, da wünschenswerte Informationen erst durch Verbindung vieler Einzeldaten entstehen. Zudem liegen Insellösungen in den Anwendungen vor. - Lösung durch Kombination der Vor- und Nachteile: Data-Warehouse. 146 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse Eigenschaft 147 Transaktionssysteme Analysesysteme Anzahl gleichzeitiger Benutzer bis zu mehreren Tausend zweistelliger Bereich Antwortzeiten Millisekunden Sekunden bis Minuten Zugriffsfrequenz hoch niedrig bis mittel Datenvolumen pro Zugriff niedrig hoch Änderungen des Datenbestandes laufend durch definierte Updates Aktualität der Daten hoch durch Updateintervall bestimmt Datenstrukturierung detailliert verdichtet Kritische Faktoren Performance, Antwortzeitverhalten, Ausfallssicherheit Datenbankgröße, strukturelle Änderungen, Datenqualität 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse Ziel: Effiziente Bereitstellung (aktueller) qualitativ hochwertiger Daten. Verbesserung von Informationen und Datenqualität Steigerung der Endbenutzerproduktivität (bspw. im Vertrieb) 148 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse 149 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse Ö Anforderungen Themenorientiert Integriert Daten werden in normierter Form angelegt. Zeitabbildend Daten können über die verschiedensten Zeitpunkte abgerufen werden. Bspw. kann heute (2.12.2003) der Zustand der Daten am 13.7.1999 abgerufen werden. Archivfunktion Daten werden über einen längeren Zeitraum gespeichert (5-10 Jahre). 150 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Datenarten Detaillierte Daten (Aus dem operativen System mit Time Stamp (Zeitstempel) übernommen) Aggregierte Daten, die direkt aus dem operativen System abgeleitet werden. Externe Daten Historische Daten aus zurückliegenden Zeiträumen Operative Daten (per Definition nicht enthalten, aber es macht bei einigen Daten keinen Sinn, diese mir einem Time Stamp zu übernehmen Æ Kundenstammdaten bspw.) 151 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Datenarten Beispiel für interne Daten: — Kundenstammdaten — Materialflussdaten — Transaktionsdaten Beispiel für externe Daten: — Konkurrenzdaten (Produkte, Service, Preise) — Wirtschaftsdaten (Bspw. Devisenkurse) — Industriedaten (Handelsinformationen) — Kreditdaten (aktuelle Zinssätze) — Warendaten (Rohstoffpreise) — Meteorologische Daten (Wetterbedingungen wie Temperaturen oder Winde) 152 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Data Warehouse Ansätze virtuelles DW zentrales DW Data Mart 153 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Data Warehouse Ansätze virtuelles DW — Keine eigene redundante Datenhaltung — Direkter Zugriff auf operativen Datenbestand — Middleware muss alle Meta-Daten kennen — Vorteile: • Schnelle Realisierbarkeit. • Aktualität. — Nachteile: • • • • • • • • 154 Schlechte Performance. Keine Optimierung der Abfragen möglich. Beeinflussen des operativen Betriebs. Hohe Komplexität der Metadaten. Weiterentwicklung schwierig. Keine Zwischenspeicherung der aggregierten Daten möglich. Keine Aufzeichnung der historischen Daten möglich. externe Daten sind schwer zugänglich!. 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Data Warehouse Ansätze virtuelles DW zentrales DW — redundante Datenbasis (vom operativen System entkoppelt) — zentrales Data Warehouse Management System — Data Warehouse heute in der Regel Zwischenschicht zwischen operativen Datenbanken und Endbenutzer. 155 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Data Warehouse Ansätze virtuelles DW zentrales DW — Vorteile: • • • • • Performance-Gewinn einheitliche Meta-Daten einheitliches Sichtenmanagement Aufzeichnung historischer und aggregierter Daten Integration externer Daten — Nachteil: • aufwendige Einführung (Kosten) • Probleme der Konsolidierung der Daten 156 19. März 2007 Dipl.-Ök. Patrick Bartels Datenorganisation | Veranstaltung 6 8.5. Data Warehouse - Data Warehouse Ansätze virtuelles DW zentrales DW Data Mart — Sind eine Art „Mini-Data Warehouse“ 157 19. März 2007 Dipl.-Ök. Patrick Bartels