# Kapitel 8 – IHK-Aufgaben und Übersichten



# 8.1 ERM-Aufgaben lösen

**Definition**

Bei **ERM-Aufgaben** wird aus einer Beschreibung ein Datenmodell erstellt.

Dabei werden Entitäten, Attribute, Beziehungen und Kardinalitäten bestimmt.

---

**Vorgehen**

| Schritt | Aufgabe |
|--------|---------|
| 1 | Entitäten erkennen |
| 2 | Attribute zuordnen |
| 3 | Primärschlüssel festlegen |
| 4 | Beziehungen bestimmen |
| 5 | Kardinalitäten eintragen |
| 6 | N:M-Beziehungen auflösen |
| 7 | Relationenmodell ableiten |

---

**Typische Entitäten**

Entitäten sind häufig Substantive im Aufgabentext.

Beispiele:

- Kunde
- Bestellung
- Artikel
- Rechnung
- Mitarbeiter
- Abteilung

---

**Typische Beziehungen**

Beziehungen ergeben sich häufig aus Verben im Aufgabentext.

Beispiele:

- Kunde gibt Bestellung auf
- Bestellung enthält Artikel
- Mitarbeiter gehört zu Abteilung
- Rechnung bezieht sich auf Bestellung

---

**Kardinalitäten**

| Aussage im Text | Typische Kardinalität |
|----------------|----------------------|
| genau ein | 1 |
| mehrere | n |
| kann mehrere | n |
| gehört zu genau einem | 1 |
| enthält mehrere | n |

---

**Merksatz**

Substantive werden oft zu Entitäten.  
Verben zeigen häufig Beziehungen.

---

**Prüfungshinweis**

In IHK-Aufgaben wird häufig ein Text vorgegeben, aus dem ein ERM oder Relationenmodell erstellt werden muss.

Typische Fehler:

- Attribute als Entitäten darstellen.
- Beziehungen vergessen.
- Kardinalitäten falsch bestimmen.
- N:M-Beziehungen nicht auflösen.
- Primär- und Fremdschlüssel nicht kennzeichnen.

---

**Quellen**

- IT-Handbuch für Fachinformatiker

# 8.2 SQL-Aufgaben lösen

**Definition**

Bei **SQL-Aufgaben** wird aus einer Aufgabenstellung eine passende SQL-Abfrage erstellt.

Dabei müssen Tabellen, Spalten, Bedingungen und ggf. JOINs erkannt werden.

---

**Vorgehen**

| Schritt | Aufgabe |
|--------|---------|
| 1 | Gesuchte Ausgabe erkennen |
| 2 | Benötigte Tabelle bestimmen |
| 3 | Benötigte Spalten auswählen |
| 4 | Bedingungen aus dem Text ableiten |
| 5 | Falls nötig JOIN verwenden |
| 6 | Falls nötig gruppieren oder sortieren |
| 7 | SQL-Reihenfolge prüfen |

---

**Typische Signalwörter**

| Formulierung | SQL-Bestandteil |
|-------------|----------------|
| „zeige“ / „liste“ | SELECT |
| „aus Tabelle“ | FROM |
| „nur“ / „bei denen“ | WHERE |
| „sortiert nach“ | ORDER BY |
| „Anzahl“ | COUNT |
| „Summe“ | SUM |
| „Durchschnitt“ | AVG |
| „pro Kunde / je Ort“ | GROUP BY |
| „mehr als / weniger als“ bei Gruppen | HAVING |

---

**Beispiel**

Aufgabe:

Alle Kunden aus Berlin anzeigen.

```sql
SELECT *
FROM kunde
WHERE ort = 'Berlin';
```

---

**Beispiel mit Sortierung**

Aufgabe:

Alle Artikel nach Preis absteigend sortieren.

```sql
SELECT *
FROM artikel
ORDER BY preis DESC;
```

---

**Merksatz**

Erst verstehen, was ausgegeben werden soll, dann SQL schreiben.

---

**Prüfungshinweis**

In IHK-Aufgaben ist die richtige SQL-Reihenfolge besonders wichtig.

Typische Fehler:

