Datenbankprojekt

Guten Tag,
ich habe im Fach Informatik den Auftrag ein Datenbankprojekt anzufertigen.
Ich habe das Thema „Sonnensystem“ ausgesucht und schon als Grundlage mehrere 1:n und n:m Beziehungen gefunden. Eine 1:1 Beziehung war mir durch das Einfügen der Klasse „Sonnensystem“ möglich, doch da ich für die Attribute keine Werte finden konnte, musste ich diese entfernen.
Nun wäre mir eine Idee sehr von Wert, da ich nach langem Überlegen immer noch keine Idee habe. Ich würde mich über eine Antwort sehr freuen.
Zur besserern Vorstellung ist das K.Diagramm verlinkt -> http://www.myimg.de/?img=Screenshot122493bb.png
Während der folgenden Arbeit könnten noch weitere Fragen aufkommen (bin zurzeit in den Ferien und nach diesen ist Abgabeschluss).
MfG

Hallo,

davon abgesehen, dass Klassendiagramme für die Modellierung von Datenbanken eher unüblich sind (meistens wird das Entity-Relationship-Modell dafür benutzt), ist mir ein Rätsel, warum du die Klasse Planet mit allen anderen verbunden hast, was hat das für einen Sinn?

Ich habe das Thema „Sonnensystem“ ausgesucht und schon als
Grundlage mehrere 1:n und n:m Beziehungen gefunden.

Und wo sind diese Beziehungen? Warum sind sie in deinem Klassendiagramm nicht zu sehen?

Nun wäre mir eine Idee sehr von Wert, da ich nach langem
Überlegen immer noch keine Idee habe. Ich würde mich über eine
Antwort sehr freuen.

Idee bezüglich was?

Gruß
Christa

Hallo,

ich hätte vielleicht erwähnen sollen, dass ich die Beziehungen per Hand eintragen werde.
Das Klassendiagramm sollte den Antwortgebern nur eine bessere Vorstellung von all meinen vorhandenen Klassen geben.
Ich bräuchte noch mind. eine 1:1-Beziehung mit einer dieser Klassen und ich wollte eine Idee für eine neue Klasse haben, die sich mit einer dieser bereits existierenden zu einer 1:1-Beziehung verbinden lässt.

MfG

Hallo nochmal,

ich hätte vielleicht erwähnen sollen, dass ich die Beziehungen
per Hand eintragen werde.

warum trägst du sie per Hand ein, wenn du den Rest mit einem Programm machst? Die Möglichkeit, die Beziehungen auch einzutragen, bietet der yEd sicherlich ebenso, wenn Klassendiagramme machbar sind (lt. Beschreibung „UML Symbole für Klassen- und Objektdiagramme“).

Das Klassendiagramm sollte den Antwortgebern nur eine bessere
Vorstellung von all meinen vorhandenen Klassen geben.

Also nochmal: das ist KEIN Klassendiagramm. Das sind ein paar Klassen, die du einfach wahllos miteinander verbunden hast.

