1. Einführung, Problemstellung und Überblick 1.1 Einführung r 60er/70er Jahre: Zunehmender Übergang von Datei- zu Datenbank-Systemen Gründe: r m erhöhte Datenunabhängigkeit der Anwendungsprogramme m transaktionsorientierte Verarbeitung m Mehrbenutzerbetrieb m Recovery-Funktionen (Crash-Recovery, Media-Recovery, ...) Hardware war teure, knappe Ressource Folge: m Effiziente Nutzung der teuren Hardware-Ressourcen ⇒ "Rechenzentrum" m Änderung der Betriebsorganisation (dezentral ⇒ zentral) m Zentralisierung der Anwendungen (⇒ Stapel-Verarbeitung) P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-1 r Kleine Adreßräume, limitierende Software Folge: m Verteilung von logisch zusammengehörenden Datenbeständen auf verschiedene Datenbanken m Problem der Konsistenthaltung der Daten m "Lösung": Vorgeplante Job-Ablauf-Reihenfolgen der Batch-Jobs im Rechenzentrum ⇒ mächtige Job-Control-Sprachen der "Produktions"Betriebssysteme (IBM/MVS, Siemens/BS2000, ...) ⇒ eigene Job-Verwaltungsprogramme zur Ablaufautomatisierung r 80er/90er Jahre: ⇒ Hardware wird zunehmend kostengünstiger ⇒ Zunehmender Übergang zu "Online"-Anwendungen Folge: m "Online"-Update erforderlich m "Datenintegration via Job-Control-Sprache" versagt ⇒ Zusammenführung von bislang getrennten Anwendungen und Datenbeständen ⇒ Realisierung "integrierter", verteilter Informationssysteme P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-2 r Informationsverarbeitung direkt "vor Ort" war vor Einführung der Rechenzentren der Normalfall r Heute wieder Trend zu autonomeren Betriebseinheiten ("lean management", "profit center", ...) m Dezentralisierungstendenz der Datenverarbeitung m Aufsplittung von "überintegrierten" Informationssystemen ⇒ Zentrale ⇒ verteilte Informationssysteme r Aktuelle Trends m "Downsizing" (⇒ Dezentralisierung) m Parallelverarbeitung (⇒ Mehrrechner-DBMS) m Firmenübergreifende Rechnerverbunde ⇒ Integration / Kooperation von Inform.-Systemen r Regelfall für verteilte Informationssysteme: m Große Vielfalt an möglichen Realisierungsformen m Dadurch auch unterschiedliche Problemstellungen im Detail m Aber: Gemeinsame grundsätzliche Probleme P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-3 1.2 Allgemeine Problemstellungen 1.2.1 Problemstellung bei Dezentralisierung r Ausgangssituation: m Zentralisiertes Informationssystem m Anwendungsprogramme setzen auf vorgegebenen Programmschnittstellen auf Beispiel 1: Informationssystem = relationales DB-System Programmschnittstellen = m r 1. SQL-API 2. Schema der SQL-Datenbank Änderung der Programmschnittstellen würde Änderungen der Anwendungsprogramme (im Source-Code!) nach sich ziehen Vorgabe (oft): Die Daten(bank) so auf mehrere Rechner verteilen, daß m das "Single-System-Image" erhalten bleibt ⇒ Reduzierung/Vermeidung von Portierungsaufwand ⇒ Ziel: "Orts-Unabhängigkeit" der Anwendungsprogramme m die Konsistenz der Daten weiterhin gewährleistet bleibt m der Gesamtdurchsatz verbessert wird m die Verfügbarkeit gesteigert wird P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-4 1.2.2 Problemstellung bei Integration r Ausgangssituation: m Existierende, bislang (mehr oder weniger) autonome Informationssysteme m Meist heterogen m r n gleiches Datenmodell, aber von verschiedenen DBMSHerstellern (⇒ z.B. verschiedene SQL-Dialekte) n gleiches Datenmodell, aber Daten anders strukturiert und/oder Datentypen mit unterschiedlicher Semantik n verschiedene Datenmodelle (IMS, CODASYL, relational, dateibasiert, ...) Existierende Anwendungsprogramme für die jeweiligen lokalen Systeme Vorgabe (oft): Die verschiedenen Daten(banken) so integrieren, daß m ein "Single-System-Image" für neue Anwendungen entsteht ⇒ Orts- + Datenmodell-Unabhängigkeit der Anw.-Programme m die Konsistenz der Daten verbessert wird m die vorher vorhandene (lokale) Performance nicht wesentlich verschlechtert wird m die Verfügbarkeit der lokalen Systeme nicht wesentlich beeinträchtigt wird P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-5 1.3 Formen und Problemstellungen von verteilten Informationssystemen 1.3.1 Räumliche Aspekte r Geographisch verteilte Informationssysteme m Rechner (Knoten) physisch weit von einander entfernt m Kommunikation über (i.a. relativ langsame) Weitverkehrsnetze m Ständige Verfügbarkeit nicht immer gesichert, störanfällig m Wichtige Faktoren: n Anzahl und Umfang der auszutauschenden Nachrichten (⇒ Performance / Kosten) n I.d.R. wird ein hoher Grad an lokaler Autonomie angestrebt P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-6 DB-6 DB-3 DB-4 DB-2 DB-5 DB-1 Abb. 1-1: Beispiel für geographisch verteiltes Inf.-System P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-7 r Lokal verteilte Informationssysteme m Knoten durch schnelles lokales Netz (LAN) verbunden m Hoher Grad an Verfügbarkeit des Netzes m Wichtige Entscheidungsgrößen (oft): m n Ausfallsicherheit (⇒ redundante Speicherung) n Durchsatzverbesserung durch Parallelisierung von Anfragen bzw. Bearbeitungsvorgängen Spezielle Variante: Mehrrechner-DBMS ( Einkaufsabteilung später) Produktions-Planung DBMS DBMS Buchhaltung DBMS DBMS Verkaufsabteilung Abb. 1-2: Beispiel für lokal verteiltes Informationssystem P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-8 1.3.2 Mittels verteiltem DBMS und konventionell realisierte verteilte Informationssysteme r Konventionell realisierte verteilte Informationssysteme m Verteilung in den Anwendungsprogrammen realisiert m D.h. Anwendungsprogramme "sehen" die Verteilung m Direkte Kommunikation zwischen Anwendungsprogrammen m Operationen und Datenaustauschformate müssen "bilateral" vereinbart werden m I.d.R. kein direkter Zugriff auf die gespeicherten Daten des anderen Anwendungsprogramms m Programmtechnische Realisierung über (peer-to-peer) ProgramTo-Program-Communication oder Remote-Procedure-Call 1 m Behandlung von Fehlerfällen i.d.R. vollständig in der Verantwortung des Anwendungsprogrammierers 1 A. Schill: Remote Procedure Call: Fortgeschrittene Konzepte und Systeme - ein Überblick. Informatik-Spektrum, Band 15, 1992, Teil 1: Grundlagen, Heft 2, April 1992, S. 79-87, Teil 2: Erweiterte RPC-Ansätze, Heft 3, Juni 1992, S. 145-155 P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-9 r r Realisierung mittels verteiltem DBMS m Verteilung durch DBMS realisiert m Verteilung der Daten für Anwendungsprogramm(ierer) nicht sichtbar m Anwendungsprogramme "kommunizieren" über gemeinsame Datenbankobjekte Im Vergleich: Kommunikation AP1 AP2 AP1 AP2 Kommunikation DB1 DB2 DB 2 DB1 verteiltes DBMS Konventionell realisiertes verteiltes Informationssystem Realisierung mittels verteiltem DBMS Abb. 1-3: Realisierungsformen verteilter Informationssysteme P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-10 1.3.3 Realisierungsformen verteilter DBMS: Gemeinsamkeiten und Unterschiede Lokales DBMS globale Komp. globale Komp. Lokales DBMS KommunikationsNetz Verteiltes DBMS globale Komponente Lokales DBMS Abb. 1-4: Grobarchitektur eines verteilten DBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-11 r r Gemeinsamkeiten der verschiedenen Realisierungsformen: m Daten physisch auf mehrere Rechner (Knoten) verteilt m Lokale Bearbeitung von Anfragen / Teilanfragen durch lokale DBMS-Komponenten m Globales Transaktionskonzept m Logische Sicht als eine Datenbank m Benutzer / Anwendungsprogramm braucht Verteilung nicht zu kennen (⇒ Verteilungstransparenz) Unterschiede bei den verschiedenen Realisierungsformen: m Logische Sicht als eine Datenbank zum Teil aufgeweicht bzw. ganz aufgegeben (Beispiel: Multi-Datenbanken; siehe später) m damit dann auch Verteilungstransparenz nicht mehr gegeben m Globales Transaktionskonzept z.T. mit starken Einschränkungen (z.B. nur Read-Only-Transaktionen) m Allgemein: Verschiedene Grade und Formen an Autonomie der lokalen DBMSe n (Schema-)Entwurfs-Autonomie n (Schema-)Änderungs-Autonomie n Ausführungs-Autonomie n ... P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-12 1.3.3.1 Homogene, eng integrierte verteilte DBMS r Verteiltes DBMS tritt nach außen als ein (geschlossenes) DBMS auf m ein (globales) Schema m alle lokalen Schemata werden vollständig in das globale Schema integriert m Transaktionskonzept wie im lokalen Fall r Globales Schema i.w. einfache Vereinigung (union) der lokalen Schemata (keine Schema-Transformation erforderlich) r Lokale DBMS nicht autonom, über vDBMS gesteuert r Anwendungsprogramme greifen nur auf das globale Schema zu AP1 Teile Teile1 Pers1 Inv1 (lokales) Schema L-DB 1 AP2 Pers Teile2 AP3 ... Inv Pers2 (lokales) Schema L-DB2 Lief APn globales Schema der verteilten Datenbank Teile3 Inv 3 Lief (lokales) Schema L-DB 3 Abb. 1-5: Homogene, eng integrierte DBS (Schema-Integration) P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-13 r Technologisch am besten fundiert (⇒ relativ solide Theoriebasis; siehe später) r Kommerziell verfügbare Systeme 2 r Einsatzgebiete: m Hochleistungssysteme (⇒ Parallelverarbeitung) m Fehlertolerante Systems (z.B. Non-Stop-SQL von Tandem) m Dezentralisierung von zentralen DB-Anwendungen (⇒ "Downsizing") 2 Funktionell allerdings oft mit erheblichen Einschränkungen P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-14 1.3.3.2 Föderierte, verteilte DBMS r Unterscheidung zwischem globalem DB-Zugang und lokalem DB-Zugang m existierende, lokale Anwendungen greifen über die vorhandene lokale DBMS-Schnittstelle zu m knotenübergreifende ("verteilte") Anwendungen benutzen das globale Schema des verteilten DBMS m In der Regel heterogene lokale Systeme n n ggf. Datenmodell-Transformationen erforderlich l z.B. CODASYL → relational l z.B. IMS → relational l {relational, CODASYL, IMS, ..} → EER-Datenmodell i.d.R. Schema-Transformationen erforderlich l semantisch äquivalente Information in den lokalen DBMSen strukturell verschieden dargestellt l Domain-Transformationen für Attributwerte r Lokale Schemata werden i.d.R. nicht vollständig ins globale Schema eingebracht r Lokale Autonomie wird nur teilweise aufgegeben m ggf. weiterhin lokale Anwendungen (basierend auf lokaler DBSchnittstelle) m ggf. Einschränkung der globalen Funktionalität (z.B. auf ReadOnly-Zugriff) P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-15 r Kommerzielle Produkte zum Teil verfügbar ⇒ "Gateway"-Zusätze zu relationalen DBMS r Aktuelles Forschungsgebiet ⇒ insbesondere rechnerunterstützte Schema-Integration r Schema-Architektur: GAP1 Teile AP 11 Teile1 AP 12 Pers1 AP13 GAP2 Pers AP21 Inv1 (lokales) Schema L-DB1 ... GAP3 Inv AP22 Teile2 GAPn globales Schema der föderierten verteilten Datenbank AP23 Pers2 (lokales) Schema L-DB2 globale Anwendungen AP31 Teile3 Inv3 AP32 Lief (lokales) Schema L-DB3 = nur lokal vorhanden / zugreifbar Abb. 1-6: Föderierte, verteilte Datenbank (Schema-Integration) P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-16 1.3.3.3 Offene Multi-Datenbanksysteme r r r Zugriff auf "fremde" Datenbanken m Hotelreservierungssysteme m Flugreservierungssysteme m Literatur-Datenbanken m ... Praktisch sehr relevantes Problem m Realisierung von Auskunftssystemen m z.B. bei Firmenzusammenschlüssen m Rechnerverbund von Abnehmer und Lieferant m ... Hoher (bzw. vollständiger) Grad an lokaler Autonomie m hinsichtlich Schema-Entwurf, Schema-Änderungen m hinsichtlich Prioritätsvergabe bei Transaktionsausführung m ... P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-17 r Geringe (oder keine) Kooperation der beteiligten Systeme (außer Transaktionsausführung) m "black-box"-Systeme m i.d.R. z.B. kein two-phase-commit (siehe später) m keine/wenig Auskünfte über interne Zustände m ... r Bei globalen Transaktionen oft nur "Read-Only"-Zugriff r Falls globale Update-Transaktionen, dann oft r m Abkehr vom Atomaritätsprinzip m "Kompensation" anstelle von "Undo" m Einsatz komplexerer Transaktionskonzepte Aktuelles Forschungsgebiet m Transaktionskonzepte m Synchronisationsverfahren, Korrektheitsaspekte m Schema-Integration m ... P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-18 Heterogenität heterogenes, eng integriertes vDBS heterogenes förderiertes vDBS heterogenes Multi-DBS zentrales DBS Autonomie homogenes, eng integriertes vDBS homogenes, föderiertes vDBS homogenes Multi-DBS Verteilung Abb. 1-7: Klassifikation / Sprechweisen P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-19 1.4 Zusammenfassung: Charakteristische Eigenschaften verteilter DBMSe 1. Daten physisch auf mehrere Rechner (Knoten) verteilt 2. Logische Sicht als eine Datenbank 3. Benutzer/AP braucht Verteilung nicht zu kennen (Verteilungstransparenz) 4. Lokale Bearbeitung von Anfragen / Teilanfragen 5. Globales Transaktionskonzept Anmerkung: Je nach Realisierungsform (siehe Abschnitt 1.3.3) können sich bei den mit markierten Eigenschaften gewisse Einschränkungen ergeben. Die mit markierten Eigenschaften werden i.a. als unabdingbar für ein verteiltes DBMS angesehen. P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-20 1.5 Aufbau eines vDBMS Globale Anfragebearbeitung Verwaltung globaler Katalog KopienVerwaltung Globale Commit-/AbortBehandlung Globales Recovery Globales TransaktionsMgmt Sichere Kommunikation Globale Synchronisation Globale Deadlockbehandlung "normales DBMS" globale Komponente lokale Komponente Abb. 1-8: Grob-Architektur eines vDBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-21 1.6 Abgrenzungen 1.6.1 Abgrenzung verteiltes DBMS zu C/S-DBMS r Verteilte Datenbanken m Symmetrisches System m alle Rechner sind i.w. gleichartig m alle Rechner führen i.w. die gleichen Funktionen aus Abb. 1-9: Verteiltes DBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-22 r Client - Server - DBMS (C/S-DBMS) m Unsymmetrisches System m Server und Client sind i.d.R. verschieden ausgelegt m Server und Client führen unterschiedliche Funktionen aus: m n Server: Store und Retrieval n Client: eigentliche Bearbeitung Typische Einsatzgebiete: n traditionelle Anwendungen n Entscheidungsunterstützungs-Systeme DB-Server Dies ist ein Test, ob die Schrift auf dem Bildschirm genauso aussieht, wie auf dem Laserdrucker. Client D Client A Client C Client B Abb. 1-10: Client - Server - DBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-23 m Technisch / wissenschaftliche Anwendungen n Client = Workstation ⇒ Workstation - Server - DBMS n Charakteristisch: l lange, komplexe Bearbeitungsvorgänge l große, komplexe (Daten-)Objekte Abb. 1-11: Workstation - Server - DBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-24 1.6.2 Abgrenzung vDBMS - verteiltes Dateisystem Knoten A DBMS get_block(...) Betriebssystem Knoten B Betriebssystem Knoten C Betriebssystem Abb. 1-12: (Zentrales) DBMS mit verteiltem Dateisystem r Annahme: (Zentrales) DBMS auf Basis eines verteilten Dateisystems implementiert r Eigenschaften: m Zentrale Verarbeitung aller Daten auf Knoten A m DBMS sieht nichts von der verteilten Speicherung m auch keine lokalen DBMS-Komponenten zur Bearbeitung von DB-Anfragen vorhanden m daher kein verteiltes DBMS P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-25 1.7 Vorlesungs-Überblick 1. Einführung, Problemstellung und Überblick 2. Rechnernetze (nur kurz) 3. Grundlagen relationaler Datenbanksysteme (nur kurz) • Relationenalgebra • korrekte Zerlegung und Zusammenfassung von Relationen 4. Speicherung globaler Relationen • Partitionierungsformen (horizontal, vertikal, ...) • Bestimmung geeigneter Partitionen, physische Verteilung der Daten 5. Schema-Architekturen verteilter Datenbanksysteme 6. Anfragebearbeitung • Anfragetransformationen (global → lokal, sequentiell → parallel) • Anfrageoptimierung 7. Globale Transaktionen • korrekte parallele Ausführung globaler Transaktionen • Freigabe von Änderungen, Commit-Protokolle • weiterführende Transaktionskonzepte 8. Synchronisationsverfahren 9. Replikationsverfahren 10. Recovery 11. Datenbankmaschinen / Mehrrechner-DBMS (nur kurz) 12. Client/Server-Anwendungen • C/S-Modell, Architekturaspekte • Basistechnologien (RPC, Kommunikationsdienste, RDA, TP-Monitore, ...) 13. Zusammenfassung und Ausblick P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-26 1.8 Basis-Literatur r P. Dadam: Verteilte Datenbanken und Client/Server-Systeme. SpringerVerlag, 1996 r M.T. Özsu, P. Valduriez: Principles of Distributed Database Systems. Prentice Hall, 1991 r S. Conrad: Föderierte Datenbanksysteme – Konzepte der Datenintegration. Springer-Verlag, 1997 r E. Rahm: Mehrrechner-Datenbanksysteme – Grundlagen der verteilten und parallelen Datenbankverarbeitung. Addison-Wesley, 1994 r S. Ceri, G. Pelagatti: Distributed Databases, Principles and Systems. McGraw-Hill Book Company, 1984 r H. Kudlich: Verteilte Datenbanken, Systemkonzepte und Produkte. Siemens Nixdorf Informationssysteme AG, 1992 r J. Gray, A. Reuter: Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, 1993 P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-27 P. Dadam, 1999 - Verteilte Datenbanken und Client/Server-Systeme 1. Einführung, Problemstellung und Überblick 1-28