Zum Inhalt springen

Datenmodellierung


Schemo

Empfohlene Beiträge

hallo

also ich habe ein problem.

Ich muss diese aufgabe lösen und ich habe nicht wirklich viel ahnung davon.

Datenmodellierung (1-2 Folien) Erstellen Sie je ein ER-Modell in Crow‘s-Foot-Notation für die folgenden Sachverhalte. Wählen Sie selbständig bis zu fünf sinnvolle Attribute, geeignete Primärschlüssel und Beziehungen. Achten Sie auf Konditionalitäten und Kardinalitäten.

a) Wolfsrudel: Zwischen den Wölfen eines Wolfsrudels besteht eine klare Rangordnung die besagt, wer wem untergeordnet ist. Ein Tier, der sogenannte Alphawolf, steht hierarchisch über allen anderen Wölfen im Rudel. Andere Wölfe sind nur dem Alphawolf untergeordnet und haben weitere Wölfe als Untergebene, nur die Wölfe der untersten Ordnung haben keine Untergebenen.

B) Wanderungen: Eine Wanderung hat immer einen Ausgangs- und einen Zielort. Jeder Ort kann dabei Ausgangs- und/oder Zielort verschiedener Wanderungen sein. Zu jedem Ort wird außerdem die Meereshöhe erfasst. Zu jeder Wanderung soll die Zeit erfasst werden die benötigt wird um vom Ausgangs- zum Zielort zu gelangen (Hinweis: Aufgrund unterschiedlicher Steigung muss eine Wanderung z. B. von Innsbruck auf die Seegrube nicht in derselben Zeit zurückgelegt werden wie eine Wanderung von der Seegrube nach Innsbruck).

bei aufgabe a) habe ich mir folgendes überlegt:

RUDEL WÖLFE

*rudelaufgabe *wolfsnummer

rudelhöhle Wolfsname

das problem ist, dass ich jeweils 5 sinnvolle attribute wählen muss und ich keine ahnung habe, was ich da noch nehmen könnte und ob das überhaupt richtig ist.

ich hoffe das mir hier jemand helfen kann, da ich echt sehr wenig ahnung habe =(

Bearbeitet von Schemo
Link zu diesem Kommentar
Auf anderen Seiten teilen

so ich habe jetzt attribute gefunden...jetzt stehe ich aber vor einen neuen problem...

CREATE TABLE rudel (

wolfname VARCHAR(15),

wolfalter INTEGER,

rudelname VARCHAR(15),

mitgliederboss SMALLINT NOT NULL,

PRIMARY KEY (wolfname));

CREATE TABLE mitglieder (

mitgliederboss SMALLINT,

wolfname VARCHAR(15),

boss SMALLINT,

PRIMARY KEY (mitgliederboss),

FOREIGN KEY (wolfname) REFERENCES rudel (wolfname),

FOREIGN KEY (boss) REFERENCES mitglieder (boss));

und zwar sagt mir access:

Es kann keine Beziehung zwischen einem Feld und sich selbst erstellt werden!

weis jemand woran das liegt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

kann mir jemand sagen wie ich das machen sol?

zum einen sollst du keine DDL Statements bassteln sondern ein ER Diagramm, hier ganz speziell die crow's foot notation: Crow’s Foot Notation

weiterhin solltest du sinnvolle attribute wählen mit denen du das was in der aufgabe beschrieben wird auch abbilden kannst.

das alter und der name des wolfes spielen dabei eine eher untergeordnete rolle.

außerdem ist der name eines speziellen wolfes kaum ein attribut der entität rudel.

auf grund der beschreibung kann man sagen, das man jedes rudel anhand des alphawolfes unterscheiden kann. über die abhängigkeit, das jeder wolf direkt oder indirekt einem alphawolf zuzuordnen ist, kann man über diesen alle tiere des rudels bestimmen.

weiterhin wird gesagt, das jeder wolf genau einen übergeordneten wolf aber keinen oder mehrere untergeordnete wölfe hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

das hier ist der rest der aufgabenstellung:

2. Erstellung von Tabellen (1-2 Folien) Erstellen Sie zu Ihren in Aufgabe 1 entwickelten ER-Modellen alle notwendigen CREATE TABLE Statements. Achten Sie dabei vor allem auf die Vergabe sinnvoller Datentypen, die korrekte Umsetzung der Beziehungen und die Reihenfolge bei der Tabellenerstellung. Führen Sie anschließend Ihre CREATE TABLE Statements in MS Access aus. Abzugeben sind die CREATE TABLE Statements und Screenshots der beiden MS-Access-Datenmodelle.

3. Erstellen von Abfragen (1-2 Folien) Erstellen Sie passend zu Ihren ER-Modellen aus Aufgabe 1 Abfragen, die die in der Aufgabe beschriebenen Abfrageresultate liefern (Hinweis: Füllen Sie die MS-Access-Datenbank mit Beispielentitäten, um die Abfragen zu testen).

a) Geben Sie eine Liste mit den Nummern und Namen der Wölfe, sowie der Anzahl der direkt untergeordneten Wölfe, absteigend sortiert nach dieser Anzahl aus.

