2. Architekturen von DBS ➠ Schema-Architektur ➠ System-Architekturen ➠ Konkrete System-Architekturen ➠ Anwendungsarchitekturen Andreas Heuer, Gunter Saake – Datenbanken I 2-1 Schema-Architektur I Zusammenhang zwischen ■ Konzeptuellen Schema (Ergebnis der Datendefinition) ■ Internen Schema (Festlegung der Dateiorganisationen und Zugriffspfade) ■ Externen Schema (Ergebnis der Sichtdefinition) ■ Anwendungsprogrammen (Ergebnis der Anwendungsprogrammierung) Andreas Heuer, Gunter Saake – Datenbanken I 2-2 Schema-Architektur II ■ Trennung Schema — Instanz ◆ ◆ ■ Schema (Metadaten, Datenbeschreibungen) Instanz (Anwenderdaten, Datenbankzustand oder -ausprägung) Datenbankschema besteht aus ◆ ◆ internem, konzeptuellen, externen Schema und den Anwendungsprogrammen im konzeptuellen Schema etwa: – Strukturbeschreibungen – Integritätsbedingungen – Autorisierungsregeln (pro Benutzer für erlaubte DB-Zugriffe) Andreas Heuer, Gunter Saake – Datenbanken I 2-3 Schema-Architektur III externes Schema 1 ... externes Schema N Datendarstellung Anfragebearbeitung konzeptuelles Schema internes Schema Andreas Heuer, Gunter Saake – Datenbanken I 2-4 Datenunabhängigkeit ■ Stabilität der Benutzerschnittstelle gegen Änderungen ■ physisch: Änderungen der Dateiorganisationen und Zugriffspfaden haben keinen Einfluß auf das konzeptuelle Schema ■ logisch: Änderungen am konzeptuellen und gewissen externen Schemata haben keine Auswirkungen auf andere externe Schemata und Anwendungsprogramme ◆ ◆ ◆ eventuell aber externe Schemata betroffen (Ändern von Attributen) eventuell aber Anwendungsprogramme betroffen (Rekompilieren der Anwendungsprogramme, eventuell Änderungen nötig) nötige Änderungen werden jedoch vom DBMS erkannt und überwacht Andreas Heuer, Gunter Saake – Datenbanken I 2-5 Ebenen-Architektur am Beispiel: Konzeptuelle Sicht ■ Relationale Darstellung AUTOR BUCH Name Nr BuchID Meier Schulze Ibsen ... 1 2 1 ... 4242 3745 3745 .... BuchID Titel Jahr ISBN 4242 3745 ... Datenbasen I UNIX X ... 1993 1998 ... 3-452-12 1-424-11 ... Andreas Heuer, Gunter Saake – Datenbanken I BUCH.BuchID 2-6 Ebenen-Architektur am Beispiel: Externe Sicht I ■ Daten in einer flachen Relation TITEL Name Nr Titel Jahr ISBN Meier Schulze Ibsen ... 1 2 1 ... Datenbasen I UNIX X UNIX X ... 1993 1998 1998 ... 1-424-11 3-452-12 3-452-12 ... Andreas Heuer, Gunter Saake – Datenbanken I 2-7 Ebenen-Architektur am Beispiel: Externe Sicht II ■ Daten in einer hierarchisch aufgebauten Relation TITEL Autoren { Autor } Titel Jahr ISBN Meier Datenbasen I 1993 1-424-11 Ibsen Schulze ... UNIX X 1998 3-452-12 ... ... ... Andreas Heuer, Gunter Saake – Datenbanken I 2-8 Ebenen-Architektur am Beispiel: Interne Darstellung Baumzugriff Autorname Ibsen Anderson Heuer Meier Schulze Hash-Tabelle Buchtitel Ibsen Ibsen Jagellovsk DeMonti .... Andreas Heuer, Gunter Saake – Datenbanken I 1 1 4 .. * * * * ... 101101 101110 101111 110000 110001 ... ... UNIX X Datenbasen 1 MZ4 antwortet nicht ... 2-9 System-Architekturen ■ Beschreibung der Komponenten eines Datenbanksystems ■ Standardisierung der Schnittstellen zwischen Komponenten Architekturvorschläge ■ ANSI-SPARC-Architektur ➞ Drei-Ebenen-Architektur ■ Fünf-Schichten-Architektur ➞ beschreibt Transformationskomponenten Andreas Heuer, Gunter Saake – Datenbanken I 2-10 ANSI-SPARC-Architektur I ■ ANSI: American National Standards Institute ■ SPARC: Standards Planning and Requirement Committee ■ Vorschlag von 1978 ■ Im Wesentlichen Grobarchitektur verfeinert ◆ ◆ ◆ Interne Ebene / Betriebssystem verfeinert Mehr Interaktive und Programmier-Komponenten Schnittstellen bezeichnet und normiert Andreas Heuer, Gunter Saake – Datenbanken I 2-11 ANSI-SPARC-Architektur II Externe Ebene Konzeptuelle Ebene Interne Ebene Anfragen Optimierer Auswertung Plattenzugriff Updates P1 DB-Operationen ... Einbettung Pn Masken Data Dictionary Sichtdefinition Dateiorganisation Datendefinition Andreas Heuer, Gunter Saake – Datenbanken I 2-12 Klassifizierung der Komponenten ■ Definitionskomponenten: Datendefinition, Dateiorganisation, Sichtdefinition ■ Programmier-Komponenten: DB-Programmierung mit eingebetteten DBOperationen ■ Benutzerkomponenten: Anwendungsprogramme, Anfrage und Update interaktiv ■ Transformationskomponenten: Optimierer, Auswertung, Plattenzugriffssteuerung ■ Data Dictionary (Datenwörterbuch): Aufnahme der Daten aus Definitionskomponenten, Versorgung der anderen Komponenten Andreas Heuer, Gunter Saake – Datenbanken I 2-13 Fünf-Schichten-Architektur ■ basierend auf Idee von Senko 1973 ■ Weiterentwicklung von Härder 1987 ■ Umsetzung im Rahmen des IBM-Prototyps System R ■ genauere Beschreibung der Transformationskomponenten ◆ ◆ schrittweise Transformation von Anfragen/Änderungen bis hin zu Zugriffen auf Speichermedien Definition der Schnittstellen zwischen Komponenten Andreas Heuer, Gunter Saake – Datenbanken I 2-14 Fünf-Schichten-Architektur: Schnittstellen I ■ mengenorientierte Schnittstelle: ◆ ■ satzorientierte Schnittstelle: ◆ ◆ ■ deklarative DML auf Tabellen, Sichten, Zeilen Sätze, logische Dateien, logische Zugriffspfade navigierender Zugriff interne Satzschnittstelle ◆ ◆ Sätze, Zugriffspfade Manipulation von Sätzen und Zugriffspfaden Andreas Heuer, Gunter Saake – Datenbanken I 2-15 Fünf-Schichten-Architektur: Schnittstellen I ■ Pufferschnittstelle ◆ ◆ ■ Datei- oder Seitenschnittstelle ◆ ■ Seiten, Seitenadressen Freigeben und Bereitstellen Hole Seite, Schreibe Seite Geräteschnittstelle ◆ ◆ Spuren, Zylinder Armbewegungen Andreas Heuer, Gunter Saake – Datenbanken I 2-16 Fünf-Schichten-Architektur: Funktionen Mengenorientierte Schnittstelle MOS Datensystem Übersetzung Zugriffskontrolle Zugriffspfadwahl Integritätskontrolle logische Datenstrukturen Satzorientierte Schnittstelle Zugriffssystem Data Dictionary Currency Pointer Sortierung Transaktionsverw. logische Zugriffspfade Interne Satzschnittstelle Speichersystem Record Manager Sperrverwaltung Zugriffspfadverw. Log / Recovery Pufferverwaltung Systempufferverwaltung mit Seitenwechselstrategie Betriebssystem Externspeicherverwaltung SOS ISS Speicherungsstrukturen SystempufferSchnittstelle SPS Seitenzuordnung, interne Seiten Dateischnittstelle DS Speicherzuordnung Geräteschnittstelle GS externer Speicher Andreas Heuer, Gunter Saake – Datenbanken I 2-17 Fünf-Schichten-Architektur: Objekte, Operationen Relationen Sichten MOS Datensystem externe Sätze Index-Strukturen Scans SOS SQL : select ... from ... QBE, QUEL, ... FIND NEXT satz STORE satz Zugriffssystem interne Sätze Bäume Hash-Tabellen ISS Speichere internen Satz s INSERT in B-Baum Speichersystem Segmente Seiten SPS Bereitstellen Seite j Freigeben Seite j Pufferverwaltung Dateien Blöcke DS Lies Block k Schreibe Block k Betriebssystem Zylinder Spuren GS Andreas Heuer, Gunter Saake – Datenbanken I Treiber 2-18 Einige konkrete Systeme Architekturüberblicke über ■ IMS (hierarchisch) ■ UDS (Netzwerk) ■ relationale Systeme ◆ ◆ ◆ ◆ ◆ ◆ DB2 SQL/DS ORACLE INGRES dBASE MS-Access Andreas Heuer, Gunter Saake – Datenbanken I 2-19 IMS IMS Information Management System (IBM, Mitte der 60er) Versionen ■ IMS/360 ■ IMS/VS (Virtual Storage) ◆ ◆ ■ IMS/VS/DB (Data Base); nur batch-orientiert IMS/VS/DC (Data Communication); auch dialogorientiert unter Betriebssystem DOS/VSE Andreas Heuer, Gunter Saake – Datenbanken I 2-20 IMS II ■ Begriffseinordnung Datenbank internes Schema Sicht Sichtdefinition interne (physische) Datenbanken DBD (Data Base Description) für jede Datenbank Menge logischer Datenbanken PSB (Program Specification Block), bestehend aus mehreren PCBs (Program Communication Blocks) Alles im Zugriff des Anwendungsprogrammierers ■ Sprache: DL/I (Data Language) ◆ ◆ eingebettet in PL/I, COBOL oder System/370 Assembler navigierend Andreas Heuer, Gunter Saake – Datenbanken I 2-21 IMS (Skizze) Konzeptuelle Ebene Externe Transf. P1 DL/I-Ops. ... Einbettung Pn PL/I Interne Ebene Interne Transf. PCBs DBDs Andreas Heuer, Gunter Saake – Datenbanken I 2-22 UDS UDS ■ Betriebssystem BS 2000 für Siemens 7.100 bis 7.500 ■ Kein Optimierer, sonst Systemaufbau entsprechend ANSI-SPARC ■ DML-Einbettung in COBOL, Assembler, FORTRAN, PASCAL ■ Universelles Datenbank-System (Siemens, 1976) Begriffseinordnung DDL VDL SSL IQL Andreas Heuer, Gunter Saake – Datenbanken I Schema-DDL Subschema-DDL SSL IQS 2-23 Relationale Systeme Gemeinsame Merkmale ■ Drei-Ebenen-Architektur nach ANSI-SPARC ■ einheitliche Datenbanksprache (SQL; Structured Query Language) ■ Einbettung dieser Sprache in kommerzielle Programmiersprachen ■ diverse Werkzeuge für Definition, Anfrage und Darstellung von Daten; Entwurf von Datenbank-Anwendungsprogrammen; Benutzer-Interaktion ■ kontrollierter Mehrbenutzerbetrieb, Datenschutz- und Datensicherheitsmechanismen Andreas Heuer, Gunter Saake – Datenbanken I 2-24 Relationale Systeme II Beispiele ■ DB2 (SQL/DS) ■ INGRES ORACLE ■ DB2 Entwicklung System R ■ MS-Access Andreas Heuer, Gunter Saake – Datenbanken I dBASE ■ Pseudo-RDBS (keine drei Ebenen, kein Mehrbenutzerbetrieb, ) 2-25 Anwendungs-Architekturen Benutzerkomponenten Graphische Oberfl. /QBE PL-Einbind. Interaktives SQL 4GLs Embedded SQL SpezialKomponenten ReportGener. SQL Kernsystem Andreas Heuer, Gunter Saake – Datenbanken I Export ... System / System Kopplung 2-26 Abarbeiten eines DB-Anwendungsprogrammes am Beispiel DB2 ■ Tabelle AUSLEIHE ■ Spalten: NAME, INVENTARNR ■ SQL-Anfrage: NAME AUSLEIHE INVENTARNR = 82; soll in C-Programm eingebettet werden. Andreas Heuer, Gunter Saake – Datenbanken I 2-27 Abarbeiten eines DB-Anwendungsprogrammes II ■ Aus Benutzer- / Anwendungsprogrammierer-Sicht besteht DB2 aus ◆ ◆ ◆ ◆ Precompiler Binder Laufzeitüberwachungssystem Dateiverwaltungssystem Andreas Heuer, Gunter Saake – Datenbanken I 2-28 DB2-Bausteine ◆ ◆ ■ ◆ Precompiler für C, PL/I, COBOL, ■ Quellprogramm analysieren Alle SQL-Statements durch Unterprogrammaufrufe ersetzen Konstruktion eines Database Request Modules (DBRM) für jedes SQLStatement, der Eingabe für Binder sein wird Binder ◆ ◆ ◆ Ein oder mehrere DBRMs zu einem “Anwendungsplan” übersetzen Der Anwendungsplan enthält ausführbaren Code zur Verwirklichung des ursprünglichen SQL-Statements Der ausführbare Code enthält Betriebssystemaufrufe zum Dateiverwaltungssystem Andreas Heuer, Gunter Saake – Datenbanken I 2-29 DB2-Bausteine II ■ Laufzeitüberwachungssystem ◆ ◆ ■ Überwacht die Ausführung des Anwendungsprogramms Falls Anwendungsprogramm auf SQL-Statement stößt, wählt Laufzeitüberwachungssystem Teil eines passenden Anwendungsplanes aus Dateiverwaltungssystem ◆ Andreas Heuer, Gunter Saake – Datenbanken I ◆ Verwirklicht schnellen Zugriff auf Daten Z.B. Suchprozeduren, Updateoperationen, Indexverwaltung, 2-30 Abarbeitung Anwendungsprogramm (Skizze) Quellprogramm modifiziertes Quellprogramm Precompiler DBRM Compiler Objektprogramm Linker Hauptspeicher Binder Laufzeitsystem ausführbarer Code Teil vom Code Teil vom Ausf.plan Dateiverwaltungssystem Andreas Heuer, Gunter Saake – Datenbanken I AusführungsPlan Datenbank 2-31