Skript: Datenbanken und SQL mit der Warenautomat-Datenbank
1. Einstieg in Datenbanken
1.1 Was ist eine Datenbank?
Eine Datenbank speichert Daten strukturiert und dauerhaft. Im Unterschied zu einer einfachen Datei kann man Daten gezielt abfragen, ändern und mit Regeln absichern.
Ein DBMS (Datenbankmanagementsystem) ist die Software, die eine Datenbank verwaltet. Es sorgt dafür, dass Daten gespeichert, gelesen, geändert und geschützt werden können. Typische Aufgaben eines DBMS sind zum Beispiel die Benutzerverwaltung, die Ausführung von SQL-Befehlen, die Zugriffskontrolle und die Sicherung der Datenintegrität.
In der Praxis arbeitet ein DBMS oft in einer Client-Server-Architektur. Dabei läuft das DBMS auf einem Server, der die Daten zentral verwaltet. Ein Client, zum Beispiel ein Datenbankprogramm, eine Anwendung oder ein Webserver, sendet Anfragen an den Datenbankserver. Der Server verarbeitet diese Anfragen und liefert die passenden Ergebnisse zurück. Dadurch können mehrere Benutzer gleichzeitig auf dieselbe Datenbank zugreifen.
Die Warenautomat-Datenbank zeigt diese Grundbegriffe an einem realen Beispiel. Damit die Fachsprache klar ist, hilft folgende Zuordnung:
| Fachwort | Bedeutung | Beispiel (Warenautomat) |
|---|---|---|
| Tabelle (Relation) | Struktur für gleichartige Daten | automat, standort, produkt |
| Spalte (Attribut) | Beschreibt eine Eigenschaft | seriennummer, modell, status |
| Feld | Einzelner Zellenwert an der Kreuzung aus Zeile und Spalte | In automat.status: AKTIV |
| Zeile (Datensatz) | Eine vollständige Ausprägung eines Objekts | Ein konkreter Automat mit ID, Seriennummer, Modell |
| Tupel | Fachbegriff aus dem relationalen Modell für eine Zeile | Das gleiche wie eine Zeile, formal: ein Tupel |
| Primärschlüssel | Eindeutiger Identifikator eines Tupels | automat_id |
| Fremdschlüssel | Verweis auf Primärschlüssel einer anderen Tabelle | automat.standort_id -> standort.standort_id |
1.2 Relationale Datenbanken
Relationale Datenbanken speichern Daten in Tabellen (Relationen), die über Schlüssel miteinander verbunden sind. Das Ziel ist, Daten logisch zu trennen und trotzdem gemeinsam auswerten zu können.
Wichtige Merkmale:
- Jede Tabelle beschreibt genau einen inhaltlichen Bereich (z. B. Automat, Standort, Produkt).
- Jede Zeile (Tupel) ist eindeutig über einen Primärschlüssel identifizierbar.
- Beziehungen zwischen Tabellen werden über Fremdschlüssel hergestellt.
- SQL erlaubt das gemeinsame Abfragen mehrerer Tabellen über JOINs.
- Integritätsregeln (
NOT NULL,UNIQUE,CHECK, FK-Constraints) sichern Datenqualität.
[!NOTE] Beispiel aus der Warenautomat-Datenbank:
standortenthält Stammdaten zum Ort.automatenthält Stammdaten zum Gerät und verweist überstandort_idaufstandort.inventarverknüpftautomatundproduktund speichert beziehungsbezogene Daten wie Fachnummer und Bestand.
Dadurch werden Redundanzen vermieden: Eine Adressänderung am Standort wird genau einmal in standort gepflegt und gilt sofort für alle zugeordneten Automaten.
Querverweise
Übungen zum Kapitel
Übung 1: Ordne die Begriffe automat, standort, seriennummer und eine konkrete Automatenzeile den passenden Datenbankbegriffen zu.
Lösung
**Lösung:** `automat` und `standort` sind Tabellen, `seriennummer` ist eine Spalte, und eine konkrete Automatenzeile ist ein Datensatz.Übung 2: Warum ist es sinnvoll, den Standort nicht als Text in jeder Automatenzeile zu speichern?
Lösung
**Lösung:** Weil der Standort sonst mehrfach gespeichert würde und Änderungen fehleranfällig wären.Übung 3: Nenne einen weiteren Vorteil relationaler Tabellen in der Warenautomat-Datenbank.