- SELECT-Spalten falsch auswählen.
- WHERE-Bedingung vergessen.
- Textwerte ohne Anführungszeichen schreiben.
- ORDER BY an die falsche Stelle setzen.
- GROUP BY und HAVING verwechseln.
- JOIN vergessen, obwohl Daten aus mehreren Tabellen benötigt werden.

---

**Quellen**

- IT-Handbuch für Fachinformatiker

# 8.3 JOIN-Übersicht

**Definition**

Ein **JOIN** verbindet Datensätze aus mehreren Tabellen.

JOINs werden verwendet, wenn benötigte Daten auf mehrere Tabellen verteilt sind.

---

**Wichtige JOIN-Arten**

| JOIN-Art | Bedeutung |
|---------|-----------|
| INNER JOIN | nur passende Datensätze aus beiden Tabellen |
| LEFT JOIN | alle Datensätze der linken Tabelle |
| RIGHT JOIN | alle Datensätze der rechten Tabelle |
| FULL OUTER JOIN | alle Datensätze aus beiden Tabellen |

---

**INNER JOIN**

Gibt nur Datensätze aus, bei denen die Join-Bedingung in beiden Tabellen erfüllt ist.

```sql
SELECT kunde.name, bestellung.bestellnr
FROM kunde
INNER JOIN bestellung
ON kunde.kundennr = bestellung.kundennr;
```

---

**LEFT JOIN**

Gibt alle Datensätze der linken Tabelle aus.

Fehlende passende Datensätze der rechten Tabelle werden mit **NULL** dargestellt.

```sql
SELECT kunde.name, bestellung.bestellnr
FROM kunde
LEFT JOIN bestellung
ON kunde.kundennr = bestellung.kundennr;
```

---

**Grundregel**

JOINs werden meistens über **Primärschlüssel** und **Fremdschlüssel** verbunden.

---

**Merksatz**

INNER JOIN = nur passende Datensätze  
LEFT JOIN = alle Datensätze links + passende rechts

---

**Prüfungshinweis**

In IHK-Aufgaben ist meist entscheidend, ob auch Datensätze ohne passende Beziehung angezeigt werden sollen.

Typische Fehler:

- INNER JOIN und LEFT JOIN verwechseln.
- JOIN-Bedingung vergessen.
- falsche Schlüssel verbinden.
- linke und rechte Tabelle vertauschen.
- NULL-Werte bei LEFT JOIN nicht beachten.

---

**Quellen**

- IT-Handbuch für Fachinformatiker

# 8.4 Normalformen-Übersicht

**Definition**

**Normalformen** sind Regeln zur Strukturierung von Tabellen in relationalen Datenbanken.

Ziel ist es, Redundanzen, Inkonsistenzen und Anomalien zu vermeiden.

---

**Übersicht**

| Normalform | Kernaussage |
|-----------|-------------|
| 1. Normalform | alle Werte sind atomar |
| 2. Normalform | jedes Nicht-Schlüsselattribut hängt vom gesamten Primärschlüssel ab |
| 3. Normalform | keine Nicht-Schlüsselattribute hängen voneinander ab |

---

**1. Normalform**

Eine Tabelle ist in der **1. Normalform**, wenn jedes Feld nur einen einzelnen Wert enthält.

**Nicht erlaubt:**

- mehrere Telefonnummern in einem Feld
- Listen in einer Zelle
- zusammengesetzte Werte in einem Feld

---

**2. Normalform**

Eine Tabelle ist in der **2. Normalform**, wenn sie in der 1. Normalform ist und jedes Nicht-Schlüsselattribut vom gesamten Primärschlüssel abhängig ist.

Wichtig besonders bei:

- zusammengesetzten Primärschlüsseln
- Zwischentabellen
- N:M-Beziehungen

---

**3. Normalform**

Eine Tabelle ist in der **3. Normalform**, wenn sie in der 2. Normalform ist und keine Nicht-Schlüsselattribute voneinander abhängig sind.

---

**Merksatz**

1NF = atomare Werte  
2NF = vom ganzen Schlüssel abhängig  
3NF = nur vom Schlüssel abhängig

---

**Prüfungshinweis**

