Zum Inhalt springen

Relationale Datenbanken für Anfänger

Aus WikiJournal
Version vom 16. Januar 2025, 01:19 Uhr von Philip (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Was ist eine relationale Datenbank? == Stellen Sie sich vor, Sie betreiben einen Online-Shop. Sie haben Informationen über Kunden, deren Bestellungen und Produkte. Wie können Sie all diese Daten organisieren? Eine relationale Datenbank ermöglicht es, Informationen in miteinander verknüpften Tabellen zu speichern, ähnlich wie in Excel-Tabellen, jedoch wesentlich leistungsfähiger. == Grundkonzepte == === Tabellen === Jede Tabelle stellt eine best…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Was ist eine relationale Datenbank?

Stellen Sie sich vor, Sie betreiben einen Online-Shop. Sie haben Informationen über Kunden, deren Bestellungen und Produkte. Wie können Sie all diese Daten organisieren? Eine relationale Datenbank ermöglicht es, Informationen in miteinander verknüpften Tabellen zu speichern, ähnlich wie in Excel-Tabellen, jedoch wesentlich leistungsfähiger.

Grundkonzepte

Tabellen

Jede Tabelle stellt eine bestimmte Entität dar. Zum Beispiel:

  • Benutzertabelle (users)
  • Bestellungstabelle (orders)
  • Produkttabelle (products)

Felder (Spalten)

Jede Tabelle besteht aus Feldern. Für die Benutzertabelle könnten das beispielsweise sein:

  • id (eindeutiger Identifikator)
  • Name
  • E-Mail
  • Telefon
  • Registrierungsdatum

Datensätze (Zeilen)

Dies sind die konkreten Daten in einer Tabelle. Eine Zeile = ein Datensatz über einen Benutzer, eine Bestellung oder ein Produkt.

Wie sind Tabellen miteinander verknüpft?

Primärschlüssel

Jede Tabelle sollte einen eindeutigen Identifikator für jeden Datensatz haben. Typischerweise ist dies das Feld id:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(100)
);

Fremdschlüssel

Dies sind Felder, die eine Tabelle mit einer anderen verknüpfen. Zum Beispiel speichern wir in der Bestelltabelle die id des Benutzers:

CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    order_date DATETIME,
    total_amount DECIMAL(10,2),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

Arten von Beziehungen zwischen Tabellen

Eins-zu-eins (One-to-One)

Zum Beispiel kann ein Benutzer ein Profil mit zusätzlichen Informationen haben:

CREATE TABLE user_profiles (
    user_id INT PRIMARY KEY,
    address TEXT,
    phone VARCHAR(20),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

Eins-zu-viele (One-to-Many)

Die häufigste Art von Beziehung. Zum Beispiel kann ein Benutzer viele Bestellungen haben:

  • Ein Benutzer → Viele Bestellungen
  • Ein Produkt → Viele Bewertungen
  • Eine Kategorie → Viele Produkte

Viele-zu-viele (Many-to-Many)

Zum Beispiel kann eine Bestellung viele Produkte enthalten, und ein Produkt kann in mehreren Bestellungen vorkommen. Dafür wird eine Zwischentabelle erstellt:

CREATE TABLE order_items (
    order_id INT,
    product_id INT,
    quantity INT,
    FOREIGN KEY (order_id) REFERENCES orders(id),
    FOREIGN KEY (product_id) REFERENCES products(id),
    PRIMARY KEY (order_id, product_id)
);

Vorteile des relationalen Modells

  1. Datenintegrität: Das System stellt sicher, dass alle Verknüpfungen korrekt sind.
  2. Keine Duplikate: Informationen werden an einem Ort gespeichert und über Schlüssel verknüpft.
  3. Flexibilität: Neue Verknüpfungen können einfach hinzugefügt und die Struktur angepasst werden.
  4. Effizienz: Schnelle Suche und Verarbeitung von Daten dank Indizes.

Praktisches Beispiel

Betrachten wir ein einfaches Blog-System:

-- Benutzertabelle
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    email VARCHAR(100),
    created_at DATETIME
);

-- Beitragstabelle
CREATE TABLE posts (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    title VARCHAR(200),
    content TEXT,
    published_at DATETIME,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- Kommentarstabelle
CREATE TABLE comments (
    id INT PRIMARY KEY AUTO_INCREMENT,
    post_id INT,
    user_id INT,
    comment_text TEXT,
    created_at DATETIME,
    FOREIGN KEY (post_id) REFERENCES posts(id),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

In diesem Beispiel:

  • Ein Benutzer kann mehrere Beiträge erstellen (Eins-zu-viele)
  • Jeder Beitrag kann mehrere Kommentare haben (Eins-zu-viele)
  • Jeder Kommentar ist sowohl mit einem Beitrag als auch mit einem Benutzer verknüpft

Fazit

Relationale Datenbanken sind ein leistungsstarkes Werkzeug zur Organisation von Daten in einer Anwendung. Das Verständnis der grundlegenden Prinzipien ihrer Funktionsweise ist für Einsteiger entscheidend. Eine gut gestaltete Datenbankstruktur macht eine Anwendung zuverlässiger, effizienter und leichter wartbar.