Lea Sophie

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche


Inhaltsverzeichnis

Tierheim-Datenbank

Begründung der Themenwahl

Man sagt es nicht umsonst: Der Hund ist der beste Freund des Menschen. Denn die Nachfrage, sich einen Vierbeiner oder ein anderes Haustier anzuschaffen ist hoch. Doch viele Interessierte orientieren sich beim Kauf im Internet oder gehen zu bestimmten Züchtern. Dabei könnte der Traumhund gleich im lokalen Tierheim sitzen! Das Tierheim bietet die einzigartige Möglichkeit als Vermittler zwischen den Parteien zu agieren. Die Mitarbeiter kennen sowohl ihre Tiere mit ihren guten und schlechten Seiten und bemühen sich die interessierten Käufer zu analysieren. Es werden viele Informationen gesammelt und Schnittstellen gefunden. Wenn der Kunde eine Familie mit kleinen Kindern hat, so ist es von Bedeutung, ob das Tier für Familien geeignet ist. Wenn so viele Daten aufeinandertreffen macht es sich gut, diese zu digitalisieren, um sich möglichst schnell einen Überblick verschaffen zu können.


Nichts liegt da näher als die Erstellung einer benutzerfreundlichen, effizienten und zuverlässigen Datenbank. Die Interessenten können sich informieren über die Öffnungszeiten oder das Tierheim allgemein, die Mitarbeiter des Tierheims haben eine Übersicht über alle wichtigen Daten der Kunden und Tiere. Somit können die Tiere schnell in ein schönes neues Zuhause vermittelt werden.

Ziel dieses DB-Beleg ist es das erlernte Wissen über Datenbanken und ERM nun praktisch anzuwenden und kreativ umzusetzen. Dabei ist mir wichtig einen Bezug zur Wirklichkeit herzustellen. Auch wenn die gewählten Datensätze frei erfunden sind, ist eine Datenbank für ein Tierheim durchaus eine realistische Investition.

Lea Sophie Dog-house.png



Modellierung eines ERM

Lea Sophie ERM (2).png


Allgemeine Struktur

Ein ERM ist ein "Entity-Relationship-Modell", welcher der Vereinfachung einer großen Menge dient. Dabei werden diese auf ihre grundlegendsten Bestandteile und Beziehungen zueinander heruntergebrochen. Man verschafft sich somit einen Überblick über die nötigen Tabellen und den allgemeinen Umfang. Da eine Datenbank später übersichtlich und benutzerfreundlich sein soll, ist besonders auf die Anwenderfreundlichkeit zu achten. Um diesen komplexen Sachverhalt nun vereinfacht dazustellen, nutzt man in der Modellierung verschiedene Bausteine:

 Alle Objekte (bzw. Entitäten) werden in Rechtecken dargestellt. Sie werden später als Tabellen implementiert.
 Alle Eigenschaften (bzw. Attribute) der Objekte werden in Ellipsen gefasst und mit dem zugehörigen Objekt verbunden.
 Alle Relationen (bzw. Relationships) der Objekte werden durch Rhomben verkörpert. Sie müssen nicht immer zu Tabellen werden.

Die Kardinalitäten

Doch nicht jede Verbindung zwischen den Objekten ist gleich zu werten. Es gibt verschiedene Beziehungstypen - auch Kardinalität genannt.

Die 1:1 Beziehung besagt, dass sich 2 Attribute GENAU einander zuordnen lassen. Somit können sie auch in EINE Tabelle gefasst werden.

Die 1:n Beziehungbesagt, dass der einen Objektklasse viele Objekte zugeschrieben werden können, aber nicht umgekehrt. Ein Beispiel aus diesem Beleg ist, dass ein Interessierter sich für mehrere Hunde interessieren kann, aber nicht umgekehrt. Der Hund wird später nur an eine Person vermittelt. Diese Beziehungen können hergestellt werden indem der Primärschlüssel in Form eines Fremdschlüssels in die andere Tabelle eingesetzt wird. An unserem Beispiel kann man dies daran erkennen, dass ein Interessent sich ein Tier reservieren kann indem in der Tabelle `Tiere` der Fremdschlüssel I_Nr (Interessenten Nummer) eingesetzt wird und somit eine eindeutige Beziehung hergestellt ist.

