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 mnm^n.

ROUND(x, n) liefert den auf nn Nachkommastellen gerundeten Betrag xx.

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 RR der (jährlichen) Annuität eines Kredits mit der Kreditsumme S0S_0 bei einem Zinssatz von ii (z.B. 3 Prozent⇒i=0,033\text{ Prozent} \Rightarrow i = 0{,}03) und einer Laufzeit von nn Jahren lässt sich mittels der Formeln R=S0⋅(1+i)n⋅i(1+i)n−1undRate=RturnusR = S_0 \cdot \frac{(1+i)^n \cdot i}{(1+i)^n - 1} \quad\text{und}\quad Rate = \frac{R}{turnus} 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)

Aufgabenstellung: Aufgabe Vorschlag B - 2.2 · Abitur Hessen Praktische Informatik LK 2022

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 ›

Mehr Aufgaben zu SQL-Anweisungen und Transaktionen