Folien

Werbung
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
Herunterladen