Besonderheiten verteilter Datenbanksysteme - Userpage
Besonderheiten verteilter Datenbanksysteme - Userpage
Besonderheiten verteilter Datenbanksysteme - Userpage
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Verteilte Datenbank- und<br />
Informationssysteme<br />
Vorlesung im Sommersemester 2009<br />
(Abschnitt <strong>Besonderheiten</strong> <strong>verteilter</strong> <strong>Datenbanksysteme</strong>)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 1
Übersicht und Einführung<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 2
Verteilte Verarbeitung I<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 3
Verteilte Verarbeitung II<br />
• Applikation bzw. Nutzer koordiniert den Verbindungsaufbau<br />
zur DB<br />
• Die Standorte der Datenbank-Server im Netz müssen<br />
bekannt sein<br />
• Zwischen den DB bestehen keine von der Anwendung<br />
unabhängige Beziehungen<br />
• Es können keine DB-übergreifenden SQL-Anweisungen<br />
ausgeführt werden<br />
• Eine DB-übergreifende Transaktionssicherung wird<br />
durch das DBMS nicht gewährleistet<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 4
Grundprinzip verteilte Datenbank<br />
Grundprinzip <strong>verteilter</strong> Datenbanken ist die<br />
Verteilungstransparenz. Ein verteiltes DBS<br />
muss sich dem Anwender gegenüber<br />
genauso verhalten wie ein nicht verteiltes.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 5
Definition verteilte Datenbank<br />
Eine verteilte Datenbank ist ein logisch zusammengehörender<br />
Datenbestand – beschrieben in einem<br />
globalen Schema -, der physisch auf mehreren Knoten<br />
(Rechner) verteilt ist und mit einem verteilten<br />
Datenbankmanagementsystem (kurz VDBMS) oder<br />
auch distributed DBMS (kurz DDBMS) verwaltet wird.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 6
Grobstruktur eines VDBMS<br />
Rechnerknoten<br />
B<br />
Rechnerknoten<br />
A<br />
Nur eine Sicht<br />
auf die Daten<br />
Internet, Intranet,<br />
Extranet<br />
Rechnerknoten<br />
E<br />
Rechnerknoten<br />
C<br />
Rechnerknoten<br />
D<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 7
Verteilte Datenbank<br />
Ausgangspunkt: relationales Modell<br />
• Spezifikation der Datenobjekte des Bezugsbereichs im<br />
Rahmen eines relationalen Modells<br />
• Das DBMS bietet die Möglichkeit mehrere räumlich im<br />
Netz verteilte DB zu einer Sicht zusammenzufassen<br />
Vorteile/Ziele<br />
• Nutzer/Anwendung muss nichts von der Verteilung der<br />
DB im Netz wissen (Ortstransparenz)<br />
• Möglichkeit der Ausführung DB-übergreifender SQL-<br />
Abfragen und Transaktionen<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 8
Anforderungen an<br />
verteilte Datenbanken<br />
Brainstoming<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 9
Zwölf Regeln für verteilte DBS I<br />
• Lokale Autonomie<br />
- Jeder Rechner sollte maximale Kontrolle über eigene Daten<br />
haben<br />
- Zugriff auf diese Daten sollte nicht von anderen Rechnern<br />
abhängen<br />
• Keine Abhängigkeit von zentralen Systemfunktionen<br />
- DB-Verarbeitung sollte nicht von zentralen Systemfunktionen<br />
abhängen<br />
- Gefahr potentieller Leistungsengpässe durch zentrale<br />
Systemkomponenten<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 10
Zwölf Regeln für verteilte DBS II<br />
• Hohe Verfügbarkeit<br />
- Unanfälligkeit gegen ggf. auftretende Fehler wie z.B. dem<br />
Ausfall eines Rechnerknotens<br />
- Möglichkeiten einer Konfigurationsänderung während des<br />
laufenden Betriebs (z.B. neue SW oder HW)<br />
• Ortstransparenz<br />
- Verbergen der physischen Lokation von Datenbankobjekten<br />
gegenüber dem Benutzer<br />
- Der Datenzugriff auf entfernte Daten sollte in gleicher Weise<br />
erfolgen, wie der auf lokale Objekte<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 11
Zwölf Regeln für verteilte DBS III<br />
• Fragmentierungstransparenz<br />
- Eine Relation der DB sollte verteilt an mehreren Knoten<br />
gespeichert werden können<br />
- Die zugrunde liegende Zerlegung der Relation sollte für den<br />
Datenbankbenutzer transparent sein<br />
• Replikationstransparenz<br />
- Die replizierte Speicherung von Teilen der Datenbank sollte für<br />
den Benutzer unsichtbar bleiben<br />
- Die Wartung der Redundanz obliegt ausschließlich der<br />
Datenbanksoftware<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 12
Zwölf Regeln für verteilte DBS IV<br />
• Verteilte Anfragebearbeitung<br />
- Innerhalb einer DB-Operation sollte auf Daten mehrerer Rechner<br />
zugegriffen werden können<br />
- Zur effizienten Bearbeitung von DB-Anfragen sind durch das<br />
VDBMS geeignete Techniken bereitzustellen (Query Optimizer)<br />
• Verteilte Transaktionsverarbeitung (TA-Transparenz)<br />
- ACID-Eigenschaften sind auch bei <strong>verteilter</strong> Bearbeitung<br />
einzuhalten<br />
- Bereitstellung entsprechender Recovery- und Synchronisationstechniken<br />
(verteiltes 2 Phasen Sperrprotokoll)<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 13
Zwölf Regeln für verteilte DBS V<br />
• Hardware-Unabhängigkeit<br />
- Die Datenbank-Verarbeitung sollte auf unterschiedlichen<br />
Hardwareplattformen möglich sein<br />
- Sämtliche Hardwareeigenschaften sollten gegenüber dem<br />
Datenbankbenutzer verborgen bleiben<br />
• Betriebssystemunabhängigkeit<br />
- Die Datenbankbenutzung sollte unabhängig von den<br />
eingesetzten Betriebssystemen sein<br />
- Verteilte Datenbankmanagementsysteme sollten<br />
unterschiedliche Betriebssystemplattformen unterstützen<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 14
Zwölf Regeln für verteilte DBS VI<br />
• Netzwerkunabhängigkeit<br />
- Verwendete Netzwerke und darauf aufsetzende<br />
Kommunikationsprotokolle sollten ohne Einfluss auf die<br />
Datenbankverarbeitung leiben.<br />
• Datenbanksystemunabhängigkeit<br />
- Es sollte möglich sein, unterschiedliche (Heterogene)<br />
<strong>Datenbanksysteme</strong> an den verschiedenen Rechnern<br />
einzusetzen, solange sie eine einheitliche Benutzerschnittstelle<br />
(z.B. gemeinsame SQL-Version) anbieten.<br />
Quelle: Date, C. J.: in Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 15
Transaktionstransparenz<br />
• Bei einer verteilten Transaktion wird auf Datenelemente<br />
unterschiedlicher DB, welche auf verschiedenen<br />
Rechnerknoten verteilt sind, zugegriffen.<br />
• ACID-Bedingungen sind im Rahmen eines VDBMS in<br />
gleicher Weise einzuhalten wie in einem zentralen DBMS<br />
• Der Entwickler einer Anwendung sollte eine verteilte TA<br />
in gleicher Weise nutzen wie eine lokale TA<br />
• Auch implizite TA (ausgelöst durch Trigger) sollten von<br />
der Transaktionstransparenz profitieren<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 16
Leistungstransparenz<br />
• Verteilung von Datenbankobjekten zwecks Erhöhung des<br />
Leistungs- und Ausfallverhaltens im Gesamtsystem<br />
- Verteilte Verarbeitung von Anfragen und Transaktionen soll trotz<br />
des Kommunikations-Overheads mit der gleichen Performance<br />
erfolgen wie ohne Verteilung<br />
- Im Falle replizierter Datenobjekte (kontrollierte Redundanz)<br />
sollten Leistungsengpässe eines Knoten durch Knoten mit<br />
weniger Last aufgefangen werden können. (Load-Balancing)<br />
- Bei paralleler Bearbeitung eingehender Anfragen wird eine<br />
Verbesserung der Bearbeitungszeiten angestrebt<br />
In Anlehnung an - Rahm, E.: Mehrrechner-<strong>Datenbanksysteme</strong>, Addison-Wesley, 1994<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 17
Architektur <strong>verteilter</strong><br />
Datenbanken<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 18
4-Ebenen Architektur für verteilte<br />
<strong>Datenbanksysteme</strong><br />
In Anlehnung an : Conrad, S.: Förderierte <strong>Datenbanksysteme</strong>, Springer-Verlag, 1997<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 19
Externes Schemata im VDBMS<br />
• Repräsentieren Sichten der Benutzer und Anwenderprogramme<br />
(vergleichbar zum zentralen Datenbanksystem)<br />
• Für Benutzer bzw. Benutzergruppen werden jeweils eigene externe<br />
Schemata angelegt<br />
• Das externe Schemata ist in Art und Funktion für verteilte und<br />
zentrale <strong>Datenbanksysteme</strong> nicht unterscheidbar<br />
• Für den Benutzer sollte es keinen Unterschied machen, ob er mit<br />
einer zentralen oder verteilten Datenbank arbeitet.<br />
• In der Praxis kann es ggf. dennoch zu kleinen Unterschieden<br />
kommen (insbesondere bei heterogenen DBMS)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 20
Globales konzeptionelles<br />
Schema im VDBMS<br />
• Beschreibung der durch das DBS zu verwaltenden Daten in ihrer<br />
Gesamtheit<br />
• Abstrakte Beschreibung ohne Berücksichtigung konkreter<br />
Implementierungsdetails<br />
• Ziel beim konzeptionellen Schema im VDBMS ist die Integration der<br />
verschiedenen externen Benutzersichten<br />
• Im verteilten <strong>Datenbanksysteme</strong>n ist das konzeptionelle Schema<br />
gleichzeitig die Zusammenfassung aller lokalen konzeptionellen<br />
Schemata (Vereinigung)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 21
Lokale konzeptionelle<br />
Schemata im VDBMS<br />
• Die lokalen konzeptionellen Schemata ergeben sich aus der Definition<br />
der Datenverteilung, die im globalen Verteilungsschema festgelegt<br />
sind. (Ausschnitt aus dem globalen konzeptionellen Schema)<br />
• Enthalten sind folgende Angaben:<br />
- Informationen zur auf dem Knoten hinterlegten Fragementen<br />
- Allokation und Replikation von Relationsfragmenten<br />
• Bei fehlender Replikation sind die lokalen konzeptionellen Schemata<br />
echte Teilmengen der globalen konzeptionellen Schemata.<br />
• Die ggf. notwendige Propagierung von Änderungen des lokalen<br />
konzeptionellen Schema ist abhängig von der gewählten<br />
Katalogarchitektur.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 22
Lokale interne Schemata<br />
im VDBMS<br />
• Hier gibt es keine Unterschiede zu den internen Schemata einer<br />
zentralen Datenbank.<br />
• Im Sinne der Knotenautonomie sind Zugriffspfade und<br />
Speicherstrukturen auf lokale Erfordernisse abzustimmen.<br />
• Das interne Schema ist abhängig vom verwendeten Basissystem<br />
und von der unterstützten Sprachschnittstelle.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 23
Katalogverwaltung bei<br />
verteilten Datenbanken<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 24
Katalogverwaltung I<br />
• Schemadaten zum Datenbank-Aufbau<br />
• Metadaten für<br />
- Zugriffsberechtigungen<br />
- Passwörter<br />
- Statistiken über:<br />
• Relationengrößen<br />
• Werteverteilungen<br />
• Zugriffshäufigkeiten<br />
• Übersetzung, Optimierung und Ausführung von DB-Anfragen<br />
• Unterscheidung zwischen lokalen und globalen Katalog<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 25
Katalogverwaltung II<br />
• Lokaler Katalog<br />
- Entspricht weitgehend dem Katalog eines zentralisierten DBS<br />
- Enthält das lokale konzeptuelle und das lokale interne Schema<br />
• Globaler Katalog<br />
- Enthält globales konzeptuelles- und das Verteilungsschema<br />
- Gewährleistet die Verteilungstransparenz<br />
- Systemweite Verwaltung von Benutzern und Zugriffsrechten<br />
- Unterstützt die verteilte Transaktionsverwaltung<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 26
Zentraler Katalog<br />
Katalogverwaltung III<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 27
Katalogverwaltung IV<br />
Zentralisierter Katalog<br />
• Alle globalen Katalogdaten zentral gespeichert<br />
• Vorteile<br />
- Relativ einfache Realisierung<br />
• Nachteile<br />
- Hoher Kommunikationsaufwand<br />
- Ggf. Leistungs- und Verfügbarkeitsengpass<br />
- Beeinträchtigung der Knotenautonomie<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 28
Replizierter Katalog<br />
Katalogverwaltung V<br />
Rechnerknoten<br />
B<br />
DB-Katalog<br />
Rechnerknoten<br />
A<br />
DB-Katalog<br />
Internet, Intranet,<br />
Extranet<br />
Rechnerknoten<br />
E<br />
DB-Katalog<br />
Rechnerknoten<br />
C<br />
Rechnerknoten<br />
D<br />
DB-Katalog<br />
DB-Katalog<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 29
Katalogverwaltung VI<br />
Replizierter Katalog<br />
• Jeder Knoten besitzt vollständig Kopie der Katalogdaten<br />
• Vorteile<br />
- Lesende Katalogzugriffe sind stets lokal<br />
- Keine Kommunikationsverzögerungen<br />
• Nachteile<br />
- Aufwändige Änderungsoperationen (insb. bei geografisch<br />
verteilten Systemen)<br />
- Datenschutzrechtlich bedenklich<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 30
Mehrfachkataloge<br />
Katalogverwaltung VII<br />
Cluster – Ort C<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 31
Katalogverwaltung VIII<br />
Mehrfachkataloge<br />
• Partitionieren der Rechner in mehrere Cluster<br />
• Je Cluster enthält ein Knoten den vollst. glob. Katalog<br />
• Vorteile<br />
- Kompromiss aus zentralis. und replizierten Katalog<br />
- Reduzierter Änderungsaufwand<br />
• Nachteile<br />
- Kommunikation bei jedem Zugriff auf globale Katalogdaten<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 32
Partitionierter Katalog<br />
Katalogverwaltung IX<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 33
Katalogverwaltung X<br />
Partitionierter Katalog<br />
• Globaler Katalog wird unter allen Rechnern partitioniert<br />
gespeichert<br />
• Globales konzeptuelles Schema ergibt sich als<br />
Vereinigung der lokalen konzeptuellen Schema<br />
• Vorteile<br />
- Hoher Grad an Knotenautonomie<br />
• Nachteile<br />
- Kommunikation bei nicht-lokalen Daten<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 34
Entwurf <strong>verteilter</strong><br />
Datenbanken<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 35
Entwurf von VDBMS<br />
Quelle: Heuer, A. et al:<br />
Datenbanken kompakt,<br />
mitp-Verlag, Bonn 2003<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 36
Entwurf von VDBMS<br />
• Fragmentierungsschema<br />
- Logisch zusammengehörige Informationsmengen in<br />
(weitgehend) disjunkte Fragmente zerlegen<br />
- Zerlegung erfolgt auf Basis des Zugriffsverhaltens<br />
aus den Anwendungen heraus<br />
- Daten mit ähnlichen Zugriffsmuster in einem<br />
Fragment zusammenfassen<br />
• Zuordnungsschema (Allokation)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 37
Fragmentierung I<br />
• Einfachster Fall im relationalen DBS<br />
- Ganze Relationen als kleinste Verteilungsgranulate<br />
- Vorteile:<br />
• keine explizite Fragmentierung<br />
• Vereinfachung des Allokationsproblems<br />
• Geringe Kommunikationskosten bei Oper. auf eine Relation<br />
• Einfache Gewährleistung von Integritätsbedingungen<br />
• Massive Nachteile hinsichtlich Lastverteilung, Nutzung<br />
von Lokalität, Parallelverarbeitung und Verarbeitungsumfang<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 38
Arten der Fragmentierung<br />
• Horizontale Fragmentierung<br />
- Logisch zusammengehörige Informationsmengen in<br />
(weitgehend) disjunkte Tupelmengen zerlegen<br />
• Vertikale Fragmentierung<br />
- Zusammenfassen von Attributen mit gleichen Zugriffsmustern<br />
- Vertikale Zerlegung der Relation durch Ausführung von<br />
Projektionen<br />
• Kombinierte Fragmentierung<br />
- Anwendung der horizontalen und vertikalen Fragmentierung auf<br />
die selbe Relation<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 39
Arten der Fragmentierung<br />
• Horizontale<br />
Fragmentierung<br />
• Vertikale<br />
Fragmentierung<br />
DB 1 DB 2 DB 3<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 40
Arten der Fragmentierung<br />
• Zuerst horizontale,<br />
dann vertikale<br />
Fragmentierung<br />
Fragm.<br />
2<br />
Fragm.<br />
3<br />
Fragm.<br />
2<br />
Fragm.<br />
3<br />
• Zuerst vertikale, dann<br />
horizontale<br />
Fragmentierung<br />
Fragm. 2<br />
Fragm. 3<br />
DB 2<br />
DB 3<br />
DB 1<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 41
Regeln für die Fragmentierung<br />
• Vollständigkeit<br />
- Jedes Datenelement (Tupel, Attributswert) der globalen Relation muss<br />
in wenigstens einem Fragment enthalten sein.<br />
• Rekonstruierbarkeit<br />
- Zerlegung muss verlustfrei sein<br />
- Globale Relation muss aus den Fragmenten vollständig rekonstruiert<br />
werden können<br />
• Disjunktheit<br />
- Fragmente sollten möglichst disjunkt sein<br />
- Bei vertikaler Fragmentierung kann die Disjunktheit aufgrund der<br />
Rekonstruierbarkeit nicht vollständig gewährleistet werden<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 42
Beispiel für Fragmentierung I<br />
• Ausgangsbasis:<br />
- abstrakte Relation R mit Tupeln r 1 , …, r 7<br />
- Anwendungen A 1 , A 2 , A 3<br />
• Anwendung A 1 greift aufr 1 ,r 2 ,r 3 zu<br />
• Anwendung A 2 greift aufr 4 ,r 5 ,r 6 ,r 7 zu<br />
• Anwendung A 3 greift auf r 4 ,r 5<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 43
Beispiel für Fragmentierung II<br />
Horizontale Fragmentierung von Relationen in<br />
disjunkte Tupelmengen<br />
Resultierende Fragmente:<br />
• R 1 = {r 1 ,r 2 ,r 3 } wegenAnwendung A 1<br />
• R 2 = {r 6 ,r 7 } wegenAnwendung A 2<br />
• R 3 = {r 4 ,r 5 } wegenAnwendung A 2 und A 3<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 44
Beispiel für Fragmentierung III<br />
KNR NAME GEBDAT NL<br />
K2<br />
K4<br />
K3<br />
K1<br />
K5<br />
Maier<br />
Müller<br />
Schmidt<br />
Weber<br />
Walter<br />
04.02.1963<br />
08.02.1973<br />
14.04.1967<br />
27.02.1993<br />
02.12.1943<br />
B<br />
FL<br />
FL<br />
B<br />
DD<br />
Globale Relation<br />
KUNDE<br />
V<br />
V<br />
KNR<br />
K2<br />
K4<br />
K3<br />
K1<br />
K5<br />
NAME<br />
Maier<br />
Müller<br />
Schmidt<br />
Weber<br />
Walter<br />
NL<br />
B<br />
FL<br />
FL<br />
B<br />
DD<br />
KNR<br />
K2<br />
K4<br />
K3<br />
K1<br />
K5<br />
GEBDAT<br />
04.02.1963<br />
08.02.1973<br />
14.04.1967<br />
27.02.1993<br />
02.12.1943<br />
KUNDE 2 =<br />
π KNR, GEBDAT (KUNDE)<br />
KUNDE 1 =<br />
π KNR, NAME, NL (KUNDE)<br />
H<br />
H<br />
KNR<br />
K5<br />
NAME<br />
Walter<br />
NL<br />
DD<br />
KUNDE 11 =<br />
σ NL=’DD’ (KUNDE 1 )<br />
H<br />
KNR NAME NL<br />
K2 Maier B<br />
K1 Weber B<br />
KUNDE 12 =<br />
σ NL=’B’ (KUNDE 1 )<br />
KNR NAME NL<br />
K4 Müller FL<br />
K3 Schmidt FL<br />
KUNDE 13 =<br />
σ NL=’FL’ (KUNDE 1 )<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 45
Arten von Allokationen<br />
• Redundanzfreie Allokation<br />
- Jedes Fragment ist genau einer Station zugeordnet<br />
- N:1 Zuordnung zu von Fragmenten zu Stationen<br />
• Allokation mit Replikation<br />
- Fragmente sind zum Teil repliziert und mehreren<br />
Stationen zugeordnet<br />
- N:M Zuordnung von Fragmenten zu Stationen<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 46
Fragmentierung und Allokation<br />
Quelle:<br />
Fragmentierung und Allokation<br />
nach Ceri und Pelagati,<br />
aus Kemper, A.;Eickler, A.:<br />
<strong>Datenbanksysteme</strong>, Oldenbourg-Verlag<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 47
Transparenz im VDBS<br />
”Unter Transparenz versteht man den Grad an der<br />
Unabhängigkeit, den ein VDBMS den Benutzern beim<br />
Zugriff auf verteilte Daten vermittelt“<br />
Quelle: Kemper A. / Eickler A. (2004), <strong>Datenbanksysteme</strong>, 5. Aufl.,<br />
München 2004<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 48
Transparenz im VDBS<br />
• Fragmentierungstransparenz<br />
- Single-System-Image<br />
- Nutzer kennt potentielle Fragmente und Allokationen nicht<br />
• Allokationstransparenz<br />
- Nutzer muss den Ort der Speicherung nicht kennen<br />
- Nutzer muss aber die ggf. vorhanden Fragmente kennen<br />
• Lokale Schema-Transparenz<br />
- Gleiche Datenbank-Schemata<br />
- Kenntnisse zur Fragmentierung, Allokation und Replikation<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 49
Transaktionen in verteilten<br />
Datenbanken<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 50
Struktur <strong>verteilter</strong> Transaktionen<br />
• Transaktion als Folge von DB-Operationen<br />
- BOT – begin of transaction<br />
- EOT – end of transaction<br />
- Abbruch laufender Transaktionen durch rollback-Anweisung<br />
• Transaktionen bei verteilten DBS<br />
- Beteiligung von einem oder mehreren Rechnerknoten<br />
- Erhöhte Fehlermöglichkeiten<br />
• Verbindungsausfall<br />
• Nachrichtenverlust<br />
• Ausfall von Rechnerknoten<br />
• Transaktionstransparenz<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 51
Komponenten bei<br />
verteilten Transaktionen<br />
• Heimat- bzw. Koordinator-Knoten (Start der TA – BOT)<br />
• Ressourcen-Manager<br />
- Zugriffe auf DBS oder Dateisysteme<br />
- Synchronisation & Logging<br />
• Transaction Manager<br />
- Verwaltung und Koordination<br />
- Commit-Behandlung<br />
• Bedarf an Transaktionskennungen<br />
• Transaktionsbaum<br />
- Primärtransaktion (am Heimatknoten ausgeführte Teiltransaktion)<br />
- Subtransaktion (Teiltransaktion im Rahmen einer globalen Transaktion)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 52
Commit-Behandlungen<br />
TM 1<br />
TM 2<br />
TM i<br />
Lineare Commit-Struktur<br />
TM n<br />
Zentralisierte Commit-Struktur<br />
Hierarchische Commit-Struktur<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 53
Zwei Phasen Sperrprotokoll<br />
(2PC-Protokoll)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 54
2PC – Prepare (TA Vorbereitung)<br />
Alle an der Transaktion beteiligten Server werden über<br />
den Status ihrer Teiltransaktion befragt. Ist eine<br />
Teiltransaktion „im Prinzip fertig“, wird sie in den<br />
Prepared-Zustand versetzt. Dieser Zustand ist ein<br />
permanenter Zustand, der nur durch das 2PC-Protokoll<br />
mit commit oder rollback beendet werden kann. Eine<br />
solche Transaktion überlebt auch ein Instanz-Recovery.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 55
2PC – Commit (TA Abschluss)<br />
Die Commit-Phase kann nur eingeleitet werden, wenn<br />
alle beteiligten Teiltransaktionen den Übergang in den<br />
Prepared-Zustand gemeldet haben. Kann nur eine<br />
beteiligte Transaktion diesen Zustand nicht melden, wird<br />
die gesamte verteilte Transaktion, d.h. alle<br />
Teiltransaktionen, zurückgerollt. Im anderen Fall wird<br />
das Commit für die globale Transaktion durchgeführt.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 56
Potentielle Problembereiche des<br />
2PC – Commit Protokolls<br />
• Basisprotokoll erfordert pro Agent 4 Nachrichten<br />
bei N Knoten 4*(N-1)<br />
• Jeweils zwei synchrone Schreibvorgänge (außer Ende-Satz) in die<br />
Log-Datei für den Koordinator und jeden Agenten<br />
synchrone Verarbeitung impliziert ggf. Wartezeiten<br />
• Hohe Abhängigkeit der Agenten vom Koordinator (Problem:<br />
Koordinatorausfall)<br />
Performanceprobleme<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 57
Verteilte Datenbanken mit Oracle<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 58
Verteilte DB mit Oracle<br />
• Oracle Netzwerkunterstützung<br />
- Netzwerktransparenz<br />
- Protokoll-Transparenz<br />
- Topologie-Transaprenz<br />
- Optimierung genutzter Netzwerkverbindungen<br />
• Oracle RDBMS<br />
- Verteilungstransparenz (bezüglich der Datenquellen)<br />
- Transaktionstransparenz<br />
- Recovery-Transparenz<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 59
Verteilte DB mit Oracle<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 60
Verteilte DB mit Oracle<br />
SQL* Net<br />
• Programmierinterface für alle Oracle-Anwendungen<br />
• Aufgabenstellungen:<br />
- Verbindungsauf- und Verbindungsabbau<br />
- Benachrichtigungsdienst bei Problemen (z.B. Verbindungsausfall)<br />
Oracle* TNS<br />
• Kern des Oracle Netzwerkes<br />
- Auflösung von Zieladressen (Rechnernamen und DB-Instanz)<br />
- Genutzte Netzwerkrouten (Oracle* Navigator)<br />
- Ggf. benötigte Konvertierungen<br />
- Fehlerbehandlung<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 61
Verteilte DB mit Oracle<br />
Weitere Komponenten<br />
• Oracle* MPI (MultiProtokoll Interchange)<br />
- Einsatz in heterogenen Netzwerkumgebungen<br />
- Kommunikation zwischen verschiedenen Anwendungen<br />
- Verbindung unterschiedlicher Netzwerksysteme<br />
• Internet TCP/IP,<br />
• IBM Mainframe LU6.2<br />
• DECNet<br />
- Finden der kostengünstigsten Verbindung (via Oracle* Navigator)<br />
• Oracles Gateway-Strategie zur sanften Migration<br />
- Zugriff auf „non“ Oracle Datenbanken (z.B. IBM DB2)<br />
- Zugriff von Datenbanken anderer Hersteller auf Oracle<br />
- Datenreplikation in heterogenen Datenbanken<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 62
Oracle Gateway -Zugriffsformen<br />
Anwendungen greifen auf Fremd-DBS quasi wie auf eine Oracle-DB zu<br />
Beim Gateway-Einsatz sind drei Zugriffsformen zu unterscheiden:<br />
• Oracle-Tools können i.a. direkt über ein SQL*CONNECT-Gateway<br />
auf SQL-DBS anderer Hersteller zugreifen, also ohne Involvierung<br />
eines Oracle-DBS. SQL*CONNECT erzeugt dabei dyn. SQL-<br />
Anweisungen für das Fremd-DBS.<br />
• Ein indirekter Zugriff liegt vor, wenn ein Oracle-Werkzeug mit einem<br />
Oracle-DBS zusammenarbeitet, von dem aus über DB-Links auf<br />
externe DB zugegriffen wird.<br />
- Ausführung von lesenden Zugriffen auf die Fremd-Datenbank<br />
- Zugriff auch auf nicht-relationale DBS oder Dateisysteme möglich<br />
• Direkter Zugriff auf mehrere Datenbanken ist möglich über<br />
Anwendungsprogramme mit eingebettetem SQL-Anweisungen.<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 63
Verteilte DB mit Oracle<br />
• Ein konfigurierter Datenbank-Link bietet den Zugriff auf alle Schema-<br />
Objekte des entfernten DB-Servers<br />
- Tabellen<br />
- Views<br />
- Stored Procedures (gespeicherte Prozeduren)<br />
• Gültigkeit eines Datenbank Links<br />
- Public: ohne Einschränkungen verfügbarer DB-Link<br />
- Private: DB-Link mit eingeschränkten Benutzerkreis<br />
• Shared Database Links (Reduktion benötigter Service Connections)<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 64
Verteilte DB mit Oracle<br />
Oracle Datenbank-Links<br />
• Einrichtung von Datenbank-Links durch den DBA<br />
• Datenbank Links zwischen einer lokalen Datenbank in Berlin und<br />
Datenbanken in Berlin und Magdburg<br />
CREATE PUBLIC DATABASE LINK BERLIN<br />
CONNECT TO B_UNIX;<br />
CREATE PUBLIC DATABASE LINK MAGDEBURG<br />
CONNECT TO MD_VMS;<br />
• Vorraussetzung: Eingetragene Nutzer bei den Datenbanken in Berlin<br />
(B_UNIX) bzw. Magdburg (MD_VMS).<br />
Quelle: Burleson, D. K.: Oracle Datenbank Anwendung, Thomson Publ., 1997<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 65
Verteilte DB mit Oracle<br />
Aufruf zur Erstellung eines Datenbank-<br />
Links unter dem DBMS Oracle<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 66
Verteilte DB mit Oracle<br />
Oracle Enterprise Manager<br />
• Interaktive Erstellung<br />
der Datenbank-Links<br />
• Bezeichnung des<br />
Datenbank-Link<br />
• Form der Anmeldung<br />
auf dem entfernten<br />
Datenbanksystem<br />
• Dienstname der<br />
entfernten Datenbank<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 67
Verteilte DB mit Oracle<br />
Verwendung des Datenbank-Links 1<br />
SELECT A.NAME, B.QUANTITY_ORDERED<br />
FROM CUSTOMER@BERLIN A,<br />
ORDERLINE@MAGDEBURG B<br />
Quelle: Burleson, D. K.: Oracle Datenbank Anwendung, Thomson Publ., 1997<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 68
Verteilte DB mit Oracle<br />
Verwendung des Datenbank-Links 2<br />
SELECT CUSTOMER.NAME, ORDER.ORDER_DATE,<br />
ORDERLINE.QUANTITY_ORDERED<br />
FROM CUSTOMER@BERLIN, ORDER,<br />
ORDERLINE@MAGDEBURG<br />
WHERE<br />
CUSTOMER.CUST_NUMBER = ORDER.CUSTOMER_NUMBER<br />
AND<br />
ORDER.ORDER_NUMBER = ORDERLINE.ORDER_NUMBER;<br />
Quelle: Burleson, D. K.: Oracle Datenbank Anwendung, Thomson Publ., 1997<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 69
Verteilte DB mit Oracle<br />
Transparenz durch Einsatz von Views I:<br />
• Definition einer View<br />
CREATE VIEW TABELLE AS<br />
SELECT * FROM TAB@BERLIN;<br />
• SQL-Abfragen ohne Kenntnis des Datenbank-Links<br />
UPDATE TABELLE<br />
SET PREIS = PREIS * 1,96<br />
WHERE WAEHRUNG = DM;<br />
• Einschränkung der Zugangsrechte über selektive Vergabe von<br />
Rechten für die Nutzer B_UNIX bzw. MD_VMS<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 70
Verteilte DB mit Oracle<br />
Transparenz durch Einsatz von Views II (Interaktionen):<br />
• Auflösen der View Definition für TABELLE über das DD<br />
• Identifizierung eines DB-Links hinter der View-Definition<br />
• Auflösen des DB-Link-Namen und der TNS-Adresse beim Zielrechner<br />
• Verbindungsaufbau zur Remote-Datenbank<br />
• SQL-Befehl an die Zieldatenbank senden<br />
• Ziel-Datenbank führt den SQL-Befehl aus<br />
• Ergebnis-Rückgabe an den lokalen DB-Server<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 71
Verteilte DB mit Oracle<br />
Security-Aspekte:<br />
„Über Datenbank-Links (DB-Links) besteht die Möglichkeit, von einer<br />
Datenbank innerhalb eines DBMS aus auf die Daten einer anderen<br />
Datenbank, gegebenenfalls in einem anderen DBMS, zuzugreifen.<br />
Um einen angemessenen Schutz der Daten zu gewährleisten, sollte<br />
diese Technik nur im Rahmen eines entsprechenden<br />
Berechtigungskonzepts angewendet werden. In diesem Konzept<br />
muss unter anderem die Kontrolle der Berechtigungen eines<br />
Benutzers bei der Verwendung von DB-Links geregelt werden.“<br />
Quelle: M 4.71 Restriktive Handhabung von Datenbank-Links Bundesamt für Sicherheit in der<br />
Informationstechnik<br />
SoSe 2009<br />
Verteilte DBS<br />
Prof. Dr. Andreas Schmietendorf 72