B) Geben Sie eine Liste aller Wanderungen mit Höhendifferenz zwischen Ausgangs- und Zielort aus. Sortieren Sie die Liste absteigend nach der Höhendifferenz.

Das

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dir wird hier niemand Deine Hausaufgaben fertig durchgekaut liefern, so dass Du sie nur abschreiben musst.

n4p hat Dir einen Link gegeben, der Dir zeigt wie die Notation umzusetzen ist, Du musst nur die Aufgabenstellung passend modellieren.

Die Aufgabe mit dem Wolf kann man in 2 Entities modellieren, eine für den Wolf und eine für das Rudel, wobei das Rudel genau einen Wolf enthält, nämlich den Alphawolf und daran hängen dann die anderen als Baumstruktur

Die Aufgabenstellung zu den Wegen ist sehr ähnlich, nur dass hier kein Baum entsteht, sondern ein gerichteter und gewichteter Graph (naja ein Baum ist auch ein gerichteter Graph). Du kannst hier einen naiven Ansatz wählen, so dass jeder Ort einen Vorgänger und einen Nachfolger hat. Damit hat man ggf einen Ort mehrfach, aber ansonsten landest Du im Bereich des TSP, was wohl den Rahmen sprengen würde

Bemühe Dich selbstständig Dir Gedanken zu machen

Link zu diesem Kommentar
Auf anderen Seiten teilen

für den anfang nicht schlecht

allerdings wird die 1 und nur eins seite meiner meinung nach mit || gekennzeichnet nicht mit |

die 0 oder 1 ist |O nicht O

die relations an sich sehen aber erstmal gut aus

wiederum, sinnvolle attribute.

welchen wolfsnamen willst du denn im rudel speichern? wolfsalter genauso.

das sind eigenschaften der entity wolf.

die attribute die an einer verknüpfung beteiligt sind, sind auch attribute der entity und gehören da auch rein.

war jetzt auf das erste bezogen.

beim zweiten, ka das mit den unterrudeln verkompliziert das ganze meiner meinung nach nur.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Lies doch einmal Deine Aufgabenstellungen richtig, nirgends ist etwas von "Unterrudel" geschrieben.

Du hast ein (in Zahlen 1) Rudel, genau ein (1) Rudel hat einen (1) Alphawolf, an diesem Alphawolf hängen mehrere "Unterwölfe) und daran wieder und wieder und wieder .......

D.h. die Abhängigkeit zu einem Rudel ergibt sich zu dem Alphawolf, denn es gibt genau 3 Fälle:

1. Wolf ist Alphawolf, d.h. er hat keinen übergeordneten Wolf <=> zu ihm existiert genau ein Rudel

2. Wolf ist nicht Alphawolf, d.h. er hat immer einen übergeordneten Wolf

3. es gibt Wölfe, die haben keine Wölfe unter sich, obwohl das eigentlich nicht direkt modelliert werden muss, denn das ergibt sich automatisch.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

für den anfang nicht schlecht

allerdings wird die 1 und nur eins seite meiner meinung nach mit || gekennzeichnet nicht mit |

die 0 oder 1 ist |O nicht O

die relations an sich sehen aber erstmal gut aus

wiederum, sinnvolle attribute.

welchen wolfsnamen willst du denn im rudel speichern? wolfsalter genauso.

das sind eigenschaften der entity wolf.

