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 ❏ lange Lebensdauer (Jahre, Jahrzehnte) ❏ reguläre Strukturen ❏ große Datenobjekte, große Datenmengen ❏ stetig anwachsende integrierte Bestände (Giga-, Terabyte an Informationen) ❏ immer wiederkehrende Muster von Objektbeziehungen Datenbanken und Informationssysteme Einführung 1.1 Motivation: Warum Datenbanken? (2) Einsatzbeispiele für Datenbanken ❏ Traditionell: Für kaufmännische informationsverarbeitende Aktivitäten in Verwaltungsabteilungen großer Organisationen wie Versicherungen, Banken, Telekommunikations- oder Versandunternehmen etc. ❏ Heute: • Adreßdatenbank auf jedem PC • Paper-Datenbank, Warburg Electronic Library • Kinoprogramm, Telefonbuch, Kleinanzeigenmarkt, ... • Stadtkarten ❏ Aber auch: • Modulbibliotheken (Cross References), ... • Repositories (StP/OMT, ABAP/4), ... Datenbanken und Informationssysteme 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: ❏ Adäquate Repräsentation der Informationsstrukturen (betriebswirtschaftliche, statistische, textuelle, multimediale, grafische etc.) ❏ Flexible Zugriffsmodalitäten auf Informationsbestände (Hintergrundverarbeitung, interaktive Recherche, entfernter Zugriff etc.) ❏ Zugriff für verschiedene Benutzer und Anwendungsprogramme ❏ Konsistenz der Daten • Synchronisation • Fehlererholung • "konzeptuelle" Integrität ❏ Zugriffskontrolle, Datenschutz ❏ Effizienz beim Element- und Massendatenzugriff ❏ Unterstützung für Evolution der Daten und Programme Datenbanken und Informationssysteme Einführung 1.3 Informationssysteme Wandel der Softwaresysteme: ❏ Früher: Computer zur Lösung numerischer Berechnungsaufgaben ❏ Später Informationssysteme: Systeme zur Repräsentation und Verarbeitung von Informationen zentralisierte dezentralisierte kooperative Informationssysteme Zeit Host Client/Server Internet-"Nirvana" Charakteristika von Informationssystemen: ❏ Persistenz (Langlebigkeit) des Informationsbestands ❏ Quantität des regulär strukturierten Informationsbestands ❏ Reaktivität auf die Aktivitäten seiner Umgebung ❏ Integrität des Informationsbestands und der ein- und ausgehenden Informationen Datenbanken und Informationssysteme 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 Datenbanken und Informationssysteme Einführung 1.5 Beispiel: Ein Firmeninformationssystem Beratungsprojekt durchführen Schnittstelle des Informationssystems Budgetberechnung, Gehaltsabrechnung, Ressourcenberechnung etc. Mitarbeiter, Projekt, Abteilung Mitarbeiterdaten Projektdaten Abteilungsdaten Informationssystem Datenbanken und Informationssysteme 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 Datenbanken und Informationssysteme Einführung 1.7 Dienstgestützte Informationssystem-Realisierung Schnittstelle Informationssystem B Schnittstelle Informationssystem A Datenbankschema B Datenbankschema A Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Spezialisierung und Anpassung durch Ausdrücke der Datenbanksprache Datenbankmodell Datenbanksystem Datenbanken und Informationssysteme 1. Einführung Einführung 1.8 4 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Datenbankdienste (1) Anforderungen an Datenbanksysteme: ❏ Verpflichtende Datenbankdienste: Persistente Datenspeicherung, Verwaltung einer Speicherhierarchie mit effizienter Datenselektion, dynamische Massendatenstrukturen, Synchronisationsprimitive, Dienstschnittstellen für den Datenbankzugriff aus Programmiersprachen. ❏ 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. ❏ 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). Datenbanken und Informationssysteme Einführung 1.9 Datenbankdienste (2) Vorteile ihrer Nutzung: ❏ Ausnutzung der Wiederverwendbarkeit ❏ Erhöhung der Portabilität ❏ Verbesserung der Systemskalierbarkeit (Migration eines Informationssystems von einem Einbenutzerdatenbanksystem über ein Mehrbenutzerdatenbanksystem zu einem verteilten Datenbanksystem) ❏ Qualitätsteigerung der auf ihnen basierenden Informationssysteme durch: • Datenabstraktion • Gemeinsame Informationsnutzung (Information Sharing) • Integrierte Datenbeschreibung (Information Integration) Mögliche Nachteile ihrer Nutzung: ❏ Redundanz, Inkonsistenz, ineffizienter Datenzugriff Datenbanken und Informationssysteme 1. Einführung Einführung 1.10 5 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Datenbanksysteme als Middleware Applikationen 4GL-Sprachen Natural, PowerBuilder OLE, DCE, CORBA, Entire, ... Broker Netzwerke DBMS Middleware TCP/IP, SNA, ... Oracle, Adabas D, ... Betriebssysteme UNIX, Windows NT, OS/2, ... Datenbanken und Informationssysteme Einführung 1.11 Analogie: Datenbanken ↔Programmiersprachen Datenbankschema Datenbankschema (Datenstrukturen, (Datenstrukturen,Tabellenstrukturen) Tabellenstrukturen) Datenbank Datenbank (Datenwerte, Tabelleninhalte) (Datenwerte, Tabelleninhalte) Datenbankmodell Datenbankmodell (Relationales (RelationalesModell) Modell) Datenbanksprache Datenbanksprache (SQL) (SQL) Datenbanksystem Datenbanksystem (Oracle (Oracle7.3) 7.3) Datenbanken und Informationssysteme 1. Einführung Modulschnittstelle Modulschnittstelle (Klassen, (Klassen,Typen) Typen) Modulimplementierung Modulimplementierung (Objekte, (Objekte,Methoden) Methoden) Programmiersprachen Programmiersprachen (C++, (C++,ANSI ANSIC) C) Konkrete KonkreteProgrammiersprache Programmiersprache (GNU C++) (GNU C++) Konkreter KonkreterCompiler Compiler (GNU (GNUC++ C++2.7.2 2.7.2für fürSolaris) Solaris) Einführung 1.12 6 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Anforderungen an Datenbankmodelle PQRI-Anforderungen: Persistenz Quantität Datenbankmodell Integrität Reaktivität Beachte: Synergieeffekt bei Diensterbringung Datenbanken und Informationssysteme Einführung 1.13 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 Datenbanken und Informationssysteme 1. Einführung Einführung 1.14 7 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Persistenz (2) Beispiele: ❏ Transienter Zustand einer langandauernden Aktivität an einem Sicherungspunkt (Minuten) ❏ Informationsanfragen (Stunden) ❏ Zustand eines Systemdialogs über mehrere Sitzungen (Tage) ❏ Versionen von Datenbeständen (Wochen, Monate) ❏ Protokollinformation (Jahre) ❏ Historische Datenbankzustände (Jahrzehnte) ❏ Datenbankzustand (unendlich) Datenbanken und Informationssysteme Einführung 1.15 Unterstützung der Persistenz (3) ❏ Speicherhierarchie: Datenspeicherung auf Sekundär- (Festplatte) und Tertiärspeichern (Band, Wechselplatte) ↔Datenmanipulation im Primärspeicher (RAM) ❏ Persistenzabstraktion: Manipulation von Daten unabhängig von ihrer Lebensdauer ❏ Meta- und Schemadaten müssen zusammen mit den Nutzdaten abgelegt werden ❏ Schemaevolution: Umstrukturierung ohne Datenverlust ❏ Inkrementelle und dynamische Bindungsmechanismen: Bindung zwischen Variablennamen und persistenten Objekten →Datenunabhängigkeit ❏ Fehlererholung: Persistenz über Ausfälle hinweg Datenbanken und Informationssysteme 1. Einführung Einführung 1.16 8 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Persistenz (4) Umfang Lebensdauer begrenzt flüchtig 5 MB/s begrenzt persistent 500 KB/s "unendlich" persistent Durchsatz Kosten Zugriffszeit sehr teuer Nanosekunden 50 MB/s teuer Millisekunden billig > Sekunden Datenbanken und Informationssysteme Einführung 1.17 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). ❏ Iterationsabstraktion: stereotype imperative Programmuster ersetzt durch deklarative Beschreibungen ❏ Effizienz der Datenselektion zur Vermeidung teurer Sekundär- und Tertiärspeicherzugriffe Beispiel: firstPerson() firstPerson() result:= result:= true true while while dbstatus dbstatus == 00 do do person person == getPerson() getPerson() result:= result:= result result and and person.salary person.salary >> 100 100 nextPerson() nextPerson() end end ∀∀pp in in Person: Person: p.salary p.salary >> 100 100 Datenbanken und Informationssysteme 1. Einführung Einführung 1.18 9 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Unterstützung der Reaktivität Ein Informationssystem reagiert auf eingehende Daten, antwortet auf Anfragen und löst selbständig Aktionen aus (Benutzeroberflächen, Dienstschnittstellen). ❏ Synchronisation nebenläufiger Aktivitäten auf dem gleichen Informationsbestand ❏ Transaktionen: zusammengehörige Aktionen müssen atomar, konsistenzerhaltend, isoliert und mit dauerhaftem Effekt ausgeführt werden (→Integritätssicherung, Synchronisation, Fehlererholung) ❏ Verhaltensmodellierung erfolgt mit algorithmisch vollständigen Sprachen (→Programmierspracheneinbettung) Datenbanken und Informationssysteme Einführung 1.19 Unterstützung der Integrität (1) Aspekte der Integritätssicherung: ❏ Binnenwirkung: Konsistenz eines gekapselten langlebigen Systemzustandes ❏ Außenwirkung: Informationsstrukturen und Geschäftsanforderungen für alle Aktivitäten der Umgebung Klassifizierung von Integritätsbedingungen: ❏ Modellinhärente Integritätsbedingungen werden implizit durch das Datenbankmodell erzwungen (z.B. Typisierung: das Alter einer Person ist ein Integer). ❏ 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). Datenbanken und Informationssysteme 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 (2) Klassifizierung nach der zeitlichen Ausdehnung: ❏ Statische Integritätsbedingungen müssen in jedem Zustand erfüllt sein (quantifizierte Prädikate, z.B. jeder Mitarbeiter arbeitet in genau einer Abteilung). ❏ 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: ❏ Deklarative Integritätssicherung: Klauseln oder quantifizierte boolesche Prädikate im Datenbankschema (z.B. zu jedem Student s gehört genau eine Universität u) ❏ Prozedurale Integritätssicherung: explizit programmierte Tests (z.B. if person.age < 18 then abort else insertStudent(person) ) Datenbanken und Informationssysteme Einführung 1.21 Deklarative Integritätssicherung Vorteile: ❏ Verbesserte Systemwartbarkeit ❏ Verbesserte Verstehbarkeit ❏ Optimierbarkeit Probleme: ❏ Synchronisation verschiedener Integritätsbedingungen kann zu nichtdeterministischem Verhalten führen. ❏ Terminierung und Konsistenz von Ausnahmebehandlungen ist nicht garantiert. ❏ Lokalisierung von Integritätsbedingungen ❏ Inadäquate Sprachmittel für die Ausnahmebehandlung Datenbanken und Informationssysteme 1. Einführung Einführung 1.22 11