Datenbanksysteme
Contents
Ein System zum speichern und Verwalten von Daten
Ausfallsicherheit und Skalierbarkeit nur mit hohem Aufwand erreichbar.
- Redundanz und Inkonsistenz
- Verschiedene Datenformate
- Probleme beim Mehrbenutzerbetrieb
- Verlust von Daten
- Integritätsverletzungen
- Sicherheitsprobleme
- Hohe Entwicklungskosten für Anwendungsprogramme
Datenunabhängigkeit
Sicht: beschreibt wie ein Benutzer die Daten sieht Logische Ebene: beschreibt wie die Daten strukturiert sind Physische Ebene: beschreibt wie die Daten gespeichert wird
- DBS entkoppelt Anwendungen von der eigentlichen Struktur und Speicherung der Daten
- Logische Datenunabhäangigkeit
- Änderungen auf der logischen Ebene haben keinen Einfluß auf Anwendungen
- Physische Datenunabhäangigkeit
- Änderungen auf der physischen Ebene haben keinen Einfluß auf Anwendungen
- Wird in fast allen modernen DBS durchgesetzt
Deklarative Anfragesprache
- Benutzer sagt DBS was für Daten geholt werden sollen ...
- ... und nicht wie die Daten geholt werden sollen
- Weniger fehleranfällig (beim Formulieren von Anfangen / Entwickeln von Anwendungen), da kein wissen über die tieferen Schichten des DBS nötig sind.
Mehrbenutzersynchronisation
- Wenn mehrere Benutzer ohne jegliche Kontrolle gleichzeitig Daten ändern können, gibt es große Probleme
- DBS erlaubt gleichzeitigen Zugriff und verhindert schlimme Seiteneffekte
Fehlerbehandlung
- DBS kann Zustand zum Zeitpunkt eines Absturzes rekonstruieren
- Dafür werden Logdateien vom DBS angelegt und verwaltet
Datenintegrität
- Datenverarbitung in einer anwendung läuft nicht völlig zufallig ab, sondern folgt gewissen Prinzipien
- DBS befolgt (angegebene) Prinzipien und schützt so vor:
- Benutzerfehlern
- Programmfehlern
Effizienz und Skalierbarkeit
- DBSe sind für groß angelegte Anwendungen konzipiert
- In DBSen sind Techniken integriert, die mit großen Datenvolumen umgehen können
Grobe Architektur
Detalierte Übersicht
Datenmodellierung
Ein Benutzer muss immer noch die Anforderungen einer Anwendung und die Art von daten die gespeichert werden sollen spezifieren
Zwei wichtige konzepte beim Entwurf
Es legt fest, welche Konstrukte zum Beschreiben der Daten existieren
→ SQL: Das relatione Modell ist dein Datenmodell. Deine "Lego-Bausteine" sind Konzepte wie Tabellen, Spalten (mit Datentypen wie VARCHAR, INT, BOOLEAN) Primärschlüssel und Fremdschlüssel. Das Modell gibt vor, dass Daten in Tabellen organisiert werden und wie diese Tabellen miteinander in Beziehung stehen können
eine konkrete Bescreibung einer bestimmten Datensammlung (unter Verwendung eines Datenmodells)
→ SQL: deine CREATE TABLE Anweisungen sind dein Schema. Wenn man schreibt:
CREATE TABLE Kunden (
kunden_id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255),
age INT
);
... dan hast du gerade das Schema für eine Kundendatenbank definiert-
Datenmodelle
- Entity-Relationship-Modell (ER-Modell)
- Unified Modeling Language (UML)
- Hierarchisches Modell
- Netzwerkmodell
- Relationales Modell
- Objekt-orientiertes Modell
- Objekt-relationales Modell
- Semistrukturiertes Modell
- Graphstrukturiertes Modell
Schritte der modellierung
- Viele Anwendungen haben ähnliche Erfordernisse, was die Datenverwaltung angeht
- Ein DBS bildet eine gemeinsame Basis und bietet eine Infrastruktur, die diese Anwendungen unterstützt





