Kardinalität
Kardinalität beschreibt in der Datenbankmodellierung, wie viele Instanzen einer Entität mit Instanzen einer anderen Entität in Beziehung stehen können (1:1, 1:n, n:m).
Auf dieser Seite
Kardinalität beschreibt in der Datenbankmodellierung die Anzahl der Instanzen einer Entität, die mit Instanzen einer anderen Entität in Beziehung stehen können. Das Konzept ist fundamental für das Design relationaler Datenbanken und beeinflusst direkt, wie Tabellen strukturiert und miteinander verknüpft werden. In der IT-Ausbildung, insbesondere für Fachinformatiker für Anwendungsentwicklung, gehört das Verständnis von Kardinalitäten zum unverzichtbaren Grundwissen.
Grundkonzept der Kardinalität
Der Begriff stammt ursprünglich aus der Mathematik, wo Kardinalität die Mächtigkeit einer Menge beschreibt, also die Anzahl ihrer Elemente. In der Informatik wird der Begriff jedoch spezifischer verwendet: Kardinalität definiert, wie viele Datensätze einer Tabelle mit wie vielen Datensätzen einer anderen Tabelle verknüpft sein können.
Bei der Modellierung von Datenbanken unterscheidet man zwischen zwei Aspekten:
- Maximale Kardinalität: Wie viele Instanzen einer Entität können maximal mit einer Instanz einer anderen Entität verknüpft sein?
- Minimale Kardinalität: Muss eine Beziehung existieren (obligatorisch) oder ist sie optional?
Die drei Kardinalitätstypen
Es gibt drei grundlegende Beziehungstypen, die durch ihre Kardinalität definiert werden. Diese zu verstehen ist essentiell für korrektes Datenbankdesign.
1:1-Beziehung (Eins-zu-Eins)
Bei einer 1:1-Beziehung ist jeder Datensatz in Tabelle A mit genau einem Datensatz in Tabelle B verknüpft, und umgekehrt. Diese Beziehungsart ist in der Praxis relativ selten, da die Daten oft in einer einzigen Tabelle zusammengefasst werden könnten.
Praktisches Beispiel: Jeder Mitarbeiter hat genau einen Mitarbeiterausweis, und jeder Ausweis gehört zu genau einem Mitarbeiter.
| MitarbeiterID | Name | AusweisID |
|---|---|---|
| 1 | Müller | A001 |
| 2 | Schmidt | A002 |
Anwendungsfälle für 1:1-Beziehungen:
- Aufteilung aus Sicherheitsgründen (sensible Daten in separater Tabelle)
- Auslagerung selten genutzter Attribute
- Performance-Optimierung bei sehr breiten Tabellen
1:n-Beziehung (Eins-zu-Viele)
Die 1:n-Beziehung ist der häufigste Beziehungstyp in relationalen Datenbanken. Eine Entität von Typ A kann mit beliebig vielen (n) Entitäten von Typ B verknüpft sein, aber jede Entität von B gehört zu genau einer Entität von A.
Praktisches Beispiel: Eine Abteilung hat viele Mitarbeiter, aber jeder Mitarbeiter arbeitet in genau einer Abteilung.
Abteilung:
| AbteilungsID | Name |
|---|---|
| 1 | Entwicklung |
| 2 | Vertrieb |
Mitarbeiter:
| MitarbeiterID | Name | AbteilungsID |
|---|---|---|
| 1 | Müller | 1 |
| 2 | Schmidt | 1 |
| 3 | Weber | 2 |
Bei der Implementierung wird der Fremdschlüssel immer auf der n-Seite (der “Viele”-Seite) eingefügt. Im Beispiel enthält die Mitarbeiter-Tabelle die AbteilungsID als Fremdschlüssel.
n:m-Beziehung (Viele-zu-Viele)
Bei einer n:m-Beziehung kann jede Entität von Typ A mit mehreren Entitäten von Typ B verknüpft sein, und umgekehrt. Diese Beziehung kann in relationalen Datenbanken nicht direkt abgebildet werden.
Praktisches Beispiel: Ein Student kann viele Kurse belegen, und ein Kurs wird von vielen Studenten besucht.
Zur Lösung wird eine Zwischentabelle (auch Verknüpfungstabelle oder Assoziationstabelle genannt) eingeführt. Diese enthält die Primärschlüssel beider Tabellen als Fremdschlüssel:
Student:
| StudentID | Name |
|---|---|
| 1 | Müller |
| 2 | Schmidt |
Kurs:
| KursID | Bezeichnung |
|---|---|
| 101 | Datenbanken |
| 102 | Programmierung |
Student_Kurs (Zwischentabelle):
| StudentID | KursID | Semester |
|---|---|---|
| 1 | 101 | WS2024 |
| 1 | 102 | WS2024 |
| 2 | 101 | WS2024 |
Die Zwischentabelle kann auch eigene Attribute speichern, die zur Beziehung gehören (im Beispiel: Semester). Dadurch wird die n:m-Beziehung in zwei 1:n-Beziehungen aufgelöst.
Notationen für Kardinalitäten
In der Praxis werden verschiedene Notationssysteme verwendet, um Kardinalitäten in ER-Diagrammen darzustellen. Die wichtigsten sind:
Chen-Notation
Die Chen-Notation, benannt nach Peter Chen (dem Entwickler des ER-Modells), ist die klassische Form. Sie verwendet einfache Zahlen:
- 1 = genau eins
- N oder M = viele (beliebig viele)
Beispiel: Abteilung ——(1)——arbeitet_in——(N)—— Mitarbeiter
Vorteil: Einfach und intuitiv. Nachteil: Kann nicht ausdrücken, ob eine Beziehung optional oder obligatorisch ist.
Min-Max-Notation
Die Min-Max-Notation (auch (min,max)-Notation) ist ausdrucksstärker. Sie verwendet ein Wertepaar (a,b), wobei a das Minimum und b das Maximum angibt:
- (0,1) = optional, maximal eins
- (1,1) = obligatorisch, genau eins
- (0,n) = optional, beliebig viele
- (1,n) = obligatorisch, mindestens eins
Beispiel: Mitarbeiter ——(1,1)——arbeitet_in——(0,n)—— Abteilung
Bedeutung: Jeder Mitarbeiter arbeitet in genau einer Abteilung (1,1). Eine Abteilung kann keinen oder viele Mitarbeiter haben (0,n).
Krähenfußnotation (Martin-Notation)
Die Krähenfußnotation verwendet grafische Symbole und ist in modernen Datenbank-Tools wie Microsoft Visio weit verbreitet:
- | (Strich) = genau eins
- O (Ring) = null (optional)
- < (Krähenfuß) = viele
Die Symbole werden kombiniert: Ein Ring mit Krähenfuß bedeutet “null bis viele”, ein Strich mit Krähenfuß bedeutet “mindestens eins bis viele”.
Kardinalität im ER-Modell
Im Entity-Relationship-Modell werden Beziehungen durch Rauten dargestellt, die Entitäten (Rechtecke) verbinden. Die Kardinalitäten werden an den Verbindungslinien notiert.
Ein wichtiges Konzept ist die Unterscheidung zwischen starken und schwachen Entitäten:
- Starke Entitäten existieren unabhängig und haben einen eigenen Primärschlüssel
- Schwache Entitäten sind existenzabhängig von einer anderen Entität und benötigen deren Schlüssel zur eindeutigen Identifikation
Beispiel: Eine Buchseite (schwache Entität) kann nicht ohne das zugehörige Buch (starke Entität) identifiziert werden.
Kardinalität in UML
In UML-Klassendiagrammen gibt es eine wichtige Unterscheidung: Multiplizität beschreibt die mögliche Anzahl von Verknüpfungen, während Kardinalität die tatsächliche Anzahl meint.
Beispiel: Ein Fahrzeug allgemein kann 1..* Räder haben (Multiplizität). Ein konkretes Auto hat genau 4 Räder (Kardinalität).
Die häufigsten Multiplizitätsangaben in UML sind:
- 1 = genau eins
- 0..1 = keins oder eins (optional)
- ***** = keins, eins oder mehrere (beliebig viele)
- 1..* = mindestens eins bis beliebig viele
Praktische Umsetzung mit SQL
Die Kardinalität beeinflusst direkt die Struktur deiner SQL-Tabellen:
-- 1:n-Beziehung: Fremdschlüssel auf der n-Seite
CREATE TABLE abteilung (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE mitarbeiter (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
abteilung_id INT NOT NULL,
FOREIGN KEY (abteilung_id) REFERENCES abteilung(id)
);
-- n:m-Beziehung: Zwischentabelle erforderlich
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE kurs (
id INT PRIMARY KEY,
bezeichnung VARCHAR(100) NOT NULL
);
CREATE TABLE student_kurs (
student_id INT,
kurs_id INT,
semester VARCHAR(20),
PRIMARY KEY (student_id, kurs_id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (kurs_id) REFERENCES kurs(id)
);
Kardinalität und Normalisierung
Die korrekte Modellierung von Kardinalitäten ist eng mit der Normalisierung verknüpft. Wenn n:m-Beziehungen nicht durch Zwischentabellen aufgelöst werden, entstehen Redundanzen und damit Anomalien bei der Datenmanipulation.
Zusammenhang mit Normalformen:
- Die Auflösung von n:m-Beziehungen in Zwischentabellen folgt den Prinzipien der Normalisierung
- Korrekte Kardinalitäten verhindern Update-, Insert- und Delete-Anomalien
- Die Platzierung von Fremdschlüsseln hängt direkt von der Kardinalität ab
Kardinalität in der IT-Ausbildung
Das Verständnis von Kardinalitäten ist ein zentrales Prüfungsthema sowohl in der Berufsschule als auch in der IHK-Abschlussprüfung. Typische Aufgaben umfassen:
- Erkennen von Kardinalitäten in Textbeschreibungen
- Erstellen von ER-Diagrammen mit korrekten Kardinalitäten
- Umwandlung von ER-Modellen in relationale Tabellen
- Identifikation der richtigen Platzierung von Fremdschlüsseln
Für Fachinformatiker für Anwendungsentwicklung und Fachinformatiker für Daten- und Prozessanalyse ist dieses Wissen besonders relevant, da es die Grundlage für professionelles Datenbankdesign bildet.
Quellen und weiterführende Links
Prüfungsbezug
Passt zu deiner Prüfungsvorbereitung
Wenn dir dieser Begriff in Aufgaben, Projektdokumentation oder Fachgespräch begegnet, ordne ihn direkt in den Prüfungsstoff ein.