Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Kapitel 1: Einführung Motivation: Warum Datenbanken? "... kaum eine größere Informatikanwendung ist ohne DB-Unterstützung denkbar." "DB-Systeme ... sind heute ein selbstverständliches Hilfsmittel der betrieblichen Organisation und Verwaltung geworden." "Datenbanken ... als Schlüsseltechnologie für die effiziente Realisierung komplexer Informationssysteme ...“ Kennzeichen der Daten o lange Lebensdauer (Jahre, Jahrzehnte) o reguläre Strukturen o große Datenobjekte, große Datenmengen o stetig anwachsende integrierte Bestände (Giga-, Terabyte an Informationen) o immer wiederkehrende Muster von Objektbeziehungen Einführung in Datenbanksysteme Einführung 1.1 Motivation: Warum Datenbanken? (2) Einsatzbeispiele für Datenbanken o Traditionell: Für kaufmännische informationsverarbeitende Aktivitäten in Verwaltungsabteilungen großer Organisationen wie Versicherungen, Banken, Telekommunikations- oder Versandunternehmen etc. o Heute: • Adreßdatenbank auf jedem PC • Paper-Datenbank, Warburg Electronic Library • Kinoprogramm, Telefonbuch, Kleinanzeigenmarkt, ... • Stadtkarten o Aber auch: • Modulbibliotheken (Cross References), ... • Repositories (Visio/UML, Centra 2000, ABAP/4), ... Einführung in Datenbanksysteme 1. Einführung Einführung 1.2 1 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Motivation: Warum Datenbanken? (3) Anforderungen an die Datenverwaltung: o Adäquate Repräsentation der Informationsstrukturen (betriebswirtschaftliche, statistische, textuelle, multimediale, grafische etc.) o Flexible Zugriffsmodalitäten auf Informationsbestände (Hintergrundverarbeitung, interaktive Recherche, entfernter Zugriff etc.) o Zugriff für verschiedene Benutzer und Anwendungsprogramme o Konsistenz der Daten • Synchronisation • Fehlererholung • "konzeptuelle" Integrität o Zugriffskontrolle, Datenschutz o Effizienz beim Element- und Massendatenzugriff o Unterstützung für Evolution der Daten und Programme Einführung in Datenbanksysteme Einführung 1.3 Informationssysteme Wandel der Softwaresysteme: o Früher: Computer zur Lösung numerischer Berechnungsaufgaben o Später Informationssysteme: Systeme zur Repräsentation und Verarbeitung von Informationen über Geschäftsprozesse zentralisierte dezentralisierte kooperative Informationssysteme Zeit Host Client/Server Internet-"Nirvana" Charakteristika von Informationssystemen: o Persistenz (Langlebigkeit) des Informationsbestands o Quantität des regulär strukturierten Informationsbestands o Reaktivität auf die Aktivitäten seiner Umgebung o Integrität des Informationsbestands und der ein- und ausgehenden Informationen Einführung in Datenbanksysteme 1. Einführung Einführung 1.4 2 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Schematische Struktur eines Informationssystems Geschäftsprozesse Informationsaustausch mit Aktivitäten der Umgebung Schnittstelle des Informationssystems Algorithmen zur Informationsverarbeitung und Integritätssicherung Software Umfangreicher, persistenter Informationsbestand Daten Informationssystem Einführung in Datenbanksysteme Einführung 1.5 Beispiel: Ein Firmeninformationssystem Beratungsprojekt durchführen Schnittstelle des Informationssystems Budgetberechnung, Gehaltsabrechnung, Ressourcenberechnung etc. Mitarbeiter, Projekt, Abteilung Mitarbeiterdaten Projektdaten Abteilungsdaten Informationssystem Einführung in Datenbanksysteme 1. Einführung Einführung 1.6 3 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Datenbanksysteme Realisierung eines Informationssystems mit einer Datenbank: Schnittstelle des Informationssystems Datenbankschema Algorithmen zur Informationsverarbeitung und Integritätssicherung Dienste des Datenbanksystems zur Datenspeicherung und Integritätssicherung Datenbankzustand Informationssystem Datenbank Informationssystem Einführung in Datenbanksysteme Einführung 1.7 Dienstgestützte Informationssystem-Realisierung Schnittstelle Informationssystem B Schnittstelle Informationssystem A Datenbankschema A Datenbankschema B Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Datenbankmodell Datenbanksystem Einführung in Datenbanksysteme 1. Einführung Einführung 1.8 4 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Dienstgestützte Informationssystem-Realisierung Schnittstelle Informationssystem A1 Schnittstelle Informationssystem A2 Datenbanksubschema A1 Datenbanksubschema A2 Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Datenbankschema A Datenbanksystem Einführung in Datenbanksysteme Einführung 1.9 Datenbankdienste (1) Anforderungen an Datenbanksysteme: o Verpflichtende Datenbankdienste: Persistente Datenspeicherung, Verwaltung einer Speicherhierarchie mit effizienter Datenselektion, dynamische Massendatenstrukturen, Synchronisationsprimitive, Dienstschnittstellen für den Datenbankzugriff aus Programmiersprachen. o Datenbankkerndienste: Zusätzlich zu den verpflichtenden Datenbankdiensten: Persistenzabstraktion, Metadatenverwaltung, inkrementelle und dynamische Bindung, Datenunabhängigkeit durch Schemaschichtung, Iterationsabstraktion, transaktionale Integritätssicherung, Fehlererholung und Parallelitätskontrolle im Mehrbenutzerbetrieb. o Erweiterte Datenbankdienste: Zusätzlich zu den Datenbankkerndiensten: Orthogonale Persistenz, Persistenzunabhängigkeit, deklarative Integritätssicherung, Verhaltensmodellierung, Ausnahmebehandlung, Unterstützung für Konversationen und langandauernde Aktivitäten, Benutzeroberflächen, erweiterte Dienstschnittstellen (4 GL, Benutzeroberfläche, Reportgenerator, entfernter Datenbankzugriff). Einführung in Datenbanksysteme 1. Einführung Einführung 1.10 5 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Datenbankdienste (2) Vorteile ihrer Nutzung: o Ausnutzung der Wiederverwendbarkeit o Erhöhung der Portabilität o Verbesserung der Systemskalierbarkeit (Migration eines Informationssystems von einem Einbenutzerdatenbanksystem über ein Mehrbenutzerdatenbanksystem zu einem verteilten Datenbanksystem) o Qualitätsteigerung der auf ihnen basierenden Informationssysteme durch: • Datenabstraktion • Gemeinsame Informationsnutzung (Information Sharing) • Integrierte Datenbeschreibung (Information Integration) Mögliche Nachteile ihrer Nutzung: o Redundanz, Inkonsistenz, ineffizienter Datenzugriff Einführung in Datenbanksysteme Einführung 1.11 Datenbanksysteme als Middleware Applikationen 4GL-Sprachen Broker Netzwerke DBMS Betriebssysteme Einführung in Datenbanksysteme 1. Einführung Natural, PowerBuilder OLE, DCE, CORBA, Entire, ... Middleware TCP/IP, SNA, ... Oracle, Adabas D, ... UNIX, Windows NT, OS/2, ... Einführung 1.12 6 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Analogie: Datenbanken Ö Programmiersprachen Datenbankschema (Datenstrukturen, Tabellenstrukturen) Datenbank (Datenwerte, Tabelleninhalte) Datenbankmodell (Relationales Modell) Datenbanksprache (SQL) Datenbanksystem (Oracle 7.3) Modulschnittstelle (Klassen, Typen) Modulimplementierung (Objekte, Methoden) Programmiersprachen (C++, ANSI C) Konkrete Programmiersprache (GNU C++) Konkreter Compiler (GNU C++ 2.7.2 für Solaris) Einführung in Datenbanksysteme Einführung 1.13 Anforderungen an Datenbankmodelle PQRI-Anforderungen: Persistenz Quantität Datenbankmodell Integrität Reaktivität Beachte: Synergieeffekt bei Diensterbringung Einführung in Datenbanksysteme 1. Einführung Einführung 1.14 7 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Persistenz (1) Alle Daten, deren Lebensdauer die Lebensdauer eines einzelnen Betriebssystemprozesses überschreitet, werden als persistent bezeichnet. Ein Informationssystem unterstützt die Speicherung unterschiedlichster Daten (mit unterschiedlicher Lebensdauer). Ziel: Daten existieren solange, wie die Geschäftsprozesse, die sie unterstützen. Zeit akueller Datenbankzustand Einführung in Datenbanksysteme Einführung 1.15 Unterstützung der Persistenz (2) Beispiele: o Transienter Zustand einer langandauernden Aktivität an einem Sicherungspunkt (Minuten) o Informationsanfragen (Stunden) o Zustand eines Systemdialogs über mehrere Sitzungen (Tage) o Versionen von Datenbeständen (Wochen, Monate) o Protokollinformation (Jahre) o Historische Datenbankzustände (Jahrzehnte) o Datenbankzustand (unendlich) Einführung in Datenbanksysteme 1. Einführung Einführung 1.16 8 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Persistenz (3) o Speicherhierarchie: Datenspeicherung auf Sekundär- (Festplatte) und Tertiärspeichern (Band, Wechselplatte) Ö Datenmanipulation im Primärspeicher (RAM) o Persistenzabstraktion: Manipulation von Daten unabhängig von ihrer Lebensdauer o Meta- und Schemadaten müssen zusammen mit den Nutzdaten abgelegt werden o Schemaevolution: Umstrukturierung ohne Datenverlust o Inkrementelle und dynamische Bindungsmechanismen: Bindung zwischen Variablennamen und persistenten Objekten Õ Datenunabhängigkeit o Fehlererholung: Persistenz über Ausfälle hinweg Einführung in Datenbanksysteme Einführung 1.17 Unterstützung der Persistenz (4) Kosten Zugriffszeit sehr teuer Umfang Lebensdauer Nanosekunden 50 MB/s begrenzt flüchtig teuer Millisekunden 5 MB/s begrenzt persistent billig > Sekunden 500 KB/s "unendlich" persistent Einführung in Datenbanksysteme 1. Einführung Durchsatz Einführung 1.18 9 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Quantität Durch die Regularität der Informationsstrukturen läßt sich der Informationsbestand in Klassen aufteilen, zwischen denen Beziehungen bestehen können (Õ Massendatenstrukturen) und auf denen Invarianten definiert werden können (Õ statische Typisierung). o Iterationsabstraktion: stereotype imperative Programmuster ersetzt durch deklarative Beschreibungen o Effizienz der Datenselektion zur Vermeidung teurer Sekundär- und Tertiärspeicherzugriffe Beispiel: firstPerson() result:= true while dbstatus = 0 do person = getPerson() result:= result and person.salary > 100 nextPerson() end ∀ p in Person: p.salary > 100 Einführung in Datenbanksysteme Einführung 1.19 Unterstützung der Reaktivität Ein Informationssystem reagiert auf eingehende Daten, antwortet auf Anfragen und löst selbständig Aktionen aus (Benutzeroberflächen, Dienstschnittstellen). o Synchronisation nebenläufiger Aktivitäten auf dem gleichen Informationsbestand o Transaktionen: zusammengehörige Aktionen müssen atomar, konsistenzerhaltend, isoliert und mit dauerhaftem Effekt ausgeführt werden (Õ Integritätssicherung, Synchronisation, Fehlererholung) o Verhaltensmodellierung erfolgt mit algorithmisch vollständigen Sprachen (Õ Programmierspracheneinbettung) Einführung in Datenbanksysteme 1. Einführung Einführung 1.20 10 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Integrität (1) Aspekte der Integritätssicherung: o Binnenwirkung: Konsistenz eines gekapselten langlebigen Systemzustandes o Außenwirkung: Informationsstrukturen und Geschäftsanforderungen für alle Aktivitäten der Umgebung Klassifizierung von Integritätsbedingungen: o Modellinhärente Integritätsbedingungen werden implizit durch das Datenbankmodell erzwungen (z.B. Typisierung: das Alter einer Person ist ein Integer). o Applikationsspezifische Integritätsbedingungen werden durch explizite Deklaration im Datenbankschema oder durch explizite Überprüfung in Algorithmen erzwungen (z.B. das Alter einer Person liegt zwischen 0 und 100). Einführung in Datenbanksysteme Einführung 1.21 Unterstützung der Integrität (2) Klassifizierung nach der zeitlichen Ausdehnung: o Statische Integritätsbedingungen müssen in jedem Zustand erfüllt sein (quantifizierte Prädikate, z.B. jeder Mitarbeiter arbeitet in genau einer Abteilung). o Dynamische Integritätsbedingungen müssen in jeder Zustandsänderung erfüllt sein (Prädikattransformator, temporale Logiken, z.B. Gehälter von Mitarbeiter nehmen nie ab). Integritätsbedingungen können auch nach ihrem Sichtbarkeits- und Wirkungsbereich unterschieden werden (z.B. Objekte, Klassen). Integrität wird erhalten durch: o Deklarative Integritätssicherung: Klauseln oder quantifizierte boolesche Prädikate im Datenbankschema (z.B. zu jedem Student s gehört genau eine Universität u) o Prozedurale Integritätssicherung: explizit programmierte Tests (z.B. if person.age < 18 then abort else insertStudent (person) ) Einführung in Datenbanksysteme 1. Einführung Einführung 1.22 11 Vorlesung "Datenbanken und Informationssysteme“WS 98/99 © F. Matthes, J.W. Schmidt Deklarative Integritätssicherung Vorteile: o Verbesserte Systemwartbarkeit o Verbesserte Verstehbarkeit o Optimierbarkeit Probleme: o Synchronisation verschiedener Integritätsbedingungen kann zu nichtdeterministischem Verhalten führen. o Terminierung und Konsistenz von Ausnahmebehandlungen ist nicht garantiert. o Lokalisierung von Integritätsbedingungen o Inadäquate Sprachmittel für die Ausnahmebehandlung Einführung in Datenbanksysteme 1. Einführung Einführung 1.23 12