2. Architektur verteilter Datenbanksysteme Verteilte Datenbank, kurz DDB (engl. distributed database): eine Sammlung logisch zusammengehöriger Datenbanken, welche über Rechnerknoten ( Sites ) verteilt sind, die durch ein Kommunikations-Netzwerk verbunden sind; Site 1 Site 2 Verteiltes DBMS, kurz DDBMS (engl. distributed DBMS): die Software, die das Management einer verteilten Datenbank ermöglicht; wichtig dabei: Die Datenverteilung ist für Benutzer transparent Site 3 Kommunikations Netzwerk Site 4 2-1/15
Forderungen an verteilte DBMS Jede Site sollte lokal autonom, d.h. nicht von einer Master-Site abhängig sein Benutzer brauchen nicht zu wissen an welchen Orten im Netz Daten physisch gespeichert sind Orts-Transparenz wie Datenmengen zum Zwecke der Verteilung intern zerlegt sind Fragmentierungs-Transparenz ob und gegebenenfalls wie Datenobjekte an unterschiedlichen Orten repliziert sind Replikations-Transparenz wie Anfragen oder Transaktionen, welche auf Daten an mehreren Orten zugreifen, intern ausgeführt werden Implementierungs-Transparenz 2-2/15
Klassifikation (1) Homogen verteilte Systeme mit bzw. ohne Replikation (2) Heterogen verteilte Systeme Wir betrachten hier homogen verteilte Systeme ohne Replikation unter den Annahmen das zu Grunde liegende Netzwerk erlaubt eine Kommunikation zwischen beliebigen Paaren von Sites; jede ihm anvertraute Nachricht wird in endlicher Zeit und fehlerfrei übertragen. 2-3/15
Schemaarchitektur ES1 ES1 ESm Externe Schemata GKS Globales Konzeptionelles Schema GVS Globales Verteilungs- Schema LKS1 LKS2 LKSn Lokale Konzeptionelle Schemata LIS1 LIS2 LISn Lokale Interne Schemata 2-4/15
Katalog Enthält Metadaten: Schemainformationen Zugriffsberechtigungen Passwörter Statistiken Relationengrößen, Werteverteilungen, Zugriffshäufigkeiten,... 2-5/15
Lokale und globale Kataloge Lokale Kataloge: LKS und LIS jedes Knotens Globaler Katalog: GKS und GVS, unterstützt Verteilungstransparenz Abbildung logischer globaler Namen auf physische Adressen systemweite Verwaltung von Benutzern und Zugriffsrechten DB-Operationen, vor allem Anfrage-Optimierung Speicherung? Alternativen s.u. 2-6/15
Katalogverwaltung Alternativen zur Speicherung der globalen Katalogdaten Zentralisierter Katalog vollständiger Katalog an einem der Knoten Replizierter Katalog vollständiger Katalog an jedem Knoten Mehrfachkataloge Netz Cluster; je ein vollst. Katalog pro Cluster Partitionierter Katalog verteilte Speicherung des globalen Katalogs 2-7/15
Zentralisierter Katalog hoher Kommunikationsaufwand Engpass bzgl. Leistung und Verfügbarkeit inakzeptable Beeinträchtigung der Knotenautonomie Site 1 Site 2 Kommunikations Netzwerk Site 3 Site 4 2-8/15
Replizierter Katalog globaler Katalog an jedem Knoten lokales Lesen! effizient aufwändige Änderungen Probleme mit Datenschutz Site 1 Site 2 Kommunikations Netzwerk Site 3 Site 4 2-9/15
Mehrfachkataloge Partitionierung des Netzes in Cluster pro Cluster hat ein Knoten den vollständigen globalen Katalog reduzierter Änderungsaufwand kaum Engpässe ausreichende Knotenautonomie Änderungen immer noch aufwändig Site 1 Site 3 Kommunikations Netzwerk Site 2 Site 4 2-10/15
Partitionierter Katalog verteilte Speicherung des globalen Katalogs GKS implizit: LKS i keine explizite Speicherung erweiterte Objektbezeichnungen wo liegen Verteilungsinfo vor, um nicht-lokale Objekte zu finden? s. nä. Seiten hohes Maß von Knotenautonomie Kommunikationsaufwand bereits bei Zugriff auf Katalog! Caching nicht-lokaler Katalogdaten noch ein Replikationsproblem Kohärenzkontrolle Site 1 Site 2 Site 3 Kommunikations Netzwerk Site 4 2-11/15
Namen für DB-Objekte systemweit eindeutig möglichst stabil ortstransparent lokal generierbar ohne Kommunikation Objekte mit demselben(logischen) Namen 2-12/15
Namensverwaltung Es sind drei Arten von Knoten bei der Verwaltung und Speicherung von Objekten beteiligt: Geburtsknoten: wo das Objekt erzeugt wurde Katalogknoten: wo Katalogdaten zu dem Objekt verwaltet werden (i.a. mehrere) Speicherknoten: wo das Objekt gespeichert ist (i.a. mehrere: repliziert oder partitioniert) Es handelt sich um logische Sichten: derselbe Knoten kann mehrere dieser Rollen spielen. 2-13/15
Überblick Namensverwaltung Globale Objektnamen, z.b. [[<Knoten>.]<Benutzer>.]<Objekt> Globaler Name Geburtsknoten Katalogknoten Speicherknoten Speicherknoten Speicherknoten 2-14/15
Namensauflösung lokale Systemtabelle logischer Objektname globaler Objektname globale Katalogdaten (GVS) physische Objektadresse 2-15/15