Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Versicherung Datenmodell

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Qlutcha, 23 Juni 2020.

  1. Qlutcha

    Qlutcha Benutzer

    Hallo liebe Datenbank Community!
    Ich benötige unbedingt Hilfe mit einen Thema. Gefragt ist ein Datenmodell für eine Versicherung:
    Ihre Aufgabe ist es ein Datenmodell zu entwickeln. Dazu werden Ihnen folgende Design-Vorgaben zur Verfügung gestellt:
    gefragt.png
    Ich brauche insbesondere Hilfe mit dem Punkt:
    Jeder Anlassfall (z.B. Wasserrohrbruch bei einer Hausratversicherung, Autounfall, usw.) zu einem Versicherungsvertrag muss gespeichert werden.
    Mein derzeitiges Modell:
    DerzeitigesModell.png
    Es wurde bereits bewertet und Anlässe ist falsch. (Es sind mehr Fehler enthalten, aber unbedingt ist Anlässe zu verbessern)
    Zudem wurde mir gesagt, dass ich folgendes beachten muss:
    Schadensfälle
    Zuweisung zu der Person, die das Geld kriegt
    Ich wäre sehr sehr dankbar für jede Art von Hilfe! :)
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ich kann mit solchen Bilder nix anfangen, sorry. Zumindest nicht viel.

    • Dein "Modell" zeigt eh nur einen Ausschnitt...
    • VertragBegin, VertragEnde, VertragDatum: varchar(x). Damit wirst Du nicht in der Lage sein, damit Laufzeiten zu berechnen, zu berechnen, oder ein Schadensfall abgedeckt ist etc.
    • KundePLZ varchar(45). Wirklich?
    • Verträge können bei Dir durch Vertreter, Hauptverwaltung oder beides erfolgen. Hint: dafür wurden Check-Constraints erfunden
    • Geldbeträge als INT?

    Tiefer will ich in den Kram nicht reinschauen...
     
  3. akretschmer

    akretschmer Datenbank-Guru

    um etwas positives zu sagen: auf den ersten Blick schaut es normalisiert aus.
     
  4. Qlutcha

    Qlutcha Benutzer

    Leider kann ich die .mwb Datei nicht hochladen. Gefragt ist nur das Datenmodell und die Datentypen spielen keine Rolle, hätte ich reinschreiben sollen, entschuldigung. Entscheidend ist nur "Anlässe", denn nur das muss ich mir ausbessern. Ich wäre sehr dankbar wenn Sie mir helfen.
    Link zum Modell: Gofile
     
  5. castorp

    castorp Datenbank-Guru

    Das ist durchaus üblich um Rundungsfehler zu vermeiden. Man speichert z.B. den Betrag als Cent (oder 1/10 Cent - was auch immer für eine Genauigkeit gefordert ist).

    Ansonsten stimme ich akretschmer aber zu. Ein Datum in einer varchar Spalte zu speichern ist ein Riesenfehler. Dafür wurde DATE erfunden (oder, wenn die Uhrzeit auch wichtig ist TIMESTAMP).

    Ich bin kein Freund davon den Tabellennamen nochmal in jeder Spalte zu wiederholen, aber das ist durchaus auch persönlicher Geschmack.

    Auch die Namensgebung ist nicht ganz konsistent. Mal wird "id" als Präfix verwendet, mal als Suffix. Mal verwendest Du pascal_case, mal CamelCase und manchmal beides. Das macht technisch keinen Unterschied, aber auf lange Sicht macht es das Modell leichter verständlich und auch das Schreiben von SQL Abfragen wird letztendlich leichter. Spaltennamen wie VersicherungsprämieBezahlung_idVersicherungsprämieBezahlung oder Hauptverwaltung_idHauptverwaltung verwirren mehr als dass sie helfen.

    Ich würde auch Sonderzeichen in den Namen vermeiden, es gibt immer wieder Software (Tools, Programmiersprachen bzw. Bibliotheken) die damit Probleme haben.
     
    Walter gefällt das.
  6. Qlutcha

    Qlutcha Benutzer

    Vielen Dank für Ihr Feedback! Allerdings spielt das in dieser Übung keine Rolle und lediglich das Erfassen von "Schadensfällen/Anlässen" muss ich ausbessern, da es falsch ist und ich muss es unbedingt richtig haben bis morgen :(.
     
  7. akretschmer

    akretschmer Datenbank-Guru

    wenn das die Tabelle "Anlass" sein soll: die hat keine Verbindung zum Vertrag.

    Gut, man kann Beträge als INT speicherm das Argument von @castorp kenne ich - ich wollt es nur hinterfragen.
    Im Bild unten ist "Hausratsversicherung", und das ist ein Punkt in der Auflistung der Versicherungsarten. Vermutlich stehen weiter unten nun noch Auto, Rechtschutz, Leben, ... Damit ist aber die Forderung im ersten Punkt, daß diese Liste erweiterbar sein soll, nicht gegeben. Ich ziehe daher auch meine Aussage bzgl. Normalisierung zurück.

    Wenn Datentypen keine Rolle spielen, dann kann man über den, der die Aufgabe gestellt hat, auch nur noch lachen.
     
  8. akretschmer

    akretschmer Datenbank-Guru

    wenn ich mir so Deine Fragen und das Bild so ansehe: Du hast bis jetzt genau WAS gemacht?

    Laß mich raten: Dir hat das jemand gemacht, er hat sich auch halbwegs Mühe gegeben (Datentypen sagten wir ja schon), und nun sollst DU ein Detail verbessern, hast aber KOMPLETT keinen Plan. Kann das hinkommen?
     
  9. Qlutcha

    Qlutcha Benutzer

    Wenn ich Anlass mit Vertrag in Beziehung setze, würde ich dann das Problem lösen, dass der Anlass keiner Person zugeordnet wird? ("Zuweisung zu der Person, die das Geld kriegt") und wie würde ich das Problem lösen können, dass bestimmte Schadensfälle (z.b Auto kaputt) nur mit Beispielsweise einer Autoversicherung und nicht mit irgendeiner anderen Versicherung erfasst werden? Entschuldigen Sie die "dummen" Fragen, ich bin nicht besonders gut in Datenbankmodellierung :)
     
  10. Qlutcha

    Qlutcha Benutzer

    Ich habe das Modell selbstständig erstellt, deshalb ist es auch nicht perfekt. Ich würde ja Freunde fragen, wenn ich ein Problem hätte, leider kenne ich keine, die sich gut auskennen. Deshalb bin ich auch hier, es ist meine letzte Option, ich komme einfach nicht weiter.
     
  11. akretschmer

    akretschmer Datenbank-Guru

    wenn Anlass und Vertrag in Beziehung ist und Vertrag einer Person (Versicherungsnehmer) zugeordnet ist und dier Versicherungsnehmer auch der Geldempfänger ist, dann?

    Bei der Erfassung eines Schadenfalles wird man diesen immer einem Versicherungsvertrag zuordnen, und dieser ist einer Versicherungsart zugeordnet. Also Auto, Hausrat, Haustier, whatever.

    Du hast eine Tabelle "Versicherungsart". Laß mich raten: da kommt als VersicherungsartBezeichnung z.B. 'Hausratsversicherung' rein, oder? Zu was dient dann die Tabelle "Hausratsversicherung"?
     
  12. Qlutcha

    Qlutcha Benutzer

    Leider stehe ich komplett auf der Leitung :( Hätten Sie Lösungsvorschlage, wie ich das Problem dann beheben könnte? Ich habe das Modell ja selber erstellt und die Dinge die ich nicht wusste, wie sie zu modellieren sind, sollte ich bis morgen ausbessern.
     
  13. akretschmer

    akretschmer Datenbank-Guru

    Die Lösungsvorschläge hast Du zitierst. Lesen, verstehen, anwenden. Ich werde nicht Dein Gemälde da verschnörkeln. Gute Nacht.
     
  14. Qlutcha

    Qlutcha Benutzer

    Okay, entschuldigen Sie meine Dummheit und falls ich Sie verärgert habe, tut mir das auch sehr Leid. Ich wünsche Ihnen eine Gute Nacht.
     
  15. akretschmer

    akretschmer Datenbank-Guru

    warum so empfindlich?

    Hier mal grob ein mögliches Modell. Ganz grob.

    Code:
    test=# create table versicherungsnehmer (id int primary key, name text, konto text);
    CREATE TABLE
    test=*# create table versicherungsart (id int primary key, name text);
    CREATE TABLE
    test=*# create table vertrag(id int primary key, versicherungsart int references versicherungsart, versicherungsnehmer int references versicherungsnehmer, laufzeit daterange);
    CREATE TABLE
    test=*# create table anlass (id int primary key, vertrag int references vertrag, beschreibung text);
    CREATE TABLE
    test=*#
    
    Damit kannst Du:
    • einen Anlaß einem vertrag zuordnen
    • über den Vertrag dem Versicherungsnehmer
    • über den Vertrag hat der Anlaß eine Zuordnung zu einer Versicherungsart
    • passende Datentypen für die Laufzeit der Versicherung

    Kaffee.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden