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