Prof. Dr.-Ing. Johannes Schildgen
johannes.schildgen@oth-regensburg.de

Datenbanken

Kapitel 1: Grundlagen

2020-10-13

Vorlesung

Vorlesung (ab 2020-10-13)

  • Di, 10:00 Uhr (über YouTube Live)
  • Fr, 11:45 Uhr (über YouTube Live)

Übung

Übungblätter (ab 2020-10-19)

  • Jede Woche ein Übungsblatt; insgesamt 12 Stück
  • Aufgabe 1 (gibt i.d.R. 10 Punkte):
    Abgabe online bis Montag 12:00 Uhr

Übung (ab 2020-10-28)

  • Besprechung von Aufgabe 2 etc. in 2er-Gruppen
  • Mi, 11:00 - 16:00 Uhr (5-Minuten-Slots über Zoom)
  • Mi, 16:00 (Beispiellösung über YouTube Premiere)

Übung

Präsenzübungen (Übung 4, 8, 12)

  • Mi 18.11., 16.12., 27.01. (statt Zoom-Slots)
    • 10:00 Uhr (IM_DB_I3I4_1) in K017
    • 11:45 Uhr (IM_DB_I3I4_2) in K016
    • 13:30 Uhr (IM_DB_I3I4_3) in K018
    • 15:15 Uhr (IM_DB_I3I4_4) in K005

Klausur

Klausur

  • Zulassungsvorraussetzung:
    mind. 100 Punkte in der Übung
  • Schriftliche Klausur
  • 90 Minuten Zeit
  • Hilfsmittel: Handschriftlich
    doppelseitig beschriebenes DIN-A4-Blatt

Literatur

1
  • J. Schildgen
    Sprachkurs SQL - Das Datenbanken-Hörbuch
  • A. Kemper, A. Eickler
    Datenbanksysteme - Eine Einführung
  • A. Heuer, K.-U. Sattler, G. Saake
    Datenbanken: Konzepte und Sprachen
  • C. J. Date
    An Introduction to Database Systems

Aufbau der Vorlesung

  1. Datenbanken-Grundlagen
  2. Logischer DB-Entwurf: ER-Modellierung

[[ { _e: "Person", pos: [150, 100], attributes: [ { _a:"PersNr", options:["primary"], pos: [89, 13] }, { _a:"Name", pos: [245, 13] } ] }, { _e: "Termin", pos: [530, 100], attributes: [ { _a:"Datum", pos: [475, 25], options:["primary"] }, { _a:"Uhrzeit", pos: [634, 25], options:["primary"] }, { _a:"Raum", pos: [722, 106], options:["primary"] }, { _a:"Dauer", pos: [650, 189]}, { _a:"Bezeichnung", pos: [475, 189]} ] } ], [ { _r: "nimmt teil", _e: ["Person", "Termin"], card: ["N", "M"] } ]]

Aufbau der Vorlesung

  1. Datenbanken-Grundlagen
  2. Logischer DB-Entwurf: ER-Modellierung
  3. Das Relationenmodell
termine
DatumUhrzeitRaumDauerBezeichnung
2020-10-1414:1517-12390Dings-Meeting
2020-10-1510:1517-22260Treffen mit Jürgen
2020-10-2114:1517-22260Treffen mit Frau Becker
2020-10-2116:00Cafeteria45Kaffee trinken

Aufbau der Vorlesung

  1. Datenbanken-Grundlagen
  2. Logischer DB-Entwurf: ER-Modellierung
  3. Das Relationenmodell
  4. Relationale Algebra

\[\pi_{Uhrzeit,~Bezeichnung}\sigma_{Datum = '2020-10-14'}(Termine) \]

Aufbau der Vorlesung

  1. Datenbanken-Grundlagen
  2. Logischer DB-Entwurf: ER-Modellierung
  3. Das Relationenmodell
  4. Relationale Algebra
  5. SQL


SELECT uhrzeit, bezeichnung FROM termine
WHERE datum = '2020-10-14'
					

