Warum Datenbank-Vorlesung? ■ Datenbanksysteme als Basis moderner Softwaresysteme: ◆ Web-basierte Systeme (eBay, Amazon, . . . ) ◆ ERP-Systeme (SAP R/3), CRM-Systeme, Finanzsysteme ◆ administrative Anwendungen ◆ wiss. Anwendungen (Sloan Sky Survey, NASA Earth Observation System, Human Genom Project, . . . ) ■ Querbezüge zu anderen Bereichen der Informatik: ◆ Modellierung, Datenstrukturen, Theorie, Betriebssysteme/Verteilte Systeme, Sicherheit, Multimedia, . . . Vorlesung Datenbanken Martin-Luther-Universität Halle, WS 02/03 Kai-Uwe Sattler [email protected] VL Datenbanken I – 0–1 Warum Datenbank-Vorlesung? /2 VL Datenbanken I – 0–1 Überblick ■ große Herausforderungen: ◆ Verwaltung von Daten im TB-Bereich, viele Nutzer ◆ weltweit verteilte Datenbestände ◆ Multimedia-Inhalte ◆ Hochverfügbarkeit, Sicherheit ■ DB-Kenntnisse unverzichtbar für *Informatik-Berufe: ◆ Administration, Planung/Entwurf, Entwicklung, Nutzung VL Datenbanken I – 0–2 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Grundlegende Konzepte und Architekturen Datenbankmodelle für den Entwurf Datenbankmodelle für die Realisierung Datenbankentwurf und Datendefinition Anfrage- und Änderungsoperationen Relationale Datenbanksprachen Datenbank-Anwendungsprogrammierung Integrität und Trigger Sichten, Datenschutz Dateiorganisation und Indexstrukturen Weitere DB-Konzepte VL Datenbanken I – 0–3 1. Grundlegende Konzepte Literatur ■ Heuer, A., Saake, G.: Datenbanken — Konzepte und Sprachen. 2. Aufl., mitp-Verlag, Bonn, Januar 2000 ■ Vossen, G.; Datenbankmodelle, Datenbanksprachen und Datenbankmanagement-Systeme. Oldenbourg, München, 2000 ■ Heuer, A., Saake, G., Sattler, K.; Datenbanken kompakt mitp-Verlag, Bonn, 2001 ■ Elmasri, R.; Navathe, S.B.; Fundamentals of Database Systems. Addison-Wesley, 1999 ■ Date, C.J.; An Introduction to Database Systems Addison-Wesley, Reading, 1999 ■ Motivation und Historie ■ Komponenten und Funktionen ■ Einsatzgebiete und Grenzen ■ Entwicklungslinien ■ Schema-Architektur ■ System-Architekturen VL Datenbanken I – 0–4 Ohne Datenbanken: Datenredundanz ■ ■ Basis- oder Anwendungssoftware verwaltet ihre eigenen Daten in ihren eigenen (Datei-)Formaten ◆ Textverarbeitung: Texte, Artikel und Adressen ◆ Buchhaltung: Artikel, Adressen ◆ Lagerverwaltung: Artikel, Aufträge ◆ Auftragsverwaltung: Aufträge, Artikel, Adressen ◆ CAD-System: Artikel, Technische Bausteine VL Datenbanken I – 1–1 Ohne Datenbanken: Datenredundanz II ■ Andere Software-Systeme können große Mengen von Daten nicht effizient verarbeiten ■ Mehrere Benutzer oder Anwendungen können nicht parallel auf den gleichen Daten arbeiten, ohne sich zu stören ■ Anwendungsprogrammierer / Benutzer können Anwendungen nicht programmieren / benutzen, ohne ◆ interne Darstellung der Daten ◆ Speichermedien oder Rechner zu kennen (Datenunabhängigkeit nicht gewährleistet) ■ Datenschutz und Datensicherheit sind nicht gewährleistet Daten sind redundant: mehrfach gespeichert; Probleme: Verschwendung von Speicherplatz, „Vergessen“ von Änderungen; keine zentrale, „genormte“ Datenhaltung VL Datenbanken I – 1–2 VL Datenbanken I – 1–3 Mit Datenbanken: Datenintegration ■ Historie Die gesamte Basis- und Anwendungssoftware arbeitet auf denselben Daten, z.B. Adressen und Artikel werden nur einmal gespeichert ◆ Datenbanksysteme können große Datenmengen effizient verwalten (Anfragesprachen, Optimierung, Interne Ebene) ◆ Benutzer können parallel auf Datenbanken arbeiten (Transaktionskonzept) ◆ Datenunabhängigkeit durch 3-Ebenen-Konzept ◆ Datenschutz (kein unbefugter Zugriff) und Datensicherheit (kein ungewollter Datenverlust) werden vom System gewährleistet ■ Anfang 60er Jahre: elementare Dateien, anwendungsspezifische Datenorganisation (geräteabhängig, redundant, inkonsistent) ■ Ende 60er Jahre: Dateiverwaltungssysteme (SAM, ISAM) mit Dienstprogrammen (Sortieren) (gerateunabhängig, aber redundant und inkonsistent) ■ 70er Jahre: Datenbanksysteme (Geräte- und Datenunabhängigkeit, redundanzfrei, konsistent) VL Datenbanken I – 1–4 VL Datenbanken I – 1–5 Prinzipien Historie von RDBMS ■ 1970: Ted Codd (IBM) → Relationenmodell als konzeptionelle Grundlage relationaler DBS ■ 1974: System R (IBM) → erster Prototyp eines RDBMS ◆ zwei Module: RDS, RSS; ca. 80.000 LOC (PL/1, PL/S, Assembler), ca. 1,2 MB Codegröße ◆ Anfragesprache SEQUEL ◆ erste Installation 1977 ■ 1975: University of California at Berkeley (UCB) → Ingres ◆ Anfragesprache QUEL ◆ Vorgänger von Postgres, Sybase, . . . ■ 1979: Oracle Version 2 ■ DBMS: Datenbank-Management-System ■ DBS: Datenbanksystem (DBMS + Datenbank) Anwendung 1 ... Anwendung n DBMS Datenbank VL Datenbanken I – 1–6 VL Datenbanken I – 1–7 Prinzipien II ■ Prinzipien III Grundmerkmale ◆ verwalten persistente (langfristig zu haltende) Daten ◆ verwalten große Datenmengen effizient ◆ Datenbankmodell, mit dessen Konzepten alle Daten einheitlich beschrieben werden (Integration) ◆ Operationen und Sprachen (DDL, IQL, DML, . . . ) deskriptiv, getrennt von einer Programmiersprache ◆ Transaktionskonzept, Concurrency Control: logisch zusammenhängende Operationen atomar (unteilbar), Auswirkungen langlebig, können parallel durchgeführt werden ◆ Datenschutz, Datenintegrität (Konsistenz), Datensicherheit ■ Grundprinzip moderner Datenbanksysteme ◆ 3-Ebenen-Architektur (physische Datenunabhängigkeit, logische Datenunabhängigkeit) ◆ Trennung zwischen Schema (etwa Tabellenstruktur) und Instanz (etwa Tabelleninhalt) angelehnt an 9 Codd’sche Regeln: VL Datenbanken I – 1–8 Die neun Codd’schen Regeln VL Datenbanken I – 1–9 Konzeptuelle Ebene: Relationenmodell I 1. Integration: einheitliche, nichtredundante Datenverwaltung 2. Operationen: Speichern, Suchen, Ändern 3. Katalog: Zugriffe auf Datenbankbeschreibungen im Data Dictionary 4. Benutzersichten 5. Integritätssicherung: Korrektheit des Datenbankinhalts 6. Datenschutz: Ausschluß unauthorisierter Zugriffe 7. Transaktionen: mehrere DB-Operationen als Funktionseinheit 8. Synchronisation: parallele Transaktionen koordinieren 9. Datensicherung: Wiederherstellung von Daten nach Systemfehlern VL Datenbanken I – 1–10 Konzeptuell ist die Datenbank eine Menge von Tabellen AUSLEIH INV.NR NAME 4711 Meyer 1201 Schulz 0007 Müller 4712 BUCH Meyer INV.NR TITEL ISBN 0007 Dr. No 3-125 AUTOR James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 Vossen 4712 Datenbanken 3-891 Ullman 4717 PASCAL 3-999 Wirth Tabellen = „Relationen“ VL Datenbanken I – 1–11 Konzeptuelle Ebene: Relationenmodell II ■ Fett geschriebene Zeilen: Relationenschema ■ Weitere Einträge in der Tabelle: Relation ■ Eine Zeile der Tabelle: Tupel ■ Eine Spaltenüberschrift: Attribut Relationenname R A1 ... ... Integritätsbedingungen ■ Relationenschema + lokale Integritätsbedingungen ◆ INVENTARNR ist Schlüssel für BUCH ◆ d.h. INVENTARNR darf nicht doppelt vergeben werden ■ Datenbankschema ist Menge von Relationenschemata + globale Integritätsbedingungen ◆ INVENTARNR in AUSLEIH ist Fremdschlüssel bezüglich BUCH ◆ d.h.: INVENTARNR taucht in einem anderen Relationenschema als Schlüssel auf Attribute An } Relationenschema ... ... Relation Tupel VL Datenbanken I – 1–12 Anfrageoperationen I ■ ■ Anfrageoperationen II SELEKTION: Zeilen (Tupel) auswählen σNAME=’Meyer’ (AUSLEIH) VL Datenbanken I – 1–13 ■ INVENTARNR NAME 4711 Meyer 4712 Meyer πINVENTARNR,TITEL (BUCH) 1 σNAME=’Meyer’ (AUSLEIH) PROJEKTION: Spalten (Attribute) auswählen INVENTARNR πINVENTARNR, TITEL (BUCH) VERBUND (JOIN): Tabellen verknüpfen über gleichbenannte Spalten und gleiche Werte ergibt: TITEL INVENTARNR 0007 Dr. No 1201 Objektbanken 4711 Datenbanken 4712 Datenbanken 4717 PASCAL Achtung: doppelte Tupel werden entfernt! VL Datenbanken I – 1–14 TITEL NAME 4711 Datenbanken Meyer 4712 Datenbanken Meyer ■ Weitere Operationen: Vereinigung, Differenz, Durchschnitt, Umbenennung ■ Alle Operationen beliebig kombinierbar („Algebra“) VL Datenbanken I – 1–15 Sprachen und Sichten I ■ Sprachen und Sichten II Anfragesprache ■ Änderungs-Komponente: interaktive Möglichkeit ◆ Tupel einzugeben ◆ Tupel zu löschen ◆ Tupel zu ändern ; Lokale und globale Integritätsbedingungen werden geprüft! ■ Definition von Benutzersichten ◆ Häufig vorkommende Datenbankabfragen können unter einem „Sichtnamen“ als „virtuelle“ Tabelle gespeichert werden. Interaktive Möglichkeit, Datenbankabfragen zu formulieren und zu starten ◆ Relationenalgebra + Funktionen (SUM, MAX, MIN, COUNT, . . . ) + arithmetische Operationen ◆ eventuell graphisch „verpackt“ ◆ ■ SQL als Standard select BUCH.INVENTARNR, TITEL, NAME from BUCH, AUSLEIH where NAME = ’Meyer’ and BUCH.INVENTARNR = AUSLEIH.INVENTARNR VL Datenbanken I – 1–16 Optimierer I VL Datenbanken I – 1–17 Optimierer: Algebraische Optimierung Problem: Finde einen Relationenalgebra-Ausdruck, der äquivalent ist („das gleiche Ergebnis liefert“) wie der gegebene, aber effizienter auszuwerten ist VL Datenbanken I – 1–18 ■ allgemeine Regel: 1. σA=Konst ( REL1 1 REL2 ) und A aus REL1 2. σA=Konst (REL1) 1 REL2 sind äquivalent ■ allgemeine Strategie: Selektionen möglichst früh, da sie Tupelanzahlen in Relationen verkleinern ■ Beispiel: REL1 100 Tupel, REL2 50 Tupel intern: Tupel sequentiell abgelegt 1. 5000 (1) + 5000 (σ ) = 10000 Operationen 2. 100 (σ ) + 10 · 50 (1) = 600 Operationen falls 10 Tupel in REL1 die Bedingung A = Konst erfüllen VL Datenbanken I – 1–19 Notwendigkeit für Zugriffspfade Interne Strukturen ■ Relation kann intern als Datei organisiert werden: Heap, ungeordnet Sequentiell, geordnet nach bestimmter Spalte ◆ Hash-organisiert, gestreut gespeichert, Adreßberechnung durch Formel ◆ Baumartig, Tupel in einem Suchbaum angeordnet ■ Beispiel: Tabelle mit 10 GB Daten, Festplattentransferrate ca. 10 MB/s ■ Operation: Suchen eines Tupels (Selektion) ■ Implementierung: sequentielles Durchsuchen ■ Aufwand: 10.240/10 = 1.024 sec. ≈ 17 min. ◆ ◆ ■ Zusätzliche Zugriffspfade ◆ statischer Index, einstufig oder mehrstufig ◆ dynamischer Index beliebiger Wechsel zwischen Dateiorganisationen/ Zugriffspfaden möglich je schneller die Abfrage, desto langsamer der Update VL Datenbanken I – 1–20 Zugriffe auf Plattenseiten ■ ■ VL Datenbanken I – 1–21 Einsatzgebiete und Grenzen Jede Operation (σ , π , 1, . . . ) wird in optimale Folge von Seitenzugriffen umgesetzt ◆ Ausnutzung von Zugriffspfaden und Dateiorganisation, wenn es dem System sinnvoll erscheint ◆ Bestimmung der Reihenfolge der Zugriffe nach vorliegenden Zugriffspfaden Beispiel: σNAME=’Meyer’ (σINVENTARNUMMER>4500 (AUSLEIH)) ◆ Annahme: auf NAME ist ein Zugriffspfad definiert, auf INVENTARNUMMER nicht ◆ System ändert die Reihenfolge der Selektionen!! VL Datenbanken I – 1–22 ■ Klassische Einsatzgebiete: viele Objekte (15000 Bücher, 300 Benutzer, 100 Ausleihvorgänge pro Woche, . . . ) ◆ wenige Objekttypen (BUCH, BENUTZER, AUSLEIHUNG) ◆ etwa Buchhaltungssysteme, Auftragserfassungssysteme, Bibliothekssysteme, . . . ◆ ■ Aktuelle Anwendungen: ◆ E-Commerce, entscheidungsunterstützende Systeme (Data Warehouses, OLAP), NASA’s Earth Observation System (Petabyte-Datenbanken), Data Mining VL Datenbanken I – 1–23 Einsatzgebiete und Grenzen II Datenbankgrößen Normalerweise sind herkömmliche Datenbanksysteme überfordert mit: Sloan Digital Sky Survey 40 TB Himmelsdaten (Bilder und Objektinformationen); bis 2004 WalMart Data Warehouse 24 TB Produktinfos (Verkäufe etc.) von 2.900 Märkten; 50.000 Anfragen/Woche US Library of Congress 10-20 TB nicht digitalisiert Indexierbares WWW (1999) 6 TB ca. 800 Mill. Dokumente Microsofts TerraServer 3,5 TB unkomprimierte Bilder/Karten (komprimiert: ca. 1 TB); 174 Mill. Tupel ■ CAD- oder andere technische Anwendungen (viele Objekte, viele Objekttypen, sehr strukturierte Objekte) ◆ ABER: Objektorientierte Datenbanksysteme ■ Expertensysteme (wenige Objekte, viele Objekttypen, kompliziertere Operationen) ◆ ABER: Deduktive Datenbanksysteme VL Datenbanken I – 1–24 Datenbankgrößen (II) VL Datenbanken I – 1–25 Entwicklungslinien: 60er Jahre SAP R/3-Installation der Deutschen Telekom AG (1998) ■ Financial Accounting: Rechnungen, Zahlungsaufforderungen, Lastschriften, Mahnungen etc. ■ 15 SAP R/3-Systeme; jedes ◆ verarbeitet 200.000 Rechnungen, 12.000 Mahnungen, 10.000 Änderungen von Kundendaten pro Tag ◆ bis zu jeweils 1000 Nutzer gleichzeitig ■ über 13.000 Datenbanktabellen ■ Hardware: 51 Unix Enterprise Servern, 34 EMC-Speichersysteme (30 TB), 68 Magnetbandsysteme für Backup (Backup in 2h) VL Datenbanken I – 1–26 ■ DBS basierend auf hierarchischem Modell, Netzwerkmodell ◆ Zeigerstrukturen zwischen Daten ◆ Schwache Trennung interne / konzeptuelle Ebene ◆ Navigierende DML ◆ Trennung DML / Programmiersprache VL Datenbanken I – 1–27 Entwicklungslinien: 70er und 80er Jahre ■ Relationale Datenbanksysteme ◆ Daten in Tabellenstrukturen ◆ 3-Ebenen-Konzept ◆ Deklarative DML ◆ Trennung DML / Programmiersprache Entwicklungslinien: (80er und) 90er Jahre ■ Wissensbanksysteme ◆ Daten in Tabellenstrukturen ◆ Stark deklarative DML, integrierte Datenbankprogrammiersprache ■ Objektorientierte Datenbanksysteme ◆ Daten in komplexeren Objektstrukturen (Trennung Objekt und seine Daten) ◆ Deklarative oder navigierende DML ◆ Oft integrierte Datenbankprogrammiersprache ◆ Oft keine vollständige Ebenentrennung VL Datenbanken I – 1–28 Entwicklungslinien: heute ■ VL Datenbanken I – 1–29 Schema-Architektur I Unterstützung für spezielle Anwendungen ◆ Multimediadatenbanken: Verwaltung multimedialer Objekte (Bilder, Audio, Video) ◆ XML-Datenbanken: Verwaltung semistrukturierter Daten (XML-Dokumente) ◆ Verteilte Datenbanken: Verteilung von Daten auf verschiedene Rechnerknoten ◆ Föderierte Datenbanken, Multidatenbanken, Mediatoren: Integration von Daten aus heterogenen Quellen (Datenbanken, Dateien, Web-Quellen) ◆ Mobile Datenbanken: Datenverwaltung auf Kleinstgeräten (PDA, Handy, . . . ) VL Datenbanken I – 1–30 Zusammenhang zwischen ■ Konzeptuellen Schema (Ergebnis der Datendefinition) ■ Internen Schema (Festlegung der Dateiorganisationen und Zugriffspfade) ■ Externen Schema (Ergebnis der Sichtdefinition) ■ Anwendungsprogrammen (Ergebnis der Anwendungsprogrammierung) VL Datenbanken I – 1–31 Schema-Architektur II ■ externes Schema 1 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) ... externes Schema N konzeptuelles Schema internes Schema VL Datenbanken I – 1–32 Datenunabhängigkeit I VL Datenbanken I – 1–33 Datenunabhängigkeit II ■ Stabilität der Benutzerschnittstelle gegen Änderungen ■ physisch: Änderungen der Dateiorganisationen und Zugriffspfade haben keinen Einfluß auf das konzeptuelle Schema ■ Datendarstellung Trennung Schema — Instanz ◆ Schema (Metadaten, Datenbeschreibungen) ◆ Instanz (Anwenderdaten, Datenbankzustand oder -ausprägung) Anfragebearbeitung ■ Schema-Architektur III ■ eventuell externe Schemata betroffen (Ändern von Attributen) ◆ eventuell Anwendungsprogramme betroffen (Rekompilieren der Anwendungsprogramme, eventuell Änderungen nötig) ◆ logisch: Änderungen am konzeptuellen und gewissen externen Schemata haben keine Auswirkungen auf andere externe Schemata und Anwendungsprogramme ■ VL Datenbanken I – 1–34 mögliche Auswirkungen von Änderungen am konzeptuellen Schema: nötige Änderungen werden jedoch vom DBMS erkannt und überwacht VL Datenbanken I – 1–35 Ebenen-Architektur am Beispiel I ■ Ebenen-Architektur am Beispiel II 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 ... ■ Externe Sicht: Daten in einer flachen Relation TITEL BUCH.BuchID 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 ... VL Datenbanken I – 1–36 Ebenen-Architektur am Beispiel III ■ Ebenen-Architektur am Beispiel IV Externe Sicht: Daten in einer hierarchisch aufgebauten Relation TITEL Autoren { Autor } Titel Jahr VL Datenbanken I – 1–37 ■ Interne Darstellung Baumzugriff Autorname Ibsen ISBN Meier Datenbasen I 1993 1-424-11 Ibsen Schulze ... UNIX X 1998 3-452-12 ... ... ... Anderson Heuer Meier Schulze Hash-Tabelle Buchtitel Ibsen Ibsen Jagellovsk DeMonti .... VL Datenbanken I – 1–38 1 1 4 .. * * * * ... 101101 101110 101111 110000 110001 ... ... UNIX X Datenbasen 1 MZ4 antwortet nicht ... VL Datenbanken I – 1–39 System-Architekturen ANSI-SPARC-Architektur I ■ Beschreibung der Komponenten eines Datenbanksystems ■ Standardisierung der Schnittstellen zwischen Komponenten Architekturvorschläge ■ ANSI-SPARC-Architektur ; Drei-Ebenen-Architektur ■ Fünf-Schichten-Architektur ; beschreibt Transformationskomponenten ■ 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 VL Datenbanken I – 1–40 Klassifizierung der Komponenten ANSI-SPARC-Architektur II Externe Ebene Konzeptuelle Ebene Interne Ebene Anfragen Optimierer Auswertung VL Datenbanken I – 1–41 Plattenzugriff ■ Definitionskomponenten: Datendefinition, Dateiorganisation, Sichtdefinition ■ Programmierkomponenten: DB-Programmierung mit eingebetteten DB-Operationen ■ Benutzerkomponenten: Anwendungsprogramme, Anfrage und Update interaktiv ■ Transformationskomponenten: Optimierer, Auswertung, Plattenzugriffssteuerung ■ Data Dictionary (Datenwörterbuch): Aufnahme der Daten aus Definitionskomponenten, Versorgung der anderen Komponenten Updates P1 DB-Operationen ... Einbettung Pn Masken Data Dictionary Sichtdefinition Dateiorganisation Datendefinition VL Datenbanken I – 1–42 VL Datenbanken I – 1–43 Fünf-Schichten-Architektur 5-Schichten-Architektur: Schnittstellen I ■ 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 ■ mengenorientierte Schnittstelle ◆ deklarative DML auf Tabellen, Sichten, Zeilen ■ satzorientierte Schnittstelle ◆ Sätze, logische Dateien, logische Zugriffspfade ◆ navigierender Zugriff ■ interne Satzschnittstelle ◆ Sätze, Zugriffspfade ◆ Manipulation von Sätzen und Zugriffspfaden VL Datenbanken I – 1–44 5-Schichten-Architektur: Schnittstellen II ■ ■ ■ Pufferschnittstelle ◆ Seiten, Seitenadressen ◆ Freigeben und Bereitstellen VL Datenbanken I – 1–45 5-Schichten-Architektur: Funktionen Mengenorientierte Schnittstelle (MOS) Datensystem Übersetzung, Zugriffspfadauswahl, Zugriffskontrolle, Integritätskontrolle Zugriffssystem Data Dictionary, Currency Pointer, Sortierung, Transaktionsverwaltung Speichersystem Record Manager, Zugriffspfadverwaltung, Sperrverwaltung, Log/Recovery Pufferverwaltung Systempufferverwaltung mit Seitenwechselstrategie Satzorientierte Schnittstelle (SOS) Datei- oder Seitenschnittstelle ◆ Hole Seite, Schreibe Seite Interne Satz− schnittstelle (ISS) Geräteschnittstelle ◆ Spuren, Zylinder ◆ Armbewegungen Systempuffer− schnittstelle (SPS) Datei− schnittstelle (DS) Betriebssystem Externspeicherverwaltung Geräte− schnittstelle (GS) VL Datenbanken I – 1–46 VL Datenbanken I – 1–47 5-Schichten-Architektur: Objekte Mengenorientierte Schnittstelle (MOS) Einige konkrete Systeme Relationen Sichten SQL : select ... from ... QBE, QUEL, ... externe Sätze, Scans, Index−Strukturen FIND NEXT satz STORE satz interne Sätze, Bäume, Hashtabellen Speichere internen Satz s INSERT in B−Baum Segmente Seiten Bereitstellen Seite j Freigeben Seite j Dateien Blöcke Lies Block k Schreibe Block k Zylinder Spuren Treiber ■ (Objekt-)Relationale DBMS ◆ Oracle9i, IBM DB2 V.7, Microsoft SQL Server 2000, Sybase ◆ MySQL, PostgreSQL, Firebird ■ Pseudo-DBMS ◆ MS Access, dBase ■ Objektorientierte DBMS ◆ Poet, Versant, ObjectStore ■ XML-DBMS ◆ Tamino (Software AG), eXcelon, Xindice Datensystem Satzorientierte Schnittstelle (SOS) Zugriffssystem Interne Satz− schnittstelle (ISS) Speichersystem Systempuffer− schnittstelle (SPS) Pufferverwaltung Datei− schnittstelle (DS) Betriebssystem Geräte− schnittstelle (GS) VL Datenbanken I – 1–48 VL Datenbanken I – 1–49 Open Source DBMS (I) Oracle9i ■ Objektrelationales DBMS + Entwicklungswerkzeuge ■ verfügbar für Unix, Linux, Windows, Palm, PocketPC etc. ■ Enterprise, Personal, Mobile-Versionen ■ Unterstützung von XML und Multimedia-Dokumenten ■ Erweiterbarkeit über prozedurale SQL-Erweiterungen, Java ■ Sicherheits- und Auto-Administration-Features ■ Internet-Content-Management (HTTP-, FTP-, WebDAV-Zugriff), Application Server ■ Data Warehouse und Business Intelligence (OLAP, Data Mining) ■ Unterstützung von verteilten und parallelen DBS VL Datenbanken I – 1–50 ■ MySQL (www.mysql.com) ◆ weit verbreitet (Linux, Windows), speziell für Web-Datenbanken ◆ eingeschränkte SQL-Unterstützung, keine Transaktionen etc. ■ PostgreSQL (www.postgresql.org) ◆ aus Forschungssystem Postgres (UCB) entwickelt ◆ für Unix und Linux ◆ objektrelationale Features (benutzerdefinierte Datentypen) ◆ bessere SQL-Unterstützung VL Datenbanken I – 1–51 Open Source DBMS (II) ■ FireBird (www.firebirdsql.org) ◆ aus InterBase (Borland) entstanden ◆ für Unix, Linux, Windows ◆ kompakt, geringer Speicherbedarf (2-3 MB) ◆ sehr gute SQL-Unterstützung VL Datenbanken I – 1–52