In IHK-Aufgaben werden meistens die **1. bis 3. Normalform** abgefragt.

Typische Fehler:

- mehrere Werte in einem Feld zulassen
- zusammengesetzten Primärschlüssel nicht beachten
- abhängige Attribute in derselben Tabelle lassen
- Normalisierung nur als Speicherplatzersparnis verstehen

---

**Quellen**

- IT-Handbuch für Fachinformatiker

# 8.5 Häufige Verwechslungen

**Definition**

**Häufige Verwechslungen** sind Begriffe, die in Datenbankaufgaben ähnlich wirken, aber fachlich unterschiedliche Bedeutungen haben.

---

**Grundbegriffe**

| Begriff 1 | Begriff 2 | Unterschied |
|----------|-----------|-------------|
| Datenbank | DBMS | Datenbank enthält Daten, DBMS verwaltet Daten |
| Tabelle | Datensatz | Tabelle enthält mehrere Datensätze |
| Datensatz | Feld | Datensatz = Zeile, Feld = einzelner Wert |
| Attribut | Datensatz | Attribut = Spalte, Datensatz = Zeile |

---

**Schlüssel**

| Begriff 1 | Begriff 2 | Unterschied |
|----------|-----------|-------------|
| Primärschlüssel | Fremdschlüssel | Primärschlüssel identifiziert, Fremdschlüssel verweist |
| Primärschlüssel | Attribut | Primärschlüssel ist ein besonderes Attribut |
| Fremdschlüssel | Beziehung | Fremdschlüssel setzt eine Beziehung technisch um |

---

**Datenmodellierung**

| Begriff 1 | Begriff 2 | Unterschied |
|----------|-----------|-------------|
| Entität | Attribut | Entität = Objekt, Attribut = Eigenschaft |
| Entität | Entitätstyp | Entität = einzelnes Objekt, Entitätstyp = Gruppe gleichartiger Objekte |
| Beziehung | Kardinalität | Beziehung verbindet Entitäten, Kardinalität beschreibt die Anzahl |
| N:M-Beziehung | Zwischentabelle | N:M wird durch eine Zwischentabelle aufgelöst |

---

**SQL**

| Begriff 1 | Begriff 2 | Unterschied |
|----------|-----------|-------------|
| WHERE | HAVING | WHERE filtert Datensätze, HAVING filtert Gruppen |
| GROUP BY | ORDER BY | GROUP BY gruppiert, ORDER BY sortiert |
| COUNT | SUM | COUNT zählt Datensätze, SUM addiert Werte |
| INNER JOIN | LEFT JOIN | INNER JOIN nur passende, LEFT JOIN alle linken Datensätze |
| DELETE | DROP | DELETE löscht Datensätze, DROP löscht Tabellen oder Datenbankobjekte |

---

**Normalisierung**

| Begriff 1 | Begriff 2 | Unterschied |
|----------|-----------|-------------|
| Redundanz | Inkonsistenz | Redundanz = doppelte Daten, Inkonsistenz = widersprüchliche Daten |
| 1. Normalform | 2. Normalform | 1NF = atomar, 2NF = abhängig vom ganzen Schlüssel |
| 2. Normalform | 3. Normalform | 2NF betrifft Schlüsselabhängigkeit, 3NF transitive Abhängigkeiten |
| Normalisierung | Denormalisierung | Normalisierung reduziert Redundanz, Denormalisierung nimmt Redundanz bewusst in Kauf |

---

**Merksatz**

Viele Datenbankfehler entstehen durch verwechselte Begriffe.

---

**Prüfungshinweis**

In IHK-Aufgaben immer genau lesen, ob nach **Modellierung**, **Schlüsseln**, **SQL-Abfrage** oder **Normalisierung** gefragt wird.

Typische Fehler:

- Tabelle und Datensatz verwechseln.
- Primärschlüssel und Fremdschlüssel verwechseln.
- WHERE und HAVING verwechseln.
- GROUP BY und ORDER BY verwechseln.
- N:M-Beziehung ohne Zwischentabelle umsetzen.

---

**Quellen**

- IT-Handbuch für Fachinformatiker