Aufbau der Vorlesung

  1. Datenbanken-Grundlagen
  2. Logischer DB-Entwurf: ER-Modellierung
  3. Das Relationenmodell
  4. Relationale Algebra
  5. SQL
  6. Entwicklung von DB-Anwendungen
  7. Indexstrukturen
  8. Transaktionen

Informationssysteme

Ein computergestütztes Programmsystem,
welches Informationen...

  • erfasst,
  • dauerhaft speichert,
  • verarbeitet,
  • verändert,
  • analysiert,
  • bereitstellt,
  • anzeigt.

Anwendungsklasse: OLTP

OLTP (OnLine Transaction Processing)

Abwicklung von Transaktionen auf den operationalen Daten

Gib mir alle Details zu Buch 2817;
Berechne die Durchschnittsbewertung von Buch 2817;
Kunde 123456 bestellt Buch 2817;

Anwendungsklasse: OLAP

OLAP (OnLine Analytical Processing)

Analyse von Datenbeständen;
meist in einem Data-Warehouse

Finde diejenigen Bücher, die in den
letzten 3 Monaten die höchsten Umsätze
generierten;

DW

DB

Data Mining

Anwendung statistischer Methoden, um in großen Datenmengen

  • Querverweise / Beziehungen
  • Trends
  • Muster
  • (Un-)Regelmäßigkeiten

zu erkennen.

Transkationskonzept

  • DBMS unterstützt Mehrbenutzerbetrieb
  • TA = Folge mehrerer DB-Operationen als eine Einheit
  • TAs laufen parallel
  • Fehlerhafte TAs werden vollständig zurückgesetzt
konto1.kontostand -= 100;
konto2.kontostand += 100;
commit;

Was bedeutet Commit?

  • Abbruch der TA
  • Erfolgreiches Abschließen der TA
  • Pausieren der TA
  • Fortsetzen der TA

https://frage.space

Was bedeutet Atomarität?

  • Eine Transaktion besteht immer nur aus einer Operation
  • Eine Transaktion darf nie parallel mit anderen laufen
  • Mehrere Transaktionen hintereinander bilden eine Einheit
  • Eine Transaktion wird ganz oder gar nicht ausgeführt

https://frage.space

ACID-Transaktionen

  • Atomarität
  • Konsistenz
  • Isolation
  • Dauerhaftigkeit
konto1.kontostand -= 100;
konto2.kontostand += 100;
commit;

Geht's auch ohne Datenbank?

2-4
  • Speicherung von Daten in Dateien
  • (-) Komplexe Anwendungsentwicklung
  • (-) Ineffizient (langsam)
  • (-) Keine Anfragesprache
  • (-) Kein ACID
  • (-) Redundanz

DB, DBMS, DBS

5

Datenbank (DB)
Sammlung von Daten

Datenbankmanagementsystem
Standardsoftware zur Definition,
Verwaltung, Verarbeitung
und Auswertung von DB-Daten

Datenbanksystem
DBS = DB + DBMS

DBMS

DB

DBS

PostgreSQL ist ...?

  • ... eine Datenbank
  • ... ein Datenbankmanagementsystem
  • ... ein Datenbanksystem

https://frage.space

Anfragesprachen

Benutzer und Anwendungen sprechen mit dem DBMS in einer Anfragesprache (Query Language).

Data Definition Language (DDL)

zur Definition des DB-Schemas

Data Manipulation Language (DML)

für den lesenden und schreibenden Zugriff auf die Daten

Anfrageausführung

6

									SELECT uhrzeit, bezeichnung FROM termine
									WHERE datum = '2020-10-14'
									
  1. Benutzer schickt die Anfrage an das DBMS
  2. DBMS generiert Anfrageplan
  3. DBMS optimiert den Plan
  4. DBMS führt den Anfrageplan aus
    • Daten aus DB lesen
    • Operationen durchführen (Join, Index-Scan, ...)
  5. Ergebnis wird zurück an den Benutzer geschickt

Metadaten und Daten

termine
DatumUhrzeitRaumDauerBezeichnung
2020-10-1414:1517-12390Dings-Meeting
2020-10-1510:1517-22260Treffen mit Jürgen

Metadaten (Datenbankschema):

  • Festlegung der Struktur der zu speicherenden Daten
  • weitgehend zeitinvariant; gespeichert im DB-Katalog

Daten (Ausprägungen):

  • veränderlich

Datenmodellierung

Konzeptionelles Datenmodell

  • Unabhängig vom eingesetzten DBMS
  • ER-Diagramme, UML, ...
[[ { _e: "Personen", pos: [150, 100], attributes: [ { _a:"PersNr", options:["primary"], pos: [89, 13] }, { _a:"Name", pos: [245, 13] } ] }, { _e: "Termine", pos: [530, 100], attributes: [ { _a:"Datum", pos: [475, 25], options:["primary"] }, { _a:"Uhrzeit", pos: [634, 25], options:["primary"] }, { _a:"Raum", pos: [722, 106], options:["primary"] }, { _a:"Dauer", pos: [650, 189]}, { _a:"Bezeichnung", pos: [475, 189]} ] } ], [ { _r: "nehmen teil", _e: ["Personen", "Termine"], card: ["N", "M"] } ]]

Datenmodellierung

Logisches Datenmodell

  • Prominentestes Datenmodell: Das Relationenmodell
  • Andere: objekt-relational, hierarchisch, netzwerkartig, objektorientiert (→ NoSQL)
CREATE TABLE termine (
 datum DATE, uhrzeit CHAR(5), raum VARCHAR(15), dauer INT,
 bezeichnung VARCHAR(200), PRIMARY KEY(datum, uhrzeit, raum));
								

Physisches Datenmodell

  • Interne Speicherung und Organisation der Daten

Worum geht's hier gerade überhaupt?

  • um Daten
  • um Metadaten
  • Das wüsst' ich auch mal gern

https://frage.space

Evolution der Datenmodelle

1960              1970              1980              1990             2000             2010             2020

Hierarchical

Network

Relational

SQL

CODASYL

ER Model

Object-Oriented

Object-Relational

Semi-Structured

XML

NoSQL

Multi-Model

Datenabstraktion

Externe Ebene (Sichten / Views)

Sicht auf eine Teilmenge des
logischen Schemas für eine
bestimmte Benutzergruppe

Logische Ebene

DB-Gesamt-Schema

Physische Ebene

Internes Schema / Speicherung der Daten

Sicht

Sicht

Sicht

log. Schema

int. Schema

Datenabstraktion (Bsp.)

Externe Ebene (View für Webshop-Anwendung)

ProduktnrBezeichnungPreisBewertung
17Schokoriegel0.894.5
29Spülmaschinentabs3.992.0

Logische Ebene

ProduktnrBezeichnungPreis
17Schokoriegel0.89
29Spülmaschinentabs3.99
KundennrProduktnrBew
5174
8175
5292

Physische Ebene: 0010110000000100101111010101...

Datenunabhängigkeit

Logische Datenunabhängigkeit

Änderungen am logischen Schema
(z. B. Spaltenumbenennung) erfordern
lediglich eine Anpassung der externen
Sichten. Anwendungen bleiben unberührt.

Physische Datenunabhängigkeit

Änderungen an internen Speicher- oder
Zugriffsstrukturen haben keine Auswirkungen
auf das logische oder externe Schema.

Architektur von DBMS

Vereinfachtes Modell: 3-Schichten-Modell

Datensystem

Übersetzung und Optimierung von Anfragen

Zugriffssystem

Verwaltung von Datensätzen und Indexen

Speichersystem

Blockverwaltung und Caching

DB

Speichersystem

Zugriffssystem

Datensystem

Anfrage

Kapitelzusammenfassung

  • OLTP / OLAP
  • ACID-Transaktionen
  • DB + DBMS = DBS
  • DDL / DML
  • Metadaten / Daten
  • Konzept. / Log. / Phys. Datenmodell
  • Ext. / Log. / Phy. Datenebene
  • Datensystem / Speichersystem / Zugriffssystem