Nur so als Beispiel, die Definition des Mondes bei Wikipedia:
(http://de.wikipedia.org/wiki/Mond)
Der Mond (mhd. mâne;[2] lateinisch luna) ist der einzige natürliche Satellit der Erde.

Ein Mond ist ein Satellit eines Planeten (s. auch http://de.wikipedia.org/wiki/Satellit_%28Astronomie%29), in deinem sogenannten Klassendiagramm ist aber gar keine Verbindung zwischen Mond und Satellit (Satelliten ist übrigens auch nicht richtig, alle Klassen sind sonst im Singular!).

Auch ist mir nicht klar, warum du auf Biegen und Brechen eine 1:1-Beziehung brauchst, denn die werden äußerst selten benutzt (i. d. R. um Teile einer sehr großen Tabelle auszulagern), es gibt also bei weitem nicht in jedem Modell eine 1:1-Beziehung.

Mach dir überhaupt die Zusammenhänge deiner Klassen klar und zeichne das Klassendiagramm nochmal richtig!

Gruß
Christa

„warum trägst du sie per Hand ein, wenn du den Rest mit einem Programm machst? Die Möglichkeit, die Beziehungen auch einzutragen, bietet der yEd sicherlich ebenso, wenn Klassendiagramme machbar sind (lt. Beschreibung „UML Symbole für Klassen- und Objektdiagramme“).“

Ich trage diese per Hand ein, da sich bei dem Programm die „Pfeilüberschriften“ nicht automatisch nach dem Pfeilwinkel richten, weshalb ich dieses dann alles per Hand verändern muss. Da ist ja wohl viel simpler, das Diagramm auszudrucken und die Beziehungen mit einem Stift zu beschriften (alle Bestandteile dieses Projekts müssen in einem Ordner abgegeben werden).

Des weiteren ist mit Mond nicht der Erdmond gemeint, sondern der Begriff allgemein. Man sagt in der Umgangssprache ja auch nicht Jupitersatellit, sondern schlicht und einfach Jupitermond (so auch auf WikiPedia).
Mit „Satellit“ (wurde in den Sg. gesetzt, danke für den Tipp) sind Satelliten gemeint, die Signale empfangen und weiterleiten können (für Sender z.B.). Das hätte man bereits an den Attributen „Trägerrakete“ und „Modell“ sehen können.

Die Beziehungen sehen wie folgt aus:
Ein Planet kann n Satelliten in seiner Umlaufbahn haben, aber 1 Satellit kann sich nur in der U.l.b. eines Planeten befinden (n:1).
Von 1 Planet kann man n Kometen sehen. 1 Komet kann von m Planeten gesehen werden.
1 Asteroid kann auf einen Planeten abstürzen. 1 Planet kann von 1 Asteroid getroffen werden.
1 Planet kann sich in der Umlaufbahn einer Sonne befinden. 1 Sonne kann n Planeten in der U.l.b. haben.
Ein Weltraumteleskop kann n Planeten/Sterne aufnehmen. 1 Planet/Stern kann von m Weltraumtel. aufgenommen werden.
1 Mond kann zu einem Planeten dazugehören. 1 Planet kann n Monde haben.

Da ich alle Lerninhalte aus diesem Schuljahr wiedergeben muss, hielt ich es ebenfalls für relevant, eine 1:1-Bez. hinzuzufügen, um deutlich zu machen, dass ich weiß, wie ich diese in einer Datenbank umzusetzen habe (eine beliebige Seite wird mit dem Fremdschlüssel erweitert).

Vielen Dank für die bisherige Hilfe,
mit freundlichen Grüßen

IHDM27

Hallo nochmals,

ich bräuchte da Hilfe bei einem Problem:
Bei dem Programm, das ich benutze (Open Office Datenbank), ist mir nicht klar, wie ich 2 Attribute bei einer Beziehungstabelle als zusammengesetzten Primärschlüssel kennzeichne.
Ich will, dass ein Attributwert auch öfters vorkommen darf, weshalb es sehr unklug ist, ein Attrribut als P.schlüssel zu markieren.

Vielen Dank im Voraus für die Hilfe,
MfG

Korrektur: *Attribut

Hallo,

Bei dem Programm, das ich benutze (Open Office Datenbank), ist
mir nicht klar, wie ich 2 Attribute bei einer
Beziehungstabelle als zusammengesetzten Primärschlüssel
kennzeichne.

du musst mit gedrückter Shift- (wenn die Attribute direkt untereinander liegen) oder Strg-Taste (wenn noch andere Attribute dazwischen sind) die beiden Attribute markieren, dann rechte Maustaste-&gt:stuck_out_tongue_winking_eye:rimärschlüssel wählen.

Gruß
Christa

Hallo,

Des weiteren ist mit Mond nicht der Erdmond gemeint, sondern
der Begriff allgemein.

deshalb schrieb ich ja weiter auch „Ein Mond ist ein Satellit eines Planeten“

Mit „Satellit“ (wurde in den Sg. gesetzt, danke für den Tipp)
sind Satelliten gemeint, die Signale empfangen und
weiterleiten können (für Sender z.B.).

Dann passt das nicht so richtig in dein Modell, denn alles andere sind, soweit ich mich erinnere (der Link geht nicht mehr), Himmelskörper.

1 Asteroid kann auf einen Planeten abstürzen. 1 Planet kann
von 1 Asteroid getroffen werden.

Das soll wohl „1 Planet kann von mehreren Asteroiden getroffen werden“, sonst hättest du ja hier deine 1:1-Beziehung.

Viele Grüße
Christa

„Das soll wohl „1 Planet kann von mehreren Asteroiden getroffen werden“, sonst hättest du ja hier deine 1:1-Beziehung.“
Ou, da ist mir wohl ein kleiner Denkfehler unterlaufen. Danke für den Hinweis :smile:

Und vielen Dank nochmals für die ganze Hilfe bis jetzt

Mit freundlichen Grüßen,
IDM27

Hallo,
wie es scheint, habe ich erneut ein Problem, auf dessen Lösung ich nicht komme:
http://abload.de/image.php?img=screenshot1416wky5.png (SQL)
http://abload.de/image.php?img=screenshot142h9j02.png (1.Tabelle)
http://abload.de/image.php?img=screenshot143eij3v.png (2.Tabelle)
http://abload.de/image.php?img=screenshot144o7jp7.png (Beziehungstabelle)
Ich versuche, das Kreuzprodukt aus 3 Tabellen zu erhalten…
Doch mir wird jedes mal eine leere Ergebnistabelle angezeigt und ich bin auch nach vielen Versuchen
nicht auf des Problems Lösung gekommen.
Vielen Dank im Voraus für die Hilfe.

Gruß

Hi,

du hast doch beim AND zweimal auf die Tabelle Weltraumteleskop zugegriffen. Mir ist aber auch nicht klar, was du herausbekommen willst.

Gruß
Christa

Ok, ich melde mich mit einem 3. Problem zurück:
http://www.myimg.de/?img=Screenshot14554fc8.png
Anscheinend gibt es Probleme mit dem Rechenterm…
Hier die dazugehörige Tabelle:
http://www.myimg.de/?img=Screenshot14637b44.png

Vielen Dank nochmals für die bisherige und die folgende Hilfe.
MfG

Das angesprochene Problem wurde gelöst. Dennoch werden keine Datensätze angezeigt.
Ich versuche ein Kreuzprodukt aus 3 Tabellen herzustellen (1.Tab, 2.Tab und deren Beziehungstabelle), indem ich die Fremdschlüssel der Beziehungstabelle mit den Primärschlüsseln der anderen beiden Tabellen gleichsetze, um ein sinnvolles Kreuzprodukt zu erhalten, wo nicht alle Datensätze wahllos zusammengesetzt werden und 600 Datensätze rauskommen.

Gruß

Hi!

Wie wäre es, wenn Du Dich zuerst in die Materie einlesen und mit Beispieldatenbanken herumspielen würdest?
Nachdem Dir Beziehungen (sowohl aus Design- als auch aus technischer Sicht), ERDs, SQL, usw. noch immer fremd sind, wird das eine Endlosschleife …

Ok, ich melde mich mit einem 3. Problem zurück:
http://www.myimg.de/?img=Screenshot14554fc8.png
Anscheinend gibt es Probleme mit dem Rechenterm…

Versuch bitte mal um den Feldnamen ein paar Hochkommas zu setzten.

Und generell: Das Statement alleine sagt eigentlich noch nix aus, erst aus der dazugehörigen Fehlermeldung kann man dann den Haken finden.

Hier die dazugehörige Tabelle:
http://www.myimg.de/?img=Screenshot14637b44.png

Verwende bitte kurze, prägnante Namen für Tabellen und Felder - denn genau in diese „Falle“ dürftest Du reingetappt sein (obwohl ich Dein verwendetes RDBMS nicht kenne).
Für „Fallbeschleunigung (in m/s2)“, „Mittlere Dichte (in g/cm3)“ usw. würdest Du von mir sowohl im Design als auch in der Implementierung einen Satz heiße Ohren kassieren.

Diese Beschreibungen werden im Repository der Tabellen und Felder abgelegt, aber nicht als Namen … als Aliases vielleicht … aber dann auch nur mit Hochkomma.

Ein (m/s2) bedeutet im SQL, dass es dividieren will - und da fällt es eben ziemlich auf die Schnauze. Das Ganze unter Hochkomma (je nach RDBMS ein einfaches oder ein doppeltes) funktioniert dann auch.

Grüße,
Tomh

PS: Noch einmal: Nimm Dir vorgefertigte Beispieldatenbanken zu allererst mal Beispieldatenbanken her (unter Oracle gab es früher den scott/tiger, jetzt heißt es anders, aber noch immer existent - unter anderen RDBMS gibt es sie genauso) und gehe in den Übungsbeispielen Schritt für Schritt durch … und dann fang nochmals von vorne an …

Alles klar.
Vielen Dank für die Hilfe ! =)

Hallo,

Für „Fallbeschleunigung (in m/s2)“, „Mittlere Dichte (in
g/cm3)“ usw. würdest Du von mir sowohl im Design als auch in
der Implementierung einen Satz heiße Ohren kassieren.

als ich die Namen sah, kräuselten sich meine Zehennägel und meine Nackenhaare sträubten sich. Deshalb habe ich auch nicht mehr geantwortet …

Viele Grüße
Christa