40
Teil I Was sind Datenbanken?

Teil I Was sind Datenbanken?105 Rammstein Deutschland Album ANr Titel Jahr Genre MNr! Musiker 1014 Amplified 2006 Rock 103 1015 Nord Nord Ost 2005 Rock 104 1016 Rosenrot 2005 Rock

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • 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

    www.mysql.orgwww.postgresql.org

  • 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