3. Datenmodellierung
Hinweis: Diese Übung kann vollständig mit Stift und Papier durchgeführt werden. Die Software ArcGIS Pro wird für diese Übung nicht benötigt.
3.1. Lernziele der Übung
Grundlagen der Datenmodellierung
Anwendung der Unified Modeling Language (UML)
3.2. Hintergrund der Übung
3.2.1. Datenbanken und Datenmodellierung in GIS
Im Bereich der Geoinformationssysteme fallen riesige Mengen an Daten an. Diese werden z.B. zur Analyse und Visualisierung von Geoinformationen verwendet. Um die Daten managen zu können, werden Datenbankmanagementsysteme verwendet, mit deren Hilfe es möglich ist, die Daten verlässlich und fortwährend zu speichern, diese effizient abrufbar zu machen und zu beschreiben. Die Beschreibung wird auf konzeptioneller Ebene mit Hilfe von UML bewerkstelligt.
3.2.2. Datenmodellierung mit UML
Die Unified Modeling Language (deutsch: “Einheitliche Modellierungssprache”) ist eine normierte, offene, objektorientierte Modellierungssprache aus dem Softwareentwicklungsbereich. Seit einiger Zeit wird UML auch in der Geoinformatik intensiv genutzt.
Der Zweck dieser graphischen Modellierungssprache liegt in der vollständigen und eindeutig interpretierbaren formalen Beschreibung von Inhalt und Struktur von Datenbeständen. Zudem ist die Beschreibung unabhängig von der Art der Implementierung und der verwendeten Programmiersprache.
Die so beschriebenen Anwendungsschemata können von geeigneten Programmen automatisch interpretiert und in interne Daten- bzw. Datenbankstrukturen übersetzt werden. Häufig geschieht diese Übersetzung vom mit UML beschriebenen konzeptionellen Modell in ein logisches Modell jedoch per Hand, so wie in dieser Übung.
UML kann sowohl statische als auch dynamische Aspekte eines Systems modellieren. Statische Objekte werden z.B. mit einem Klassendiagramm beschrieben. Insbesondere das Klassendiagramm wird sehr oft benutzt, um Begriffe, Zusammenhänge und Datentypen zu definieren. Daneben gibt es aber noch viele andere Diagramme, wie z.B. Paket-, Komponenten-, Verteilungsdiagramme, etc.
3.2.3. Klassendiagramme
Die Klasse umfasst den eigentlichen Kern der Modellierungssprache. UML definiert, was man unter einer Klasse versteht und welche Beziehungen zwischen Klassen möglich sind. Eine Klasse besitzt einen Klassennamen sowie Attribute, Beziehungen, Operationen und Zuständigkeiten, die viele Objekte gemeinsam nutzen können.
3.2.4. UML-Beziehungen und Multiplizitäten
Zwischen Klassen können Verbindungen / Beziehungen bestehen. Mit Multiplizitäten werden diese genauer erläutert:
|
|
Verbindungsformen
Assoziation (einfache Linie)
Allgemeinste Beziehung zwischen zwei (oder mehreren) Klassen.

Abb. 3.1 Beispiel: Assoziation
Aggregation (Linie mit Raute)
Zeigt die Zugehörigkeit mehrerer Teile zu einem Ganzen und beschreibt eine “ist Teil von” oder “gehört zu”-Assoziation.

Abb. 3.2 Beispiel: Aggregation
Komposition (Linie mit ausgemalter Raute)
Stellt eine “Starke Aggregation” dar. Existenz eines Teiles ist von der Existenz des Ganzen abhängig.

Abb. 3.3 Beispiel: Komposition
3.2.5. Relationales Datenbankschema
Für die Implementierung eines konzeptionellen Modells in UML muss eine Überführung in ein Relationales Databankschema durchgeführt werden. Dieser Schritt wird realisiert mit Tabellen. Dabei kommen die zuvor erdachten Verbindungen mit ihren Multiplizitäten zu Tragen.
Schlüssel
Ein Schlüssel ist ein Attribut eines Objektes, dessen Werte das Objekt eindeutig identifizieren. Häufig werden “künstliche” Attribute als Schlüssel zu einem Objekt eingebaut, wie z.B. Matrikelnummer, PersonenID, FlurstückID usw.
1:1- und 1:n-Beziehungen
Beziehungen der Art 1:1 und 1:n sind analog zueinander. Der Schlüssel einer Klasse wird als Fremdschlüssel von der anderen Klasse mit aufgenommen.
Beispiel: Gebäude / Stockwerk:

Abb. 3.4 Gebäude-Klasse

Abb. 3.5 Stockwerk-Klasse
n:m-Beziehungen
Bei n:m-Beziehungen genügt es nicht, Schlüssel in die Tabellen der beteiligten Klassen einzutragen. Für eine eindeutige Lösung muss eine sogenannte Join-Tabelle gebildet werden, in der nur die beiden Schlüssel der beteiligten Klassen vorkommen.
Beispiel: Student / Vorlesung:

Abb. 3.6 Vorlesung-Klasse

Abb. 3.7 Join-Tabelle mit beiden Schlüsseln

Abb. 3.8 Student-Klasse
3.3. Übungsziele
Erstellen Sie ein konzeptionelles Modell mit UML
Erstellen Sie ein relationales Datenbankschema aus dem gegebenen UML-Modell
3.4. Übungsumsetzung
3.4.1. UML-Datenmodell
Bei der folgenden Modellierungsaufgabe handelt es sich um eine frühere Klausuraufgabe. Wenden Sie die Modellierungskonzepte, welche Sie in der Vorlesung kennengelernt haben an und erstellen Sie ein vollständiges UML-Diagramm (mit Stift und Papier).
Fertigen Sie für den folgenden Sachverhalt ein vollständiges UML-Diagramm mit Klassen, Beziehungen, Attributen und Multiplizitäten an. Geben Sie zudem für alle Attribute sinnvolle Datentypen an. (16 Punkte)
Ein Haus besteht aus mindestens einer Begrenzungsfläche. Alle Flächen besitzen die Informationen über ihren Flächeninhalt. Im Speziellen wird zwischen Wand-, Dach- und Bodenflächen unterschieden. Eine Dachfläche besitzt zusätzlich die Eigenschaft Anzahl_Schornsteine; eine Bodenfläche die Information, ob sie beheizt ist oder nicht; und eine Wandfläche die Dicke der Isolierschicht. Jede Fläche wird geometrisch durch ein Polygon mit 3D-Koordinatenwerten (x, y, z) beschrieben. Ein Haus ist im Besitz von mindestens einer oder auch mehrerer Personen. Eine Person kann kein, ein, oder mehrere Häuser besitzen. Wie wird die Beziehung zwischen Haus und Fläche genannt?
3.4.2. Erstellung eines relationalen Datenbank Schemas
Sehen Sie sich das folgende UML-Diagramm an. Erstellen Sie auf der Grundlage dieses UML-Diagramms ein relationales Datenbankschema (wiederum durch Erstelllen von Tabellen mit Stift und Papier). Sie brauchen die Tabellen nicht auszufüllen. Es reicht aus, die Schlüssel nur andeutungsweise anzugeben.

Abb. 3.9 UML Beispieldiagramm
Machen Sie Bilder (Fotos oder Scans) von Ihrem UML-Modell und den Tabellen des relationalen Schemas. Kopieren Sie diese Bilder in einen Ordner, zippen Sie den Ordner und laden Sie diesen Ordner auf Moodle hoch.
Hinweis: Zur Klausurvorbereitung werden am Ende des Semesters Lösungen für die gestellten Modellierungsaufgaben bereitgestellt.