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 vonDatenbanksystemenKenntnis grundlegender Architekturen
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–2
Was sind Datenbanken? Überblick & Motivation
Was sind Datenbanken?
Daten = logisch gruppierte InformationseinheitenBank =
Die Sicherheit vor Verlusten ist eineHauptmotivation, etwas „auf die Bankzu bringen“.
Eine Bank bietet Dienstleistungen fürmehrere Kunden an, um effizientarbeiten 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 Datenbankenjedes Anwendungssystem verwaltet seine eigenen DatenDaten sind mehrfach gespeichert redundantProbleme
I Verschwendung von SpeicherplatzI „Vergessen“ von ÄnderungenI 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 nichteffizient verarbeitenMehrere Benutzer oder Anwendungen können nicht parallel aufden gleichen Daten arbeiten, ohne sich zu störenAnwendungsprogrammierer / Benutzer können Anwendungennicht programmieren / benutzen, ohne
I interne Darstellung der DatenI 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
Datenbank
...
DBMS
Anwendung Anwendung
strukturierter, von DBMSverwalteter Datenbestand
Datenbankmanagementsystem =Software zur Verwaltung von Datenbanken
DBS = Datenbanksystem
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–7
Was sind Datenbanken? Überblick & Motivation
Motivation
Datenbank-systeme sindHerzstück heutigerIT-Infrastrukturen
. . . allgegenwärtig
Datenbank-spezialisten sindgefragt
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 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 Datenbanksysteme Letzte Änderung: Okt. 2016 1–10
Was sind Datenbanken? Architekturen
Datenunabhängigkeit und Schemata
Basierend auf DBMS-GrobarchitekturEntkopplung von Benutzer- und ImplementierungssichtZiele u.a.:
I Trennung von Modellierungssicht und interner SpeicherungI PortierbarkeitI Tuning vereinfachenI standardisierte Schnittstellen
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–11
Was sind Datenbanken? Architekturen
Schemaarchitektur
Zusammenhang zwischenI Konzeptuellem Schema (Ergebnis der Datendefinition)I Internem Schema (Festlegung der Dateiorganisationen und
Zugriffspfade)I Externen Schemata (Ergebnis der Sichtdefinition)I Anwendungsprogrammen (Ergebnis der
Anwendungsprogrammierung)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–12
Was sind Datenbanken? Architekturen
Schemaarchitektur /2
Trennung Schema — InstanzI Schema (Metadaten, Datenbeschreibungen)I Instanz (Anwenderdaten, Datenbankzustand oder -ausprägung)
Datenbankschema besteht ausI internem, konzeptuellem, externen Schemata und den
Anwendungsprogrammen
im konzeptuellen Schema etwa:I StrukturbeschreibungenI IntegritätsbedingungenI Autorisierungsregeln (pro Benutzer für erlaubte DB-Zugriffe)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–13
Was sind Datenbanken? Architekturen
Schemaarchitektur /3
Konzeptuelles Schema
externesSchema 1
externesSchema N
internesSchema
...
Anfragebearbeitung
Datendarstellung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–14
Was sind Datenbanken? Architekturen
Datenunabhängigkeit /2
Stabilität der Benutzerschnittstelle gegen Änderungenphysisch: Änderungen der Dateiorganisationen und Zugriffspfadehaben keinen Einfluss auf das konzeptuelle Schemalogisch: Änderungen am konzeptuellen und gewissen externenSchemata haben keine Auswirkungen auf andere externeSchemata und Anwendungsprogramme
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–15
Was sind Datenbanken? Architekturen
Datenunabhängigkeit /3
mögliche Auswirkungen von Änderungen am konzeptuellenSchema:
I eventuell externe Schemata betroffen (Ändern von Attributen)I 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
Musiker
Titel
Jahr
Tracks
PreisRezension(en)
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 Name Land103 Apocalyptica Finnland104 Subway To Sally Deutschland105 Rammstein Deutschland
Album ANr Titel Jahr Genre MNr → Musiker1014 Amplified 2006 Rock 1031015 Nord Nord Ost 2005 Rock 1041016 Rosenrot 2005 Rock 1051021 Engelskrieger 2003 Rock 1041025 Reflections 2006 Rock 103
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–18
Was sind Datenbanken? Architekturen
Ebenen-Architektur am Beispiel /2
Externe Sicht: Daten in einer flachen Relation
ANr Titel Jahr Genre Musiker1014 Amplified 2006 Rock Apocalyptica1015 Nord Nord Ost 2005 Rock Subway To Sally1016 Rosenrot 2005 Rock Rammstein1021 Engelskrieger 2003 Rock Subway To Sally1025 Reflections 2006 Rock Apocalyptica
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–19
Was sind Datenbanken? Architekturen
Ebenen-Architektur am Beispiel /3
Externe Sicht: Daten in einer hierarchisch aufgebauten Relation
Musiker AlbumTitel Jahr Genre
Apocalyptica Amplified 2006 RockReflections 2003 Rock
Subway To Sally Nord Nord Ost 2005 MetalEngelskrieger 2003 Rock
Rammstein Rosenrot 2005 Rock
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–20
Was sind Datenbanken? Architekturen
Ebenen-Architektur am Beispiel /4
Interne Darstellung
1000 1500 2000
1014 Amplified 2006
1015 Nord Nord Ost 2005
19.99 Rock 103 ....15.99 Rock 104 ....
Überlauf-bereich für Datensätze
Baumzugriff über
Albumnummer
teilweises Speichern
der Datensätze im Baum
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–21
Was sind Datenbanken? Architekturen
System-Architekturen
Beschreibung der Komponenten eines DatenbanksystemsStandardisierung der Schnittstellen zwischen Komponenten
ArchitekturvorschlägeI ANSI-SPARC-Architektur Drei-Ebenen-Architektur
I Fünf-Schichten-Architektur beschreibt Transformationskomponenten im DetailVorlesung „Datenbank-Implementierungstechniken“
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–22
Was sind Datenbanken? Architekturen
ANSI-SPARC-Architektur
ANSI: American National Standards InstituteSPARC: Standards Planning and Requirement CommitteeVorschlag von 1978Im Wesentlichen Grobarchitektur verfeinert
I Interne Ebene / Betriebssystem verfeinertI Mehr Interaktive und Programmier-KomponentenI Schnittstellen bezeichnet und normiert
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–23
Was sind Datenbanken? Architekturen
ANSI-SPARC-Architektur /2
Data Dictionary
Optimierer Auswertung PlattenzugriffAnfragen
Updates
SichtdefinitionDatendefinition
Datei-organisation
DB-Operationen
Einbettung
Masken
P1
Pn
...
Externe Ebene Konzeptuelle Ebene Interne Ebene
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–24
Was sind Datenbanken? Architekturen
Klassifizierung der Komponenten
Definitionskomponenten: Datendefinition, Dateiorganisation,SichtdefinitionProgrammierkomponenten: DB-Programmierung miteingebetteten DB-OperationenBenutzerkomponenten: Anwendungsprogramme, Anfrage undUpdate interaktivTransformationskomponenten: Optimierer, Auswertung,PlattenzugriffssteuerungData Dictionary (Datenwörterbuch): Aufnahme der Daten ausDefinitionskomponenten, Versorgung der anderen Komponenten
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–25
Was sind Datenbanken? Architekturen
Fünf-Schichten-Architektur
Verfeinerung der Transformationsschritte
Datensystem
Zugriffssystem
Speichersystem
Pufferverwaltung
Betriebssystem
MengenorientierteSchnittstelle
SatzorientierteSchnittstelle
InterneSatzschnittstelle
Systempuffer-schnittstelle
Datei-schnittstelle
Geräteschnittstelle
Externspeicher
ÜbersetzungZugriffspfadwahl
Logische Zugriffspfade, Schemakatalog, Sortierung,Transaktionsverwaltung
Speicherungsstrukturen, Zugriffs-pfadverwaltung, Sperr-verwaltung, Logging, Recovery
Systempufferverwaltung, Seitenersetzung, Seitenzuordnung
Externspeicherverwaltung,Speicherzuordnung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–26
Was sind Datenbanken? Architekturen
Anwendungsarchitekturen
Architektur von Datenbankanwendungen tpyischerweise auf Basisdes Client-Server-Modells: Server ≡ Datenbanksystem
1. Anforderung
3. Antwort
2. Bearbeitung
Client(Dienstnehmer)
Server(Diensterbringer)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–27
Was sind Datenbanken? Architekturen
Anwendungsarchitekturen /2
Aufteilung der Funktionalitäten einer AnwendungI Präsentation und BenutzerinteraktionI Anwendungslogik („Business“-Logik)I Datenmanagementfunktionen (Speichern, Anfragen, . . . ).
Benutzerschnittstelle
Anwendungslogik
DB-Schnittstelle
DB-Server
Client
Zwei-Schichten-Architektur
Benutzerschnittstelle
Anwendungslogik
DB-Schnittstelle
Applikations-server
DB-Server
Client
Drei-Schichten-Architektur
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–28
Was sind Datenbanken? Einsatzgebiete
Einige konkrete Systeme
(Objekt-)Relationale DBMSI Oracle11g, IBM DB2 V.10, Microsoft SQL Server 2012, SAP HANAI MySQL (www.mysql.org), PostgreSQL (www.postgresql.org)
Pseudo-DBMSI MS Access
NoSQL-SystemeI 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 viele Objekte (15000 Bücher, 300 Benutzer, 100 Ausleihvorgänge
pro Woche, . . . )I wenige Objekttypen (BUCH, BENUTZER, AUSLEIHUNG)I 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 PBTeradata DBMS, NCR MPP-Hardware;Produktinfos (Verkäufe etc.) von 2.900 Märkten;50.000 Anfragen/Woche
Facebook 400 TBx.000 MySQL-ServerHadoop/Hive, 610 Knoten, 15 TB/Tag
US Library of Congress 10-20 TBnicht digitalisiert
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, anwendungsspezifischeDatenorganisation (geräteabhängig, redundant, inkonsistent)Ende 60er Jahre: Dateiverwaltungssysteme (SAM, ISAM) mitDienstprogrammen (Sortieren) (geräteunabhängig, aberredundant und inkonsistent)DBS basierend auf hierarchischem Modell, Netzwerkmodell
I Zeigerstrukturen zwischen DatenI Schwache Trennung interne / konzeptuelle EbeneI Navigierende DMLI 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- undDatenunabhängigkeit, redundanzfrei, konsistent)Relationale Datenbanksysteme
I Daten in TabellenstrukturenI 3-Ebenen-KonzeptI Deklarative DMLI 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 konzeptionelleGrundlage relationaler DBS1974: System R (IBM)→ erster Prototyp eines RDBMS
I zwei Module: RDS, RSS; ca. 80.000 LOC (PL/1, PL/S, Assembler),ca. 1,2 MB Codegröße
I Anfragesprache SEQUELI erste Installation 1977
1975: University of California at Berkeley (UCB)→ IngresI Anfragesprache QUELI 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
WissensbanksystemeI Daten in TabellenstrukturenI Stark deklarative DML, integrierte Datenbankprogrammiersprache
Objektorientierte DatenbanksystemeI Daten in komplexeren Objektstrukturen (Trennung Objekt und seine
Daten)I Deklarative oder navigierende DMLI Oft integrierte DatenbankprogrammierspracheI Oft keine vollständige Ebenentrennung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–35
Was sind Datenbanken? Historisches
Entwicklungslinien: heute
Neue HardwarearchitekturenI Multicore-Prozessoren, Hauptspeicher im TB-Bereich:
In-Memory-Datenbanksysteme (z.B. SAP HANA)Unterstützung für spezielle Anwendungen
I Cloud-Datenbanken: Hosting von Datenbanken, SkalierbareDatenmanagementlösungen (Amazon RDS, Microsoft Azure)
I Datenstromverarbeitung: Online-Verarbeitung von Live-Daten, z.B.Börseninfos, Sensordaten, RFID-Daten, . . . (StreamBase, MSStreamInsight, IBM Infosphere Streams)
I Big Data: Umgang mit Datenmengen im PB-Bereich durchhochskalierbare, parallele Verarbeitung, Datenanalyse (Hadoop,Hive, Google Spanner & F1, . . . )
I NoSQL-Datenbanken („Not only SQL“): nicht-relationaleDatenbanken, flexibles Schema (dokumentenzentriert),„leichtgewichtig“ durch Weglassen von SQL-Funktionalitäten wieTransaktionen, mächtige deklarative Anfragesprachen mitVerbunden etc. (CouchDB, MongoDB, Cassandra, . . . )
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–36
Was sind Datenbanken? Historisches
Trends
Nutzergenerierte Inhalte, z.B. Google:I Verarbeitung von 20 PB täglichI 15h Video-Upload auf YouTube in jeder MinuteI Lesen von 20 PB würde 12 Jahre benötigen bei 50 MB/s-Festplatte
Linked Data und Data WebI Bereitstellung, Austausch und Verknüpfung von strukturierten
Daten im WebI ermöglicht Abfrage (mit Anfragesprachen wie SPARQL) und
WeiterverarbeitungI Beispiele: DBpedia, GeoNames
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–37
Was sind Datenbanken? Historisches
Zusammenfassung
Motivation für Einsatz von DatenbanksystemenCodd’sche Regeln3-Ebenen-Schemaarchitektur & DatenunabhängigkeitEinsatzgebiete
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–38
Was sind Datenbanken? Historisches
Kontrollfragen
Welchen Vorteil bieten Datenbanksystemegegenüber einer anwendungsspezifischenSpeicherung von Daten?Was versteht man unterDatenunabhängigkeit und wie wird sieerreicht?In welchen Bereichen kommenDatenbanksysteme zum Einsatz?
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 1–39