Teil I Was sind Datenbanken? Was sind Datenbanken? Was sind Datenbanken? 1 Überblick & Motivation 2 Architekturen 3 Einsatzgebiete 4 Historisches Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–1 Was sind Datenbanken? Lernziele für heute . . . Motivation für den Einsatz von Datenbanksystemen Kenntnis grundlegender Architekturen Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–2 Was sind Datenbanken? Überblick & Motivation Was sind Datenbanken? Daten = logisch gruppierte Informationseinheiten Bank = Die Sicherheit vor Verlusten ist eine Hauptmotivation, etwas „auf die Bank zu bringen“. Eine Bank bietet Dienstleistungen für mehrere Kunden an, um effizient arbeiten zu können. Eine Datenbank hat die (langfristige) Aufbewahrung von Daten als Aufgabe. Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–3 Was sind Datenbanken? Überblick & Motivation Anwendungsbeispiele Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–4 Was sind Datenbanken? Überblick & Motivation Wie verwaltet man Datenbanken? Ohne Datenbanken jedes Anwendungssystem verwaltet seine eigenen Daten Daten sind mehrfach gespeichert Probleme I I I redundant Verschwendung von Speicherplatz „Vergessen“ von Änderungen keine zentrale, „genormte“ Datenhaltung Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–5 Was sind Datenbanken? Überblick & Motivation Probleme der Datenredundanz Andere Softwaresysteme 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 I I interne Darstellung der Daten Speichermedien oder Rechner zu kennen (Datenunabhängigkeit nicht gewährleistet) Datenschutz und Datensicherheit sind nicht gewährleistet Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–6 Was sind Datenbanken? Überblick & Motivation Idee: Datenintegration durch Datenbanksysteme Anwendung ... Anwendung DBMS Datenbankmanagementsystem = Software zur Verwaltung von Datenbanken DBS = Datenbanksystem Datenbank Sattler / Saake Datenbanksysteme strukturierter, von DBMS verwalteter Datenbestand Letzte Änderung: Okt. 2016 1–7 Was sind Datenbanken? Überblick & Motivation Motivation Datenbanksysteme sind Herzstück heutiger IT-Infrastrukturen . . . allgegenwärtig Datenbankspezialisten sind gefragt Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–8 Was sind Datenbanken? Überblick & Motivation Fragestellungen 1 Wie organisiert (modelliert und nutzt) man Daten? 2 Wie werden Daten dauerhaft verlässlich gespeichert? 3 Wie kann man riesige Datenmengen (≥ Terabytes) effizient verarbeiten? 4 Wie können viele Nutzer (≥ 10.000) gleichzeitig mit den Daten arbeiten? Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–9 Was sind Datenbanken? Architekturen Prinzipien: Die neun Codd’schen Regeln 1 2 3 4 5 6 7 8 9 Integration: einheitliche, nichtredundante Datenverwaltung Operationen: Speichern, Suchen, Ändern Katalog: Zugriffe auf Datenbankbeschreibungen im Data Dictionary Benutzersichten Integritätssicherung: Korrektheit des Datenbankinhalts Datenschutz: Ausschluss unauthorisierter Zugriffe Transaktionen: mehrere DB-Operationen als Funktionseinheit Synchronisation: parallele Transaktionen koordinieren Datensicherung: Wiederherstellung von Daten nach Systemfehlern Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–10 Was sind Datenbanken? Architekturen Datenunabhängigkeit und Schemata Basierend auf DBMS-Grobarchitektur Entkopplung von Benutzer- und Implementierungssicht Ziele u.a.: I I I I Trennung von Modellierungssicht und interner Speicherung Portierbarkeit Tuning vereinfachen standardisierte Schnittstellen Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–11 Was sind Datenbanken? Architekturen Schemaarchitektur Zusammenhang zwischen I I I I Konzeptuellem Schema (Ergebnis der Datendefinition) Internem Schema (Festlegung der Dateiorganisationen und Zugriffspfade) Externen Schemata (Ergebnis der Sichtdefinition) Anwendungsprogrammen (Ergebnis der Anwendungsprogrammierung) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–12 Was sind Datenbanken? Architekturen Schemaarchitektur /2 Trennung Schema — Instanz I I Schema (Metadaten, Datenbeschreibungen) Instanz (Anwenderdaten, Datenbankzustand oder -ausprägung) Datenbankschema besteht aus I internem, konzeptuellem, externen Schemata und den Anwendungsprogrammen im konzeptuellen Schema etwa: I I I Strukturbeschreibungen Integritätsbedingungen Autorisierungsregeln (pro Benutzer für erlaubte DB-Zugriffe) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–13 Was sind Datenbanken? Architekturen Schemaarchitektur /3 externes Schema 1 Konzeptuelles Schema internes Schema Datenbanksysteme externes Schema N Datendarstellung Anfragebearbeitung Sattler / Saake ... Letzte Änderung: Okt. 2016 1–14 Was sind Datenbanken? Architekturen Datenunabhängigkeit /2 Stabilität der Benutzerschnittstelle gegen Änderungen physisch: Änderungen der Dateiorganisationen und Zugriffspfade haben keinen Einfluss auf das konzeptuelle Schema logisch: Änderungen am konzeptuellen und gewissen externen Schemata haben keine Auswirkungen auf andere externe Schemata und Anwendungsprogramme Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–15 Was sind Datenbanken? Architekturen Datenunabhängigkeit /3 mögliche Auswirkungen von Änderungen am konzeptuellen Schema: I I eventuell externe Schemata betroffen (Ändern von Attributen) eventuell Anwendungsprogramme betroffen (Rekompilieren der Anwendungsprogramme, eventuell Änderungen nötig) nötige Änderungen werden jedoch vom DBMS erkannt und überwacht Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–16 Was sind Datenbanken? Architekturen Anwendungsbeispiel: Musikversand Titel Musiker Jahr Preis Rezension(en) Tracks Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–17 Was sind Datenbanken? Architekturen Ebenen-Architektur am Beispiel Konzeptuelle Sicht: Darstellung in Tabellen (Relationen) Musiker MNr 103 104 105 Album ANr 1014 1015 1016 1021 1025 Sattler / Saake Name Apocalyptica Subway To Sally Rammstein Titel Amplified Nord Nord Ost Rosenrot Engelskrieger Reflections Land Finnland Deutschland Deutschland Jahr 2006 2005 2005 2003 2006 Genre Rock Rock Rock Rock Rock Datenbanksysteme MNr → Musiker 103 104 105 104 103 Letzte Änderung: Okt. 2016 1–18 Was sind Datenbanken? Architekturen Ebenen-Architektur am Beispiel /2 Externe Sicht: Daten in einer flachen Relation ANr 1014 1015 1016 1021 1025 Sattler / Saake Titel Amplified Nord Nord Ost Rosenrot Engelskrieger Reflections Jahr 2006 2005 2005 2003 2006 Genre Rock Rock Rock Rock Rock Datenbanksysteme Musiker Apocalyptica Subway To Sally Rammstein Subway To Sally Apocalyptica Letzte Änderung: Okt. 2016 1–19 Was sind Datenbanken? Architekturen Ebenen-Architektur am Beispiel /3 Externe Sicht: Daten in einer hierarchisch aufgebauten Relation Musiker Titel Apocalyptica Subway To Sally Rammstein Sattler / Saake Album Jahr Amplified Reflections Nord Nord Ost Engelskrieger Rosenrot Datenbanksysteme 2006 2003 2005 2003 2005 Genre Rock Rock Metal Rock Rock Letzte Änderung: Okt. 2016 1–20 Was sind Datenbanken? Architekturen Ebenen-Architektur am Beispiel /4 Interne Darstellung 1000 1500 2000 Baumzugriff über Albumnummer teilweises Speichern der Datensätze im Baum 1014 Amplified 2006 1015 Nord Nord Ost 2005 19.99 Rock 15.99 Rock Sattler / Saake 103 104 .... .... Überlaufbereich für Datensätze Datenbanksysteme Letzte Änderung: Okt. 2016 1–21 Was sind Datenbanken? Architekturen System-Architekturen Beschreibung der Komponenten eines Datenbanksystems Standardisierung der Schnittstellen zwischen Komponenten Architekturvorschläge I I ANSI-SPARC-Architektur Drei-Ebenen-Architektur Fünf-Schichten-Architektur beschreibt Transformationskomponenten im Detail Vorlesung „Datenbank-Implementierungstechniken“ Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–22 Was sind Datenbanken? Architekturen ANSI-SPARC-Architektur ANSI: American National Standards Institute SPARC: Standards Planning and Requirement Committee Vorschlag von 1978 Im Wesentlichen Grobarchitektur verfeinert I I I Interne Ebene / Betriebssystem verfeinert Mehr Interaktive und Programmier-Komponenten Schnittstellen bezeichnet und normiert Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–23 Was sind Datenbanken? Architekturen ANSI-SPARC-Architektur /2 Externe Ebene Konzeptuelle Ebene Interne Ebene Optimierer Plattenzugriff Anfragen Auswertung Updates P1 ... Pn DBOperationen Data Dictionary Einbettung Masken Sichtdefinition Datendefinition Sattler / Saake Datenbanksysteme Dateiorganisation Letzte Änderung: Okt. 2016 1–24 Was sind Datenbanken? Architekturen Klassifizierung der Komponenten 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 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–25 Was sind Datenbanken? Architekturen Fünf-Schichten-Architektur Verfeinerung der Transformationsschritte Mengenorientierte Schnittstelle Datensystem Satzorientierte Schnittstelle Übersetzung Zugriffspfadwahl Zugriffssystem Logische Zugriffspfade, Schemakatalog, Sortierung, Transaktionsverwaltung Speichersystem Speicherungsstrukturen, Zugriffspfadverwaltung, Sperrverwaltung, Logging, Recovery Interne Satzschnittstelle Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Systempufferverwaltung, Seitenersetzung, Seitenzuordnung Externspeicherverwaltung, Speicherzuordnung Geräteschnittstelle Externspeicher Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–26 Was sind Datenbanken? Architekturen Anwendungsarchitekturen Architektur von Datenbankanwendungen tpyischerweise auf Basis des Client-Server-Modells: Server ≡ Datenbanksystem Client (Dienstnehmer) Server (Diensterbringer) 1. Anforderung 2. Bearbeitung 3. Antwort Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–27 Was sind Datenbanken? Architekturen Anwendungsarchitekturen /2 Aufteilung der Funktionalitäten einer Anwendung I I I Präsentation und Benutzerinteraktion Anwendungslogik („Business“-Logik) Datenmanagementfunktionen (Speichern, Anfragen, . . . ). Benutzerschnittstelle Anwendungslogik Benutzerschnittstelle Client DB-Schnittstelle Anwendungslogik DB-Schnittstelle DB-Server Zwei-Schichten-Architektur Sattler / Saake Client Applikationsserver DB-Server Drei-Schichten-Architektur Datenbanksysteme Letzte Änderung: Okt. 2016 1–28 Was sind Datenbanken? Einsatzgebiete Einige konkrete Systeme (Objekt-)Relationale DBMS I I Oracle11g, IBM DB2 V.10, Microsoft SQL Server 2012, SAP HANA MySQL (www.mysql.org), PostgreSQL (www.postgresql.org) Pseudo-DBMS I MS Access NoSQL-Systeme I Graph-Datenbanksysteme (InfiniteGraph, neo4j), Dokument-Datenbanken (MongoDB), Key-Value-Stores, .... Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–29 Was sind Datenbanken? Einsatzgebiete Einsatzgebiete Klassische Einsatzgebiete: I I I viele Objekte (15000 Bücher, 300 Benutzer, 100 Ausleihvorgänge pro Woche, . . . ) wenige Objekttypen (BUCH, BENUTZER, AUSLEIHUNG) etwa Buchhaltungssysteme, Auftragserfassungssysteme, Bibliothekssysteme, . . . Aktuelle Anwendungen: I E-Commerce, entscheidungsunterstützende Systeme (Data Warehouses, OLAP), NASA’s Earth Observation System (Petabyte-Datenbanken), Data Mining Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–30 Was sind Datenbanken? Einsatzgebiete Datenbankgrößen eBay Data Warehouse 10 PB (≈ 10 · 1015 Bytes) Teradata DBMS, 72 Knoten, 10.000 Nutzer, mehrere Millionen Anfragen/Tag WalMart Data Warehouse 2,5 PB Teradata DBMS, NCR MPP-Hardware; Produktinfos (Verkäufe etc.) von 2.900 Märkten; 50.000 Anfragen/Woche Facebook x.000 MySQL-Server 400 TB Hadoop/Hive, 610 Knoten, 15 TB/Tag US Library of Congress nicht digitalisiert 10-20 TB PB für Petabyte entspricht der Größenordnung 1015 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–31 Was sind Datenbanken? Historisches Entwicklungslinien: 60er Jahre Anfang 60er Jahre: elementare Dateien, anwendungsspezifische Datenorganisation (geräteabhängig, redundant, inkonsistent) Ende 60er Jahre: Dateiverwaltungssysteme (SAM, ISAM) mit Dienstprogrammen (Sortieren) (geräteunabhängig, aber redundant und inkonsistent) DBS basierend auf hierarchischem Modell, Netzwerkmodell I I I I Zeigerstrukturen zwischen Daten Schwache Trennung interne / konzeptuelle Ebene Navigierende DML Trennung DML / Programmiersprache Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–32 Was sind Datenbanken? Historisches Entwicklungslinien: 70er und 80er Jahre 70er Jahre: Datenbanksysteme (Geräte- und Datenunabhängigkeit, redundanzfrei, konsistent) Relationale Datenbanksysteme I I I I Daten in Tabellenstrukturen 3-Ebenen-Konzept Deklarative DML Trennung DML / Programmiersprache Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–33 Was sind Datenbanken? Historisches Historie von RDBMS 1970: Ted Codd (IBM) → Relationenmodell als konzeptionelle Grundlage relationaler DBS 1974: System R (IBM) → erster Prototyp eines RDBMS I I I 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 I I Anfragesprache QUEL Vorgänger von Postgres, Sybase, . . . 1979: Oracle Version 2 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–34 Was sind Datenbanken? Historisches Entwicklungslinien: (80er und) 90er Jahre Wissensbanksysteme I I Daten in Tabellenstrukturen Stark deklarative DML, integrierte Datenbankprogrammiersprache Objektorientierte Datenbanksysteme I I I I Daten in komplexeren Objektstrukturen (Trennung Objekt und seine Daten) Deklarative oder navigierende DML Oft integrierte Datenbankprogrammiersprache Oft keine vollständige Ebenentrennung Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–35 Was sind Datenbanken? Historisches Entwicklungslinien: heute Neue Hardwarearchitekturen I Multicore-Prozessoren, Hauptspeicher im TB-Bereich: In-Memory-Datenbanksysteme (z.B. SAP HANA) Unterstützung für spezielle Anwendungen I I I I Cloud-Datenbanken: Hosting von Datenbanken, Skalierbare Datenmanagementlösungen (Amazon RDS, Microsoft Azure) Datenstromverarbeitung: Online-Verarbeitung von Live-Daten, z.B. Börseninfos, Sensordaten, RFID-Daten, . . . (StreamBase, MS StreamInsight, IBM Infosphere Streams) Big Data: Umgang mit Datenmengen im PB-Bereich durch hochskalierbare, parallele Verarbeitung, Datenanalyse (Hadoop, Hive, Google Spanner & F1, . . . ) NoSQL-Datenbanken („Not only SQL“): nicht-relationale Datenbanken, flexibles Schema (dokumentenzentriert), „leichtgewichtig“ durch Weglassen von SQL-Funktionalitäten wie Transaktionen, mächtige deklarative Anfragesprachen mit Verbunden etc. (CouchDB, MongoDB, Cassandra, . . . ) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–36 Was sind Datenbanken? Historisches Trends Nutzergenerierte Inhalte, z.B. Google: I I I Verarbeitung von 20 PB täglich 15h Video-Upload auf YouTube in jeder Minute Lesen von 20 PB würde 12 Jahre benötigen bei 50 MB/s-Festplatte Linked Data und Data Web I I I Bereitstellung, Austausch und Verknüpfung von strukturierten Daten im Web ermöglicht Abfrage (mit Anfragesprachen wie SPARQL) und Weiterverarbeitung Beispiele: DBpedia, GeoNames Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–37 Was sind Datenbanken? Historisches Zusammenfassung Motivation für Einsatz von Datenbanksystemen Codd’sche Regeln 3-Ebenen-Schemaarchitektur & Datenunabhängigkeit Einsatzgebiete Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–38 Was sind Datenbanken? Historisches Kontrollfragen Welchen Vorteil bieten Datenbanksysteme gegenüber einer anwendungsspezifischen Speicherung von Daten? Was versteht man unter Datenunabhängigkeit und wie wird sie erreicht? In welchen Bereichen kommen Datenbanksysteme zum Einsatz? Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–39