SQL - Übungsdatenbank

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

SQL - Übungsdatenbank
Hi,
ich habe ein Problem mit dem Datenbankschema.

Nach der Schema-Übersicht im Übungsblatt 7 besteht eine 1:N Beziehung zwischen Versicherungsgesellschaft und Versicherungsnehmer, wobei Versicherungsnehmer total an der Beziehung teilnehmen.

Daraus ergibt sich doch, dass jeder Versichersnehmer genau einer versicherungsgesellschaft zugeordnet ist und sogar sein muss, weshalb Versicherungsnehmer die verscherungsgesellschaftID als Fremdschlüssel tragen müsste. In der Schema-Übersicht ist jene ID jedoch nicht gleich farblich gekennzeichnet wie die Fremdschlüssel der anderen Relationen.

Auch in dem Versicherungsscript sieht die Struktur von Versicherungsnehmer keinen Fremdschlüssel vor. Die Versicherungsgesellschaft _ID ist sogar ganz im Widerspruch zur Schlüsseldefinition standardgemäß null.

Daraus ergibt sich auch ein weiteres Problem, nämlich dass bei eigener Generierung des Datenbankschemas keine Krähenfuß Verbindungen zwischen den besagten Relationen gezeichnet wird.

– EDIT —
Ups, zu spät gesehen, dass es für die Übungsdatenbank einen eigenen thread gibt.


Danke für den Hinweis, tatsächlich fehlt ein FOREIGN KEY-Constraint bei der Tabelle Versicherungsnehmer.
Bei Bedarf werden wir dafür eine aktualisierte Fassung des DDL-Skripts in StudOn bereitstellen.
Da in der von uns mitgelieferten Extension nur gültige IDs referenziert werden, ergeben sich jedoch auch ohne den Fremdschlüssel keine Probleme bei der Bearbeitung der zugehörigen Aufgaben.

Man kann sich auch als weitere Übungsaufgabe überlegen, wie der Fremdschlüssel nachträglich hinzugefügt werden kann (vgl. https://dev.mysql.com/doc/refman/5.7/en/alter-table.html).

Hier bitte aufpassen!
Evtl. ist diese Aussage zur „Schlüsseldefinition“ nur etwas unglücklich formuliert oder aber es liegt ein kleines Verständnisproblem zur referenziellen Integrität vor.

In der Vorlesung wurde auf die folgenden Aspekte eingegangen:

  1. Schlüsselkandidaten dürfen niemals den Wert NULL annehmen.
  2. Fremdschlüssel dürfen nur auf gültige Werte zeigen oder den Wert NULL annehmen.

In der Tabelle Versicherungsnehmer können im Attribut Versicherungsgesellschaft_ID daher durchaus NULL-Werte auftreten.
Passend zur Semantik unseres Szenarios müssen NULL-Werte sogar möglich sein, denn das Attribut zeigt gemäß textueller Angabe nur dann auf eine Versicherungsgesellschaft, wenn ein Schadensfall erfasst werden soll, bei dem eine der beteiligten Parteien bei einer fremden Versicherungsgesellschaft versichert ist.

Bei Bedarf einfach nochmal einen Blick auf die Folien 4 14-23 werfen.

Weiterhin frohes Experimentieren mit SQL :slight_smile:


lieben dank für die Aufklärung, ich werde mir dir die null-Problematik bei FS nochmal durch den kopf gehen lassen.