← Zurück zum Dashboard LF 11 Anwendungsentwicklung

FIAE Modul 07: Enterprise SQL & Datenbank-Modellierung (LF 11)

1NF bis 3NF Normalisierung, Multi-Table JOINs, Window Functions, ACID Transaktionen & ORM.

🗄️ Enterprise SQL & Datenbank-Modellierung (LF 11 AE)

Datenpersistenz für Anwendungsentwickler: Relationale Modellierung (ERM, Chen/Krähenfuß), Normalisierung bis zur 3. Normalform, DDL/DML/DCL Abfragen, Indizes, Transaktionen (ACID) und ORM-Frameworks.

1. Normalisierung: 1NF bis 3NF

  • 1. Normalform (1NF): Alle Attribute sind atomar (nicht weiter zerlegbar) und frei von Wiederholungsgruppen (z. B. Name aufteilen in Vorname und Nachname; keine kommagetrennten Telefonnummern).
  • 2. Normalform (2NF): Befindet sich in 1NF und jedes Nichtschlüssel-Attribut ist voll funktional abhängig vom gesamten Primärschlüssel (wichtig bei zusammengesetzten Primärschlüsseln!).
  • 3. Normalform (3NF): Befindet sich in 2NF und kein Nichtschlüssel-Attribut ist transitiv abhängig von einem anderen Nichtschlüssel-Attribut (z. B. Ort ist abhängig von PLZ, daher Auslagerung in separate Tabelle).

2. Komplexe SQL-Queries & ORM-Mapping

-- Aggregation mit HAVING und Datumsberechnung nach ZPA-Standard
SELECT k.kunde_id, k.firmenname, COUNT(b.bestell_nr) AS anzahl_bestellungen,
       SUM(b.gesamtbetrag) AS umsatz,
       DATEDIFF(NOW(), MAX(b.bestelldatum)) AS tage_seit_letzter_order
FROM kunden k
JOIN bestellungen b ON k.kunde_id = b.kunde_id
WHERE b.status = 'COMPLETED'
GROUP BY k.kunde_id, k.firmenname
HAVING SUM(b.gesamtbetrag) > 10000;
  

📝 Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)

Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:

SQL DDL CREATE TABLE mit Constraints 10 Punkte
Für eine Ticket-Verwaltung soll die Tabelle "ticket" per SQL angelegt werden: id (Ganzzahl, Primärschlüssel mit Autoinkrement), titel (Text, max. 100 Zeichen, Pflichtfeld), status (Text, Standardwert "OFFEN"), prioritaet (Ganzzahl, Werte nur von 1 bis 5 erlaubt), ersteller_id (Ganzzahl, Fremdschlüssel auf benutzer.id mit Kaskadierung beim Löschen).

Schreiben Sie das syntaktisch korrekte SQL-Statement nach ANSI/ISO-Standard.

💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung
SQL DML Aggregation und GROUP BY mit HAVING 10 Punkte
Gegeben sind die Tabellen kunden (id, name, stadt) und bestellungen (id, kunde_id, betrag, datum).

Formulieren Sie eine SQL-Abfrage, die den Kundennamen und die Gesamtsumme aller Bestellungen für jeden Kunden ausgibt, dessen Gesamtbestellwert 10.000 EUR überschreitet. Das Ergebnis soll absteigend nach der Summe sortiert sein.

💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung
SQL JOIN-Typen INNER vs LEFT vs FULL 6 Punkte
In einer Datenbank existieren mitarbeiter (id, name, abt_id) und abteilungen (id, bezeichnung). Einige Mitarbeiter haben keine Abteilung, und einige Abteilungen haben keine Mitarbeiter.

Erläutern Sie den Unterschied im Abfrageergebnis zwischen INNER JOIN und LEFT OUTER JOIN bezüglich der Ergebniszeilen.

💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung
SQL Subqueries mit IN und EXISTS 8 Punkte
Gegeben sind die Tabellen kunden (id, name, land) und bestellungen (id, kunde_id, summe).

Formulieren Sie zwei SQL-Abfragen, die alle Kundennamen ausgeben, die mindestens eine Bestellung getätigt haben: Einmal unter Verwendung einer Subquery mit IN und einmal mit EXISTS.

💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung
SQL Datums- und Zeitfunktionen (DATEDIFF & DATEADD) 8 Punkte
In einem Support-System (Tabelle tickets mit id, erstelldatum, schliessdatum) soll die Bearbeitungsdauer analysiert werden.

Formulieren Sie eine SQL-Abfrage nach ZPA-Standard, die für alle im laufenden Jahr geschlossenen Tickets die Ticket-ID und die Bearbeitungsdauer in Tagen berechnet (unter Verwendung von DATEDIFF) und nur Tickets anzeigt, deren Bearbeitung länger als 14 Tage gedauert hat.

💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung
← Vorheriges Modul 🏠 Kursübersicht Nächstes Modul →