Modul 9: Verteilte Datenbanken Flashcards
Verteilte Datenbanken
Zunehmende weltweite Vernetzung
• Moderne Kommunikationsnetze erlauben eine verstärkte geographische
Verteilung von Verwaltungen und Firmen
• Dadurch haben verteilte Datenbanken-Anwendungen drastisch an
Bedeutung gewonnen
• Verteilte Datenbank-Verwaltungssyteme (VDBMS) übernehmen die
Kontrolle der verteilten Datenbanken
Begriffe:
Was ist eine verteilte Datenbank?
Was ist ein verteiltes Datenbank Managementsystem?
Verbund mehrerer logisch miteinander zusammenhängender Datenbanken,
die jeweils auf verschiedenen Knoten eines Rechnernetzes liegen
Software System zur Verwaltung einer verteilten Datenbank, wobei dem
Benutzer die Verteilung der Daten (weitgehend) verborgen bleibt
Verteilte Datenbanken anhand eines Beispiels
Beispiel:
• Geographisch verteilte Organisationsform: Bank mit ihren Filialen
• Die einzelnen Filialen sollten autonom die Daten ihrer lokalen Kunden
bearbeiten können
• Gleichfalls sollten auch andere Filialen und die Zentrale Zugriff auf diese
Informationen haben
• Lokale Stationen („Sites“) sind über ein Kommunikationsnetz miteinander
verbunden
Terminologie und Abgrenzung
Über welche Kommunikationsmedien findet die Kommunikation statt?
Wie nimmt die Datenbankanwendung das Kommunikationsnetz wahr?
• Kommunikationsmedium: können unterschiedlichste Verbindungen sein:
o LAN (Local Area Network)
o WAN (Wide Area Network)
o Telefonverbindungen wie z.B. ISDN oder einfache Modemverbindungen
• Heute: Annahme, dass das Kommunikationsnetz für die
Datenbankanwendung transparent ist:
o Jede Station kann mit jeder anderen Station kommunizieren
Schematisches Darstellung eines verteilten Datenbanksystems
Darstellung VDBMS -> VDBMS bestehend aus Stationen, welche jeweils über eine eigene Datenbasis vefügen und über ein Kommunikationsnetz miteinander verbunden sind.
Schematisches Darstellung eines “degenerierten“ VDBMS nach sogeannter Client-Server Architektur
Darstellung degeneriertes VDBMS Clienten sind über ein Kommunikationsnetz mit einem Server verbunden, der eine Datenbasis besitzt. Client greifen somit über ein Kommunikationsnetz und einen Server auf angeforderte Daten zu.
Eigenschaften von Datenbanken nach dem Client-Server Konzept
Client-Server-Architektur:
• Nur der Server speichert Daten ab
• Klienten schicken Anforderungen an den Server
• bearbeiten die vom Server übermittelten Daten lokal
• und schicken sie dann gegebenenfalls wieder zurück zum Server
• Die Klienten können also Datenverarbeitungsoperationen nur im
Zusammenspiel mit den zentralen Servern durchführen
Entwurf verteilter Datenbanken
Aufbau und Schritte des Entwurfs
• Aufbau eines verteilten Datenbanksystems: • Neu beim VDBMS-Entwurf: o Fragmentierungsschema o Zuordnungsschema (oder Allokationsschema)
Schritte des Entwurfs: Schritt 1:globales Schema Schritt 2: Fragmentierungsschema Schritt 3: Zuordnungsschema Schritt 4: lokales Schema Schritt 5:lokales DBMS Schritt 6: lokale DB
Entwurf verteilter Datenbank
Allokation von Fragmenten
• Sollte auf der Grundlage der zu erwartenden Anwendungen vorgenommen
werden
• Entwurfskonflikte, wenn ein Fragment auf 2 Stationen häufig benötigt wird
• Bei der Redundanzfreien Allokation muss eine Station bevorzugt werden
und damit die andere benachteiligt
• Kostenmodelle um eine global optimierte Allokation zu bestimmen:
o in Praxis ist aber global optimale Zuordnung nicht realistisch
o Eher eine einigermaßen „gute“ Zuordnung
Horizontale und vertikale Fragementierung: Korrektheits-Anforderungen an eine Fragmentierung
• Drei grundlegende Korrektheits-Anforderungen an eine Fragmentierung:
o Rekonstruierbarkeit:
• Die fragmentierte Relation lässt sich aus den Fragmenten wiederherstellen
o Vollständigkeit:
• Jedes Datum ist einem Fragment zugeordnet
o Disjunktheit:
• Die Fragmente überlappen sich nicht, d.h. ein Datum ist nicht mehreren Fragmenten zugeordnet
Join-Auswertung in VDBMS:
Join-Auswertung mit Filter
• Join-Auswertung ohne Filter:
o Unter Umständen müssen sehr große Datenmengen transferiert werden
o Obwohl möglicherweise der Join wegen eines sehr selektiven Prädikats nur ein kleines Ergebnis liefert
• Join-Auswertung mit Filter:
o Join-Auswertung mit Semijoin-Filterung
o Join-Auswertung mit Bitmap-Filterung
Transaktionskontrolle in VDBMS
Transaktionen können sich über mehrere Rechnerknoten erstrecken
Beispiel: Transaktion von einem Konto A von Standort A zu Konto B von Standort B.
• Redo:
o Station läuft wieder an nach einem Fehler:
o Alle Änderungen einmal abgeschlossener Transaktionen auf den Daten dieser Station müssen wiederhergestellt
werden
• Undo:
o Änderungen noch nicht abgeschlossener Transaktionen müssen rückgängig gemacht werden
• Redo/Undo-Behandlung nicht grundlegend anders als im zentralisierten Fall
Ausnahme:
nach einem Abbruch einer globalen Transaktion muss die Undo Behandlung auf allen lokalen Stationen, auf denen Teile dieser Transaktion ausgeführt wurden initiiert werden:
Mehrbenutzersynchronisation in
VDBMS
• Erweiterung des Synchronisationsverfahrens im zentralisierten
Fall
• Zwei-Phasen-Sperrprotokoll:
o am häufigsten eingesetzte Synchronisationsverfahren
o Sowohl in zentralisierten als auch in verteilten Datenbanksystemen
Arbeiten mit verteilten DBMS
Welche Herausforderungen gibt es beim Arbeiten mit verteilten Datenbanken?
• Es gibt standardisierte APIs (ODBC, JDBC) mit der Fähigkeit mit vielen
unterschiedlichen DBMS zu arbeiten
• Hauptproblem ist dass Unternehmensprozesse oft über mehrere IT Systeme /
Datenbanken hinweg gehen
• Änderungen an Datenmodellen in einzelnen Systemen erzeugen hohen
Anpassungsaufwand, da Programme, die über APIs zugreifen jeweils
angepasst werden müssen
• Master Data Management ist DIE Herausforderung für grosse Unternehmen
• Lösung sind ETL Systeme (INFORMATICA, DELL BOOMI, …)
ETL = Extract – Transform – Load
Für was stehen die Begriffe Extract, Transform und Load im Akronym ETL?
Extract • Extraktion eines Ausschnitts der Daten aus dem Quellsystem • Schema Transformation • Extraktion periodisch / ereignisgesteuert / anfragegesteuert Transform • Syntaktische Transformation (Datentypen, Syntax,…) • Semantische Transformation o Eliminierung von Duplikaten o Anpassung von Datenwerten o Umrechnung Masseinheiten o Aggregation o Anreicherung der Daten Load • Übertragung der Daten ins Zielsystem