---
# System prepended metadata

title: Einführung in relationale Datenbanken

---

# Einführung in relationale Datenbanken

## Was ist eine relationale Datenbank?

Eine **relationale Datenbank** speichert Daten in **Tabellen**, ähnlich wie in einer Excel-Tabelle.  
Jede Tabelle besteht aus:
- **Zeilen** = einzelne Datensätze (z. B. ein Kunde)
- **Spalten** = Eigenschaften dieser Datensätze (z. B. Name, Adresse)

Tabellen werden über **gemeinsame Schlüssel (IDs)** miteinander **verknüpft**.  
So können Daten **geordnet, eindeutig und ohne Dopplungen** gespeichert werden.

**Beispiel:**
- **Kunden**-Tabelle: enthält eine eindeutige **Kundennummer (ID)**  
- **Bestellungen**-Tabelle: enthält die **Kundennummer (Fremdschlüssel)**, um festzulegen, **welcher Kunde** die Bestellung aufgegeben hat.

In **Django** werden diese Verknüpfungen durch **Modelle** und **Foreign Keys** umgesetzt.

---

## Beziehungen zwischen Tabellen

| Beziehung | Bedeutung | Beispiel (Onlineshop) | Umsetzung in Django |
|------------|------------|-----------------------|---------------------|
| **1 : 1** | Ein Datensatz in Tabelle A gehört zu genau einem in Tabelle B | Jeder **Kunde** hat genau **ein Kundenkonto** | `OneToOneField` |
| **1 : n** | Ein Datensatz in A gehört zu vielen in B | Jeder **Kunde** kann **mehrere Bestellungen** haben | `ForeignKey` |
| **m : n** | Viele Datensätze in A können mit vielen in B verknüpft sein | Eine **Bestellung** enthält **mehrere Produkte**, und jedes **Produkt** kann in **mehreren Bestellungen** vorkommen | `ManyToManyField` |

---

## Wichtige Begriffe

- **Primärschlüssel (Primary Key)** → eindeutige ID für jeden Datensatz  
- **Fremdschlüssel (Foreign Key)** → verweist auf eine ID in einer anderen Tabelle  
- **Relation** → logische Verbindung zwischen Tabellen über Schlüssel  

## Hilfreiche Links

- [Django Many-to-Many Beziehungen](https://docs.djangoproject.com/en/5.1/topics/db/examples/many_to_many/)
- [Django Many-to-One Beziehungen](https://docs.djangoproject.com/en/5.2/topics/db/examples/many_to_one/)
- [Django One-to-One Beziehungen](https://docs.djangoproject.com/en/5.1/topics/db/examples/one_to_one/)