Die n:m Beziehung besagt, dass viele Objekte mit vielen anderen Objekten in Verbindung stehen. So können sich beliebig viele Menschen in beliebig vielen Tierheimen informieren. Diese komplexe Art der Beziehung wird in Form von einer Tabelle, welche beide Primärschlüssel enthält, umgesetzt. Diese eigenständige Tabelle kann zusätzlich auch eigene Attribute enthalten.


Erstellen eines RM

Lea Sophie RM (3).png

Die Normalisierung

Die erste Normalform (1NF) verlangt, dass nicht mehrere Informationen in eine Datenfeld geschrieben werden dürfen. Dieses Problem wurde gelöst. Es gibt kein Feld indem mehr als eine Information steht.

Die zweite Normalform (2NF) verlangt, dass Änderungen einheitlich vorgenommen werden können. Dies wird durch Primärschlüssel und die Aufspaltung großer Datensätze in kleinere Tabellen gewährleistet.

Die dritte Normalform (3NF) verlangt, dass die Primärschlüssel bei komplexen Beziehungen zwischen zwei Datentypen in eine extra Tabelle geschrieben werden müssen (in Form von Fremdschlüsseln). Auch dies wurde gelöst (Bsp. TH_Nr in Tabelle Tierheim)


Übertragung in ein Datenbanksystem

1. Schritt: Tabellen erstellen


2. Schritt: Tabellen mit Datensätzen füllen

Abfragen

1.Stufe - leichte Abfragen

1. Aufgabe:

Zeige alle Tiere.

2. Aufgabe:

Sortiere die Tiere nach ihrem Lebensalter (aufsteigend).

2.Stufe - umfänglichere Abfragen

3. Aufgabe:

Zeige alle Tiere die im Tierheim "4 Pfoten" leben.

4. Aufgabe:

Der Wellensittich hat ein neues Zuhause gefunden. Ändere dies in seinem Datensatz (Status).

3.Stufe - komplexe Abfragen

5. Aufgabe:

Olivia Heidelbaum sucht einen geeigneten Hund für sich, der nicht älter als 2 Jahre ist.

Suche einen passenden Hund heraus und beachte dabei die geforderten Faktoren.

6. Aufgabe:

Reserviere nun einen geeigneten Hund für Olivia Heidelbaum.

Lea Sophie Pet.png

7. Aufgabe:

Welches Tierheim hat am Mittwoch um 14:00 Uhr offen?


Kritische Reflektion

Der DB-Beleg ist eine gute Möglichkeit eine Idee umzusetzen. Hat man diese erst einmal gefunden und die nötige Motivation aufgebracht, sich auch außerhalb des INFO Unterrichts mit Datenbanken und den vielfältigen (aber umständlichen) Funktionen des 'Programmig Wiki' zu beschäftigen, konnte man durchaus erfolgreiche Ergebnisse erzielen. Wenn man sich selbst mit der praktischen Umsetzung eines solchen Projektes befasst muss, man halt doch tiefer in die Materie eintauchen. Auf vielen Internetseiten findet man Lösungsansätze um verschiedene Ideen im Wiki zum Leben zu erwecken. So konnte ich meine Vorstellung einer Öffnungszeiten-Tabelle mit dem Datentyp TIME realisieren.

Es nimmt durchaus auch Zeit in Anspruch, die eine Klammer zu finden, an der die Ausführung gerade hängt. Doch da probieren ja bekanntlich über studieren geht, musste man etwas herumexperimentieren damit aus dem ERM auch eine funktionsfähige und abrufbare Tabelle wird.

Ein guter Leitfaden war auch die Themenwahl die ich mir selbst ausgemalt habe. Ich wollte eine Datenbank erschaffen, die so ähnlich auch in der Realität nützlich sein könnte und besonders benutzerfreundlich ist. Viele Menschen haben zu viele Vorurteile gegenüber Tierheimen und ein zuverlässiges Programm könnte dafür sorgen, dass Interessenten sich doch für einen Hund aus dem Tierheim entscheiden (der gut zu ihren Ansprüchen passt) statt blind auf süße Fotos von einer dubiosen Annonce im Internet zu vertrauen.

Allgemein fand ich den Prozess von einer spontanen Idee und einer Bleistiftskizze über ein ERM und RM hin zur fertigen Datenbank schon interessant.

Obwohl es mich einige Nerven gekostet hat, bin ich doch zufrieden mit meinem Ergebnis.


Persönliche Werkzeuge