Teil I Was sind Datenbanken? - dbse.ovgu.deI/ws2016/vorlesung/Kapitel1.pdf · ellung Sattler /...

40
Teil I Was sind Datenbanken?

Transcript of Teil I Was sind Datenbanken? - dbse.ovgu.deI/ws2016/vorlesung/Kapitel1.pdf · ellung Sattler /...

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