die attribute die an einer verknüpfung beteiligt sind, sind auch attribute der entity und gehören da auch rein.

war jetzt auf das erste bezogen.

beim zweiten, ka das mit den unterrudeln verkompliziert das ganze meiner meinung nach nur.

gut dann werde ich meine erste skizze bevorzugen.

ja das problem ist im grunde auch ...sinvolle attribute zu finden

mir würde jetzt nichts besseres als wolfname und wolfalter einfallen, leider

also ich würde z.b. tony, franz und so als wolfsnamen vergeben

zudem steht bei der aufgabe drei: Geben Sie eine Liste mit den Nummern und Namen der Wölfe, sowie der Anzahl der direkt untergeordneten Wölfe, absteigend sortiert nach dieser Anzahl aus.

genau deswegen gehe ich davon aus, das ich den wölfen namen geben muss=)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn das in ner späteren Aufgabe verlangt ist, brauchst du spätestens da eine Variable für die Namen. Allerdings würde ich eher mit einer numerischen ID als Primärschlüssel arbeiten, da du unter anderen Nachteilen wie einer unübersichtlicheren Struktur auch unpraktische Sachen im späteren Arbeiten mit der DB hast. Zu nennen wäre hier, dass wenn du Namen als Primärschlüssel hast, du ständig Strings miteinander vergleichen musst, was mehr Schreibarbeit ist. Du hast ja schließlich in dem Fall mindestens 2 Tabellen (eine fürs Rudel, eine für die einzelnen Wölfe), die du verknüpfen musst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn dus in der Aufgabe noch brauchst, nicht direkt ersetzen, aber sonst hast du das richtig verstanden. Ich würde eine Integer-Variable, beispielsweise wolfID, als Primärschlüssel verwenden. Du vergibst den Wölfen fortlaufende IDs und kannst dadurch jeden Wolf einfach und klar identifizieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

B) Wanderungen: Eine Wanderung hat immer einen Ausgangs- und einen Zielort. Jeder Ort kann dabei Ausgangs- und/oder Zielort verschiedener Wanderungen sein. Zu jedem Ort wird außerdem die Meereshöhe erfasst. Zu jeder Wanderung soll die Zeit erfasst werden die benötigt wird um vom Ausgangs- zum Zielort zu gelangen (Hinweis: Aufgrund unterschiedlicher Steigung muss eine Wanderung z. B. von Innsbruck auf die Seegrube nicht in derselben Zeit zurückgelegt werden wie eine Wanderung von der Seegrube nach Innsbruck).

=(

hast du schon was zur aufgabe b?

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn dus in der Aufgabe noch brauchst, nicht direkt ersetzen, aber sonst hast du das richtig verstanden. Ich würde eine Integer-Variable, beispielsweise wolfID, als Primärschlüssel verwenden. Du vergibst den Wölfen fortlaufende IDs und kannst dadurch jeden Wolf einfach und klar identifizieren.

gut dann werde ich den wolfnamen nicht rausnehmen und wolfID noch zusätzlich hinzufügen und diese auch als primärschlüssel nehmen.

mitgliederboss ist dann mein fremdschlüssel

aber ich denke ich brauche bei dieser aufgabe noch einen fremdschlüssel, kann das sein ? ich hab mir boss als 2. fremdschlüssel gedacht

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit deinem letzten Beitrag kann ich jetzt grade nicht so viel anfangen. Du musst auf jeden Fall irgentwo den direkten Vorgesetzten des betrachteten Wolfes speichern.

Zur Aufgabe B) hab ich folgenden Tip: Ich würde Orte in einer Tabelle anlegen und in einer anderen die Wanderungen, die sich mit Start und Ziel auf die Tabelle mit den Orten beziehen. Dadurch vermeidest du redundante Eingaben.

Bearbeitet von oxygen
Link zu diesem Kommentar
Auf anderen Seiten teilen

hab ich doch oder? =/

oder meinst du es so:

Wanderung

Startort

Zielort

Orte

Innsbruck

Wien

Seegruge

aber wo soll ich dann das mit der höhe schreiben und mit der entfernung? unter wanderung oder orte?

sollte ja nach der angabe auch berücksichtigt werden

Bearbeitet von Schemo
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...