653
Kapitel 24
Datenbanken
Dieses Kapitel enthält eine kurze Einführung in die Datenbanktechnik und beschreibt
einige Möglichkeiten, wie man Datenbanksysteme in Python-Skripten nutzen kann. Fol-
gende Punkte werden angesprochen:
Wie modelliert man einen Wirklichkeitsausschnitt durch ein Entity-Relationship-Dia-
gramm?
Wie erstellt man eine Datenbank mit dem Python-Modul sqlite3?
Wie kann man mit Verschlüsselungstechnik eine Datenbank vor unberechtigtem
Zugriff schützen?
Entwicklung eines Online-Datenbanksystems
24.1 Was ist ein Datenbanksystem?
Eine Datenbank (DB) ist eine Sammlung von Daten, die von menschlichen Benutzern oder
Computerprogrammen als gemeinsame Wissensbasis verwendet wird. Der Zugriff auf die
Daten wird von der Datenbanksoftware, dem Datenbank-Management-System (DBMS)
geregelt. Beides zusammen – DB und DBMS – bezeichnet man als Datenbanksystem. Pro-
gramme, die mit großen Datenmengen umgehen, stützen sich häufig auf Datenbanksys-
teme. Das DBMS übernimmt dann Standardaufgaben, die in der Anwendungssoftware
nicht noch einmal implementiert werden müssen. Typische Aufgaben des DBMS sind:
Bereitstellen von Operationen zur Datenspeicherung, -suche und -änderung
Gewährleistung von Datenschutz, insbesondere durch Verhinderung nicht autorisierten
Zugriffs
Gewährleistung von Datensicherheit, d.h. Schutz vor Vernichtung und Verfälschung
Die Architektur eines Datenbanksystems wird meist durch ein Drei-Schichten-Modell be-
schrieben (Abbildung 24.1).
Im konzeptuellen Modell wird eine logische Gesamtsicht auf die Daten definiert. Das
Ziel ist eine plausible modellhafte Darstellung eines Wirklichkeitsausschnitts, etwa
einer Universität oder eines Unternehmens, die eine gewisse zeitliche Stabilität hat. Von
technischen Aspekten (wie effiziente Speicherung oder schneller Zugriff) wird abstra-
hiert. Bei relationalen Datenbanken – auf die wir gleich zu sprechen kommen – verwen-
det man Entity-Relationship-Diagramme zur Darstellung des konzeptuellen Modells.
Man beachte, dass das konzeptuelle Modell keine Daten, also tatsächliche Werte enthält,
sondern nur eine Beschreibung der »logischen Struktur«.

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.