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