Schema-Architektur I Schema-Architektur III Zusammenhang zwischen externes Schema 1 ■ Internen Schema (Festlegung der Dateiorganisationen und Zugriffspfade) ■ Externen Schema (Ergebnis der Sichtdefinition) ■ Anwendungsprogrammen (Ergebnis der Anwendungsprogrammierung) konzeptuelles Schema Datendarstellung Konzeptuellen Schema (Ergebnis der Datendefinition) externes Schema N Anfragebearbeitung ■ ... internes Schema Andreas Heuer, Gunter Saake – Datenbanken I 2-2 Andreas Heuer, Gunter Saake – Datenbanken I 2. Architekturen von DBS Schema-Architektur II ■ ➠ Schema-Architektur Trennung Schema — Instanz ◆ ➠ System-Architekturen ◆ ■ ➠ Konkrete System-Architekturen ◆ ◆ 2-1 Schema (Metadaten, Datenbeschreibungen) Instanz (Anwenderdaten, Datenbankzustand oder -ausprägung) Datenbankschema besteht aus ➠ Anwendungsarchitekturen Andreas Heuer, Gunter Saake – Datenbanken I 2-4 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 Ebenen-Architektur am Beispiel: Konzeptuelle Sicht ■ Ebenen-Architektur am Beispiel: Externe Sicht II Relationale Darstellung AUTOR BUCH ■ Name Nr BuchID BUCH.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 TITEL 2-6 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 ◆ ◆ Titel Jahr ISBN Meier Datenbasen I 1993 1-424-11 Ibsen Schulze ... UNIX X 1998 3-452-12 ... ... ... 2-8 Ebenen-Architektur am Beispiel: Externe Sicht I ■ ◆ Autoren { Autor } Andreas Heuer, Gunter Saake – Datenbanken I Datenunabhängigkeit ■ Daten in einer hierarchisch aufgebauten Relation 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 ... 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 Andreas Heuer, Gunter Saake – Datenbanken I 2-7 System-Architekturen ANSI-SPARC-Architektur II Externe Ebene ■ Beschreibung der Komponenten eines Datenbanksystems ■ Standardisierung der Schnittstellen zwischen Komponenten Konzeptuelle Ebene Interne Ebene Anfragen Optimierer Auswertung Plattenzugriff Updates Architekturvorschläge ■ ANSI-SPARC-Architektur ➞ Drei-Ebenen-Architektur ■ Fünf-Schichten-Architektur ➞ beschreibt Transformationskomponenten P1 DB-Operationen ... Einbettung Pn Masken Data Dictionary Sichtdefinition Dateiorganisation Datendefinition Andreas Heuer, Gunter Saake – Datenbanken I 2-10 Andreas Heuer, Gunter Saake – Datenbanken I Ebenen-Architektur am Beispiel: Interne Darstellung 2-12 ANSI-SPARC-Architektur I Baumzugriff Autorname Ibsen Anderson Heuer Meier Schulze ■ ANSI: American National Standards Institute ■ SPARC: Standards Planning and Requirement Committee ■ Vorschlag von 1978 ■ Im Wesentlichen Grobarchitektur verfeinert Hash-Tabelle Buchtitel Ibsen Ibsen Jagellovsk DeMonti .... 1 1 4 .. * * * * ... 101101 101110 101111 110000 110001 ... ... UNIX X Datenbasen 1 MZ4 antwortet nicht ... ◆ ◆ ◆ Andreas Heuer, Gunter Saake – Datenbanken I 2-9 Interne Ebene / Betriebssystem verfeinert Mehr Interaktive und Programmier-Komponenten Schnittstellen bezeichnet und normiert Andreas Heuer, Gunter Saake – Datenbanken I 2-11 Fünf-Schichten-Architektur ■ basierend auf Idee von Senko 1973 ■ Weiterentwicklung von Härder 1987 Fünf-Schichten-Architektur: Schnittstellen I ■ Pufferschnittstelle ◆ ◆ ■ Umsetzung im Rahmen des IBM-Prototyps System R ■ genauere Beschreibung der Transformationskomponenten ■ Datei- oder Seitenschnittstelle ◆ ◆ ◆ schrittweise Transformation von Anfragen/Änderungen bis hin zu Zugriffen auf Speichermedien Definition der Schnittstellen zwischen Komponenten ■ 2-14 ◆ ■ ■ 2-16 Fünf-Schichten-Architektur: Schnittstellen I Definitionskomponenten: Datendefinition, Dateiorganisation, Sichtdefinition Programmier-Komponenten: DB-Programmierung mit eingebetteten DBOperationen ■ ■ Transformationskomponenten: Optimierer, Auswertung, Plattenzugriffssteuerung ■ Data Dictionary (Datenwörterbuch): Aufnahme der Daten aus Definitionskomponenten, Versorgung der anderen Komponenten 2-13 mengenorientierte Schnittstelle: ◆ ■ Benutzerkomponenten: Anwendungsprogramme, Anfrage und Update interaktiv Andreas Heuer, Gunter Saake – Datenbanken I Spuren, Zylinder Armbewegungen Andreas Heuer, Gunter Saake – Datenbanken I Klassifizierung der Komponenten ■ Hole Seite, Schreibe Seite Geräteschnittstelle ◆ Andreas Heuer, Gunter Saake – Datenbanken I Seiten, Seitenadressen Freigeben und Bereitstellen 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: Funktionen Fünf-Schichten-Architektur: Objekte, Operationen Mengenorientierte MOS Schnittstelle Datensystem Übersetzung Zugriffskontrolle Zugriffspfadwahl Integritätskontrolle Data Dictionary Currency Pointer Sortierung Transaktionsverw. Record Manager Sperrverwaltung Zugriffspfadverw. Log / Recovery Datensystem externe Sätze Index-Strukturen Scans SOS ISS interne Sätze Bäume Hash-Tabellen SPS Segmente Seiten Speicherungsstrukturen SystempufferSchnittstelle Pufferverwaltung Systempufferverwaltung mit FIND NEXT satz STORE satz SOS Zugriffssystem logische Zugriffspfade Interne Satzschnittstelle Speichersystem SQL : select ... from ... QBE, QUEL, ... MOS logische Datenstrukturen Satzorientierte Schnittstelle Zugriffssystem Relationen Sichten Speichere internen Satz s INSERT in B-Baum ISS Speichersystem Bereitstellen Seite j Freigeben Seite j SPS Seitenzuordnung, interne Seiten Seitenwechselstrategie Pufferverwaltung Dateischnittstelle Betriebssystem Externspeicherverwaltung DS Dateien Blöcke Speicherzuordnung Lies Block k Schreibe Block k DS Betriebssystem Geräteschnittstelle GS Zylinder Spuren externer Speicher Andreas Heuer, Gunter Saake – Datenbanken I 2-17 GS Treiber Andreas Heuer, Gunter Saake – Datenbanken I 2-18 IMS IMS Information Management System (IBM, Mitte der 60er) IMS/360 Versionen ■ IMS/VS/DB (Data Base); nur batch-orientiert IMS/VS/DC (Data Communication); auch dialogorientiert IMS/VS (Virtual Storage) ◆ ◆ unter Betriebssystem DOS/VSE ■ ■ Andreas Heuer, Gunter Saake – Datenbanken I IMS (hierarchisch) Einige konkrete Systeme ■ UDS (Netzwerk) Architekturüberblicke über ■ relationale Systeme DB2 SQL/DS ORACLE INGRES dBASE MS-Access ■ ◆ ◆ ◆ ◆ ◆ ◆ Andreas Heuer, Gunter Saake – Datenbanken I 2-20 2-19 IMS (Skizze) Konzeptuelle Ebene Externe Transf. P1 DL/I-Ops. ... Einbettung Pn PL/I Relationale Systeme Interne Ebene Gemeinsame Merkmale Interne Transf. PCBs ■ 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 DBDs Andreas Heuer, Gunter Saake – Datenbanken I 2-22 Andreas Heuer, Gunter Saake – Datenbanken I IMS II ■ UDS Begriffseinordnung 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) eingebettet in PL/I, COBOL oder System/370 Assembler navigierend Andreas Heuer, Gunter Saake – Datenbanken I Universelles Datenbank-System (Siemens, 1976) ■ 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 DDL VDL SSL IQL Sprache: DL/I (Data Language) ◆ UDS Begriffseinordnung Alles im Zugriff des Anwendungsprogrammierers ◆ ■ Datenbank internes Schema ■ 2-24 2-21 Andreas Heuer, Gunter Saake – Datenbanken I Schema-DDL Subschema-DDL SSL IQS 2-23 Anwendungs-Architekturen Abarbeiten eines DB-Anwendungsprogrammes II Benutzerkomponenten ■ Aus Benutzer- / Anwendungsprogrammierer-Sicht besteht DB2 aus Graphische Oberfl. /QBE PL-Einbind. Interaktives SQL 4GLs Embedded SQL ◆ ◆ SpezialKomponenten ◆ ◆ ReportGener. Export SQL Precompiler Binder Laufzeitüberwachungssystem Dateiverwaltungssystem ... System / System Kopplung Kernsystem Andreas Heuer, Gunter Saake – Datenbanken I 2-26 Andreas Heuer, Gunter Saake – Datenbanken I Abarbeiten eines DB-Anwendungsprogrammes Relationale Systeme II Beispiele ■ am Beispiel DB2 DB2 (SQL/DS) ■ INGRES ■ Tabelle AUSLEIHE ■ Spalten: NAME, INVENTARNR ■ SQL-Anfrage: ORACLE ■ DB2 Entwicklung System R Pseudo-RDBS (keine drei Ebenen, kein Mehrbenutzerbetrieb, ) ■ dBASE ■ MS-Access Andreas Heuer, Gunter Saake – Datenbanken I 2-28 NAME AUSLEIHE INVENTARNR = 82; soll in C-Programm eingebettet werden. 2-25 Andreas Heuer, Gunter Saake – Datenbanken I 2-27 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 DB2-Bausteine ◆ ◆ ■ ◆ Quellprogramm Precompiler für C, PL/I, COBOL, ■ Abarbeitung Anwendungsprogramm (Skizze) 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 ◆ ◆ ◆ 2-29 Precompiler DBRM Compiler Objektprogramm Linker 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 modifiziertes Quellprogramm 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