Aufgabe Vorschlag B - 2.2 · Abitur Hessen Praktische Informatik LK 2022
Thema: SQL-Anweisungen und Transaktionen · Aus der Prüfung LK (2022)
Aufgabenstellung
Material 6
ER-Diagramm
Hinweise: Der Abschluss von Darlehensverträgen ist von der Führung eines Gehaltskontos (Girokonto) des Kreditnehmers bei der Bank abhängig. Summe legt die aufgenommene Kreditsumme fest. Die Darlehensrate (Attribut rate) setzt sich aus der Tilgungsrate und dem Zinsanteil zusammen. Mit Turnus wird die Anzahl der Ratenzahlungen pro Jahr bestimmt (12 monatlich, 4 vierteljährlich, 1 jährlich). Die Laufzeit wird in Jahren angegeben. Auf Wunsch des Kunden kann eine höhere als die Mindest-Rate vereinbart werden.
Einige Daten der Datenbank sollen ergänzt, geändert bzw. ausgewertet werden. Folgende Funktionen stehen zur Verfügung:
NOW() liefert das aktuelle Tagesdatum.
POWER(m, n) liefert das Ergebnis von .
ROUND(x, n) liefert den auf Nachkommastellen gerundeten Betrag .
2.2.1
Die letzten zehn Buchungen des Kontos mit der IBAN DE06 5502 0500 0222 2222 22 sollen nach Buchungstag absteigend sortiert ausgegeben werden. Geben Sie eine entsprechende SQL-Anweisung an. (3 BE)
2.2.2
Der Kunde Paul Müller schließt heute ein neues Darlehen (Vertragsnummer 12345) über die Summe von 30.000 EUR ab. Die Laufzeit beträgt 10 Jahre bei einem Zinssatz von 1,76 Prozent. Die Raten werden im monatlichen Turnus (Turnus = 12) von dem Referenzkonto mit der IBAN DE06 5502 0500 0222 2222 22 abgebucht. Entwickeln Sie die SQL-Anweisungen, um das neue Darlehen in die Datenbank einzufügen und die monatliche Rate zu setzen. (5 BE)
Hinweis: Die Mindest-Höhe der (jährlichen) Annuität eines Kredits mit der Kreditsumme bei einem Zinssatz von (z.B. ) und einer Laufzeit von Jahren lässt sich mittels der Formeln berechnen.
2.2.3
Am Monatsende werden unter anderem die Buchungen der monatlich zu zahlenden Darlehensraten durchgeführt. Dafür werden zuerst die Kunden mit der IBAN des Referenzkontos, der Vertragsnummer und der Ratenhöhe ausgegeben, bei denen aufgrund nicht ausreichender Deckung auf dem Konto keine Buchung erfolgen kann. Anschließend sollen die Kontostände aller Kunden, die ein Darlehen abgeschlossen haben, entsprechend aktualisiert werden. Entwickeln Sie die entsprechenden SQL-Anweisungen. (6 BE)
Hinweis: Das Hinzufügen der Buchungen in die Buchungstabelle ist nicht Gegenstand dieser Aufgabe.
2.2.4
Alle Kunden sollen mit der Gesamtsumme ihrer aufgenommenen Darlehen aufgeführt werden, sofern die Gesamtsumme 100.000 EUR übersteigt. Die Liste soll nach der Gesamtsumme absteigend sortiert sein. Implementieren Sie eine entsprechende SQL-Anweisung. (4 BE)

Lösung
Nach den offiziellen Korrekturhinweisen
2.2.1 Die letzten zehn Buchungen des Kontos mit der IBAN DE06 5502 0500 0222 2222 22 sollen nach Buchungstag absteigend sortiert ausgegeben werden. Geben Sie eine entsprechende SQL-Anweisung an.
Lösung: ```sql SELECT buTag, text, betrag FROM Buchung b WHERE iban = 'DE06550205000222222222' ORDER BY buTag DESC LIMIT 10; ```
2.2.2 Entwickeln Sie die SQL-Anweisungen, um das neue Darlehen in die Datenbank einzufügen und die monatliche Rate zu setzen.
Lösung: ```sql INSERT INTO Darlehen(vertragsNr, datum, summe, laufzeit, turnus, zinssatz, referenzkonto) VALUES(12345, NOW(), 30000, 10, 12, 1.76, 'DE06550205000222222222'); UPDATE Darlehen SET rate = ROUND((summe * ((POWER(1+zinssatz/100,laufzeit)*zinssatz/100) / (POWER(1+zinssatz/100,laufzeit)-1)))/turnus, 2) WHERE vertragsNr = 12345; ```
2.2.3 Dafür werden zuerst die Kunden mit der IBAN des Referenzkontos, der Vertragsnummer und der Ratenhöhe ausgegeben, bei denen aufgrund nicht ausreichender Deckung auf dem Konto keine Buchung erfolgen kann. Anschließend sollen die Kontostände aller Kunden, die ein Darlehen abgeschlossen haben, entsprechend aktualisiert werden. Entwickeln Sie die entsprechenden SQL-Anweisungen.
Lösung: ```sql SELECT kid, k.nname, k.vname, g.iban, d.vertragsNr, d.rate FROM Kunde k JOIN Girokonto g ON kid = inhaber JOIN Darlehen d ON g.iban = d.referenzkonto WHERE d.turnus = 12 AND g.kontostand - d.rate < 0; UPDATE Girokonto g, Darlehen d SET g.kontostand = g.kontostand - d.rate WHERE d.referenzkonto = g.iban AND d.turnus = 12 AND g.kontostand - d.rate >= 0; ```
2.2.4 Alle Kunden sollen mit der Gesamtsumme ihrer aufgenommenen Darlehen aufgeführt werden, sofern die Gesamtsumme 100.000 EUR übersteigt. Die Liste soll nach der Gesamtsumme absteigend sortiert sein. Implementieren Sie eine entsprechende SQL-Anweisung.
Lösung: ```sql SELECT Kunde.*, SUM(summe) AS 'Kreditsumme aufgenommen' FROM Kunde JOIN Girokonto ON kid = inhaber JOIN Darlehen ON iban = referenzkonto GROUP BY kid HAVING SUM(summe) > 100000 ORDER BY SUM(summe) DESC; ```
Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium
Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.
‹ Aufgabe Vorschlag A - 1.3 · LK 2022 · Aufgabe Vorschlag C - 2.3 · LK 2022 ›