Skip to content

ic-htw/dbtech-vers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Datenbanktechnologien - Versicherung

Dieses Repository beinhaltet den kompletten Satz an Übungsaufgaben für das Modul "Datenbanktechnologien" an der HTW Berlin. Die Aufgaben basieren auf dem Anwendungsfall einer Versicherung.

Importieren sie das Repository in ihren eigenen Github-Account und setzen sie die Sichtbarkeit auf "private", damit andere Gruppen nicht ihre Lösungen einsehen können. Klonen sie dann ihr Repository (nicht meines) und bearbeiten sie es mit der IDE ihrer Wahl (IntelliJ, VS Code)

Datenmodell

Zur Bearbeitung der Aufgaben müssen sie das Datenmodell in ihrer eigenen Datenbank anlegen.

  • Beschreibung des Datenmodells (pdf)
  • SQL-Code zur Erzeugung der Tabellen und zum Einfügen der Daten (link)

Logging

Die Verwendung der Logging-Einstellungen wird in der Übung erläutert.

-Dorg.slf4j.simpleLogger.showThreadName="false"
-Dorg.slf4j.simpleLogger.logFile="System.out"
-Dorg.slf4j.simpleLogger.log.org.dbunit="error"
-Dorg.slf4j.simpleLogger.log.de.htwberlin="info"

Protokollstufen

  • error
  • warn
  • info
  • debug

Übungen

Es gibt eine Übung zur Wiederholung von SQL, zwei Übungen zur Implementierung von datenbank-orientierten Diensten in Java und eine Übung zur Implementierung eines datenbank-orientierten Dienstes in PL/SQL.

Für die Dienste werden Test bereitgestellt, mit denen sie die Funktionsfähigkeit ihrer Lösungen überprüfen können. Bedenken Sie aber, dass eine erfolgreiche Ausführung aller Tests nicht automatisch die Korrektheit Ihrer Lösung sicherstellt. Tests können immer nur die Anwesenheit von Fehlern zeigen, nicht aber deren Abwesenheit. Das liegt daran, dass Tests im Allgemeinen nicht vollständig alle Fehlersituationen abdecken. In der Bewertung Ihrer Lösung ist daher der erfolgreiche Durchlauf aller Tests eine notwendige Bedingung zum Erreichen der vollen Punktzahl. Es kann aber trotzdem Punktabzug geben, falls Ihre Lösung Fehler enthält, die durch die Tests nicht aufgedeckt werden.

Bonuspukte

Im Laufe des Semesters kann jede Gruppe einmalig 2 Bonuspunkte durch die Präsentation von Lösungsbestandteilen der Übung 2 oder 3 erhalten. Es gelten folgende Bedingungen

  • Die Punkte können als Ausgleich für Punktabzüge bei den abgegeben Lösungen dienen
  • Sie können trotzdem nur insgesamt 40 Punkte in den Übungen erreichen
  • Sollte die Summe regulärer Punkte plus Bonuspunkte 40 übersteigen wird auf 40 gekappt

Übung 1

Diese Übung dient zur Wiederholung von SQL und zur Einarbeitung in die Struktur der Daten. Die Bearbeitung dieser Übung ist freiwillig, eine Abgabe der Lösungen ist nicht erforderlich.

Übung 2

Diese Übung dient zur Implementierung einfacher Dienste in Java. Dabei geht es im Wesentlichen um die Verwaltung der Daten.

public interface IVersicherungJdbc {
  List<String> kurzBezProdukte();
  Kunde findKundeById(Integer id);
  void createVertrag(Integer id, Integer produktId, Integer kundenId, LocalDate versicherungsbeginn);
  BigDecimal calcMonatsrate(Integer vertragsId);
}

Details zu den Diensten finden sie hier (link)

Übung 3

Diese Übung dient zur Implementierung eines komplexen Dienstes in Java. Dabei geht es um die Festlegung von Versicherungsbedingungen, z.B. die Deckung bestimmter Risiken.

public interface IVersicherungService {
  void createDeckung(Integer vertragsId, Integer deckungsartId, BigDecimal deckungsbetrag);
}

Details zu dem Dienst finden sie hier (link)

Hinweise zur Implementierung der Ablehnungsregeln finden sie hier (pdf)

Dieser Dienst soll in zwei Versionen implementiert werden:

  1. Implementierung wie bei Übung 2 in einer Klasse VersicherungService
  2. Implementierung auf Grundlage eines Architekturmusters (Table-Data-Gateway, Row-Data-Gateway oder Data-Mapper) in einer Klasse VersicherungServiceDao und zusätzlichen Interfaces und Klassen zur Implementierung der DAOs

Übung 4

Diese Übung dient zur Implementierung eines komplexen Dienstes innerhalb des Datenbanksystems mit PL/SQL. Dabei soll der Dienst aus Übung 3 in diesem neuen Umfeld reimplementiert werden.

create or replace package versicherungsservice as
  exc_data exception;
  pragma exception_init(exc_data, -20001);
  exc_vertrag_existiert_nicht exception;
  pragma exception_init(exc_vertrag_existiert_nicht, -20002);
  exc_deckungsart_existiert_nicht exception;
  pragma exception_init(exc_deckungsart_existiert_nicht, -20003);
  exc_ungueltiger_deckungsbetrag exception;
  pragma exception_init(exc_ungueltiger_deckungsbetrag, -20004);
  exc_deckungsart_passt_nicht_zu_produkt exception;
  pragma exception_init(exc_deckungsart_passt_nicht_zu_produkt, -20005);
  exc_deckungsart_nicht_regelkonform exception;
  pragma exception_init(exc_deckungsart_nicht_regelkonform, -20006);
  exc_deckungspreis_nicht_vorhanden exception;
  pragma exception_init(exc_deckungspreis_nicht_vorhanden, -20007);

  procedure create_deckung (
    p_vertrags_id vertrag.id%type,
    p_deckungsart_id deckungsart.id%type,
    p_deckungsbetrag deckung.deckungsbetrag%type);
end versicherungsservice;

PL/SQL-Code zu dieser Übung finden sie hier (link)

About

Anwendungsbeispiel Versicherung für die Übung im Modul Datenbanktechnologien

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages