Teil I Motivation und Grundlagen · 2020. 4. 14. · bersetzung, Zug riffspfadw ahl, Zug...

Preview:

Citation preview

Teil I

Motivation und Grundlagen

Überblick

1. Aufgaben und Komponenten eines DBMS

2. Relationale vs. nicht-relationale DBMS

3. OLTP, OLAP und HTAP

4. Disk- vs. Main-Memory-Systeme

5. Klassische 5-Schichtenarchitektur

6. Neue Entwicklungen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–1

Aufgaben und Komponenten einesDBMS

Prinzipien: Die neun Codd’schen Regeln

1. Integration: einheitliche, nichtredundante Datenverwaltung2. Operationen: Speichern, Suchen, Ändern3. Katalog: Zugriffe auf Datenbankbeschreibungen im Data

Dictionary4. Benutzersichten5. Integritätssicherung: Korrektheit des Datenbankinhalts6. Datenschutz: Ausschluss unauthorisierter Zugriffe7. Transaktionen: mehrere DB-Operationen als Funktionseinheit8. Synchronisation: parallele Transaktionen koordinieren9. Datensicherung: Wiederherstellung von Daten nach

Systemfehlern

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–2

Betrachtete Fragestellungen

Data Dictionary

Optimierer Auswertung PlattenzugriffAnfragen

Updates

SichtdefinitionDatendefinition

Datei-organisation

DB-Operationen

Einbettung

Masken

P1

Pn

...

Externe Ebene Konzeptuelle Ebene Interne Ebene

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–3

Zentrale Komponenten

• Anfrageverarbeitung: Planung, Optimierung und Ausführungdeklarativer Anfragen

• Transaktionsverwaltung: Koordination und Synchronisationvon Transaktionen, Durchführung von Änderungen, Sicherungder ACID-Eigenschaften

• Speichersystem: Organisation der Daten im Hauptspeicherund auf dem Externspeicher für effizienten Zugriff undPersistenz

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–4

Klassische DB-Landschaft

Database

...

DBMS

Application Application „Banking,SAP, …“

„Server“

„Disk“

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–5

Relationale vs. nicht-relationaleDBMS

Relationale DBMS

• Basis: Relationenmodell = Daten in Tabellen strukturiert• Beziehungen über Werte (= Fremdschlüssel),

Integritätsbedingungen• SQL als standardisierte Anfragesprache• kommerziell erfolgreichstes Datenmodell: Oracle, IBM DB2,

MS SQL Server, SAP HANA, …

WEINE WeinID Name Farbe Jahrgang Weingut

1042 La Rose Grand Cru Rot 1998 Château ...2168 Creek Shiraz Rot 2003 Creek3456 Zinfandel Rot 2004 Helena2171 Pinot Noir Rot 2001 Creek3478 Pinot Noir Rot 1999 Helena4711 Riesling Reserve Weiß 1999 Müller4961 Chardonnay Weiß 2002 Bighorn

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–7

Kritik an RDBMS / SQL

• nicht skalierbar• Normalisierung von Relationen, viele Integritätsbedingungen zu

prüfen• kann man in RDBMS auch vermeiden!

• starre Tabellen nicht flexibel genug• schwach typisierte Tabellen (Tupel weichen in den tatsächlich

genutzten Attributen ab)• viele Nullwerte wenn alle potentiellen Attribute definiert• alternativ Aufspaltung auf viele Tabellen• Schema-Evolution mit alter table unflexibel

• tatsächlich in vielen Anwendungen ein Problem• Integration von spezifischen Operationen (Graphtraversierung,

Datenanalyse-Primitive) mit Stored Procedures zwar möglichführt aber oft zu schwer interpretierbarem Code

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–8

NoSQL-Systeme

• Datenmodelle• KV-Stores• Wide Column Stores• Dokumenten-orientierte Datenhaltung• Graph-Speicher• …

• Anfragesprache ⇝ unterschiedliche Ansätze:• einfache funktionale API• Programmiermodell für parallele Funktionen• angelehnt an SQL-Syntax• …

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–9

NoSQL-Systeme: Beispiele

• dokumentenorientierte Datenbanksysteme: MongoDB• semistrukturierte Dokumente in JSON- bzw. BSON-Format• Anfragen: CRUD erweitert um dokumentspezifische Suche

• Graph-Datenbanksysteme: Neo4j• Property Graphen als Datenmodell: Knoten und Kanten mit

Eigenschaften• Anfragesprache Cypher• Muster der Form ”Knoten → Kante → Knoten …“

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–10

OLTP, OLAP und HTAP

OLTP vs. OLAP

• Online Transactional Processing (OLTP)→ Klassische operative Informationssysteme• Erfassung und Verwaltung von Daten• Verarbeitung unter Verantwortung der jeweiligen Abteilung• Transaktionale Verarbeitung: kurze Lese-/ Schreibzugriffe auf

wenigen Datensätzen• ACID-Eigenschaften

• Online Analytical Processing (OLAP)→ Data Warehouse• Analyse im Mittelpunkt = entscheidungsunterstützende

Systeme• Langandauernde Lesetransaktionen auf vielen Datensätzen• Integration, Konsolidierung und Aggregation der Daten

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–11

OLTP: Beispiel

BEGIN;SELECT KundenNr INTO KNr

FROM Kunden WHERE email = '...';INSERT INTO BESTELLUNG VALUES (KNr, BestNr, 1);UPDATE Artikel SET Bestand = Bestand-1

WHERE ArtNr = BestNr;COMMIT TRANSACTION;

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–12

OLAP: Beispiel

SELECT DISTINCT ROW Zeit.Dimension AS Jahr,Produkt.Dimension AS Artikel,AVG(Fact.Umsatz) AS Umsatzdurchschnitt,Ort.Dimension AS Verkaufsgebiet

FROM (Produktgruppe INNER JOIN Produkt ON Produktgruppe.[Gruppen-Nr] = Produkt.[Gruppen-ID]) INNER JOIN((((Produkt INNER JOIN [Fact.Umsatz] ON Produkt.[Artikel-Nr]= [Fact.Umsatz].[Artikel-Nr]) INNER JOIN Order ON[Fact.Umsatz].[Bestell-Nr]= Order.[Order-ID]) INNER JOINZeit.Dimension ON Orders.[Order-ID] =Zeit.Dimension.[Order-ID]) INNER JOIN Ort.Dimension ONOrder.[Order-ID] = Ort.Dimension.[Order-ID]) ONProduktgruppe.[Gruppen-Nr] = Produkt.[Gruppen-ID]

GROUP BY Produkt.Dimension.Gruppenname, Ort.Dimension.Bundesland,Zeit.Dimension.Jahr;

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–13

Abgrenzung OLTP – OLAP: Anfragen

OLTP OLAPFokus Lesen, Schreiben, Modi-

fizieren, LöschenLesen, periodisches Hin-zufügen

Transaktionsdauerund -typ

kurze Lese- / Schreib-transaktionen

langandauernde Lese-transaktionen

Anfragestruktur einfach strukturiert komplexDatenvolumeneiner Anfrage

wenige Datensätze viele Datensätze

Datenmodell anfrageflexibel analysebezogenAntwortzeit msecs …secs secs …min

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–14

Abgrenzung OLTP – OLAP: Daten

OLTP OLAPDatenquellen meist eine mehrereEigenschaften nicht abgeleitet, zeitak-

tuell, autonom, dyna-misch

abgeleitet / konsolidiert,historisiert, integriert, stabil

Datenvolumen MByte …GByte GByte …TByte …PByteZugriffe Einzeltupelzugriff Tabellenzugriff (spaltenwei-

se)

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–15

HTAP

• HTAP = Hybrid Transactional and Analytics Processing• Ziel: schnellere Geschäftsentscheidungen durch

”Echtzeit“-Verarbeitung• OLAP und OLTP auf der gleichen Datenbank: naheliegend,

aber große technische Herausforderung• sehr unterschiedliche Workloads (Anfrage- und Lastprofile)• Transaktionsverwaltung: gegenseitige Beeinflussung von

Änderungs- und Leseoperationen reduzieren• unterschiedliche Datenorganisation (physisch, logisch)

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–16

HTAP: Herausforderungen

OLAP OLTP

Analytical (OLAP) und Transactional processing (OLTP):

• verschiedene Zugriffscharakterisiken• verschiedene Performance-Ziele (Latenz vs. Durchsatz)

=⇒ Unterschiedliche Optimierungen notwendig

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–17

Disk- vs. Main-Memory-Systeme

Traditionelle Annahmen

• Daten sollen dauerhauft aufbewahrt werden• Datenbank ≫ Hauptspeicher• Disk ≫ Hauptspeicher• Hauptspeicher = flüchtiger (volatiler) Speicher• Disk-IO dominiert Kosten

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–18

Traditionelle Annahmen /2

Quelle [1]

Knapper Hauptspeicher

Quelle [2]

Disk-basierte Systeme

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–19

Speicherhierarchie

Cache

Hauptspeicher

Optische Platten

Magnetbänder

Festplatten, Solid-State-Disk

Primärspeicher

Sekundärspeicher

Tertiärspeicher

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–20

Eigenschaften von Speichermedien

Primär Sekundär TertiärGeschwindigkeit schnell langsam sehr langsamPreis teuer preiswert billigStabilität flüchtig stabil stabilGröße klein groß sehr großGranulate fein grob grob

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–21

Speichermedien

• Primärspeicher• Primärspeicher: Cache und Hauptspeicher• sehr schnell, Zugriff auf Daten fein granular: theoretisch jedes

Byte adressierbar (Cachelines)• Sekundärspeicher

• Sekundärspeicher oder Online-Speicher• meist Plattenspeicher, nicht-flüchtig• Granularität des Zugriffs gröber: Blöcke, oft 512 Bytes• Zugriffslücke: Faktor 105 langsamerer Zugriff

• Tertiärspeicher• Zur langfristigen Datensicherung (Archivierung) oder

kurzfristigen Protokollierung (Journale)• üblich: optische Platten, Magnetbänder• ”Offline-Speicher“ meist Wechselmedium• Nachteil: Zugriffslücke extrem groß

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–22

Transferraten HDD vs. SSD

0.01

0.1

1

10

100

1000

1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192

Band

brei

te in

MB/

s

Blockgröße in KB

HDD randomSSD random

HDD seqSSD seq

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–23

Konsequenz für disk-basierte Systeme

• blockbasierter Zugriff mit typischen Blockgrößen ≥ 4 KB• speziell für Magnetplatten Optimierung auf sequentielle

Zugriffe• Disklayout: Organisation der Daten auf der Disk =

fortlaufende Folge von Blöcken• sequentielles Lesen und Schreiben

• Zugriffslücke zwischen Hauptspeicher und Disk durch Cachingverbergen (Lokalität von Zugriffen ausnutzen)

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–24

Main-Memory-Datenbanken

• klassische Annahmen nicht mehr zutreffend:• Systeme mit Hauptspeicher im TB-Bereich verfügbar• Datenbank kann komplett im Hauptspeicher gehalten werden

(muss aber dennoch persistent sein)

• Main-Memory- oder Hauptspeicher-Datenbanken:Ausnutzung der großen Hauptspeicher undMulticore-Architekturen• Beispiele: SAP HANA, Oracle TimesTen, SQL Server Hekaton,

Hyper, MemSQL, …• Besonderheiten: hauptspeicheroptimierte Datenstrukturen

(Main-Memory-Scans), Persistenz trotz volatilem Speicher,Datenkompression, Nebenläufigkeitskontrolle

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–25

Klassische 5-Schichtenarchitektur

Fünf-Schichtenarchitektur

• Architektur für klassische DBMS• 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 hinzu Zugriffen auf Speichermedien

• Definition der Schnittstellen zwischen Komponenten

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–26

5-Schichtenarchitektur: Funktionen

Datensystem

Zugriffssystem

Speichersystem

Pufferverwaltung

Betriebssystem

MengenorientierteSchnittstelle

SatzorientierteSchnittstelle

InterneSatzschnittstelle

Systempuffer-schnittstelle

Datei-schnittstelle

Geräteschnittstelle

Externspeicher

Übersetzung, Zugriffspfadwahl,Zugriffskontrolle, Integritätskontrolle

Data Dictionary, Currency Pointer,Sortierung, Transaktionsverwaltung

Record Manager, Zugriffs-pfadverwaltung, Sperr-verwaltung, Logging, Recovery

Systempufferverwaltung, Seitenersetzung, Seitenzuordnung

Externspeicherverwaltung,Speicherzuordnung

MOS

SOS

ISS

SPS

DS

GS

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–27

5-Schichtenarchitektur: Objekte

Datensystem

Zugriffssystem

Speichersystem

Pufferverwaltung

Betriebssystem

RelationenSichten MOS

SOS

ISS

SPS

DS

GS

Externe SätzeIndexstrukturenScans

Interne SätzeBäumeHashtabellen

SegmenteSeiten

DateienBlöcke

ZylinderSpuren

Lies Block kSchreibe Block k

Bereitstellen Seite jFreigeben Seite j

FIND NEXT satzSTORE satz

SELECT ...FROM ... WHERE ...

LOOKUP im B-BaumINSERT in B-Baum

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–28

Erläuterungen

• mengenorientierte Schnittstelle MOS:• deklarative Datenmanipulationssprache auf Tabellen und

Sichten (etwa SQL)

• durch Datensystem auf satzorientierte Schnittstelle SOSumgesetzt:• navigierender Zugriff auf interner Darstellung der Relationen• manipulierte Objekte: typisierte Datensätze und interne

Relationen sowie logische Zugriffspfade (Indexe)• Aufgaben des Datensystems: Übersetzung und Optimierung

von SQL-Anfragen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–29

Erläuterungen /2

• durch Zugriffssystem auf interne Satzschnittstelle ISSumgesetzt:• interne Tupel einheitlich verwalten, ohne Typisierung• Speicherstrukturen der Zugriffspfade (konkrete Operationen

auf B+-Bäumen und Hashtabellen), Mehrbenutzerbetrieb mitTransaktionen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–30

Erläuterungen /3

• durch Speichersystem Datenstrukturen und Operationen derISS auf interne Seiten eines virtuellen linearen Adressraumsumsetzen• Manipulation des Adressraums durch Operationen der

Systempufferschnittstelle SPS• Typische Objekte: interne Seiten, Seitenadressen• Typische Operationen: Freigeben und Bereitstellen von Seiten,

Seitenwechselstrategien, Sperrverwaltung, Schreiben des Logs

• durch Pufferverwaltung interne Seiten auf Blöcke derDateischnittstelle DS abbilden• Umsetzung der DS-Operationen auf Geräteschnittstelle erfolgt

durch BS

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–31

Neue Entwicklungen

Anforderungen aus neuen Anwendungen

• Nicht-Standard-Datenmodelle (siehe NoSQL-Systeme)• flexibler Umgang mit Datenstrukturen (JSON, Schema on

Read, …)• beschränkte (Lookups) vs. erweiterte (z.B. Graphoperationen,

Datenanalysen) Anfragefunktionalität• Skalierbarkeit zu Big Data (massiv parallele/verteilte

Systeme)• dynamische Daten / Datenströme• …

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–32

Aktuelle Anwendungen / Themen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–33

Entwicklungen im Hardware-Bereich

Picture adapted from [1]

Großer HauptspeicherQuelle [3]

Multi-core CPUs

Quelle [4]

Solid State DisksQuelle [5]

Co-ProzessorenSattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–34

Entwicklungen im Hardware-Bereich /2

• Multicore- und Manycore-Prozessoren: 64+ Cores• Nutzung erfordert Parallelisierungstechniken und

Nebenläufigkeitskontrolle

• Memory Wall: Hauptspeicherzugriff als Flaschenhals• RAM-Zugriff 60 ns, L1-Cache: 4 CPU-Zyklen ⇝

Cache-optimierte Strukturen

• Datenbank-Accelerators• Hardware-unterstütztes Datenmanagement: FPGA, GPU als

Coprozessoren, Highspeed-Netzwerk, SSDs als zusätzlicheCache-Ebene, …

• Persistenter Memory: nicht-volatiler Speicher• Instant Restart / Recovery von Main-Memory-Datenbanken

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–35

Übungsprojekt

ToyDB: Überblick

• Sammlung von Java-Modulen zur Implementierung vonKernfunktionen eines DBMS

• Single-Process-Modell in Anlehnung an5-Schichten-Architektur

• Organisation des Externspeichers in Dateien mit Seiten festerGröße (4KByte)

• B+-Baum- und R-Baum-Indexe• Anfrageoperatoren für relationale Algebra• rudimentärer Support für Transaktionen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–36

ToyDB: Systemarchitektur und Module

Paged File Managerdbis.toydb.pf

Record Managerdbis.toydb.rm

Index Managerdbis.toydb.ix.

btree

Index Managerdbis.toydb.ix.

rtree

Query Execution Plan Operators

dbis.toydb.qep

Statistics Managerdbis.toydb.statistics

Transaction & Lock Manager

dbis.toydb.tx

Query Processor (Rewriting & Optimization)dbis.toydb.qp

Buffer Pool Managerdbis.toydb.bp

System Managerdbis.

toydb.sm

SQL Parserdbis.toydb.parser

Command Line Processordbis.toydb.CmdLine

Con

figur

atio

n M

anag

emen

tdb

is.t

oydb

.uti

l.Co

nfig

urat

ion

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–37

Zusammenfassung

• Datenmanagementfunktionalitäten in vielenSoftwaresystemen erforderlich

• nicht auf Implementierung kompletter DBMS beschränkt,sondern für nahezu alle datenintensiven Systeme: auch inSuchmaschinen, Datenanalyseanwendungen, eingebettetenSystemen, Visualisierungssystemen, Steuerungssystemen,Entwicklungsumgebungen, …

• gemeinsame Aufgaben / Komponenten: Datenorganisationund -verwaltung (Indexstrukturen), Transaktionsverwaltung /Nebenläufigkeitskontrolle / Recovery, Anfrageverarbeitung

• betrifft Datenstrukturen und Algorithmen

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–38

Web-Quellen

[1] http://commons.wikimedia.org/wiki/File:RAM_module_SDRAM_1GiB.jpg

[2] http://commons.wikimedia.org/wiki/File:Hard_disks.jpg

[3] http://www.flickr.com/photos/25757823@N07/2719552544

[4] http://commons.wikimedia.org/wiki/File:Super_Talent_2.5in_SATA_SSD_SAM64GM25S.jpg

[5] http://commons.wikimedia.org/wiki/File:Gtx260.jpg

[6] http://commons.wikimedia.org/wiki/File:Travis_Race_car.jpg

[7] http://www.flickr.com/photos/denieseclariz/7412854696

Sattler/Saake | VL Datenbank-Implementierungstechniken | April 2019 1–39

Recommended