JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e8bb998afe717523b21d5f45e2f1ae9dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

ERM in relationales Datenbankmodell umwandeln

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 15.12.2007, 20:34    Titel: ERM in relationales Datenbankmodell umwandeln Antworten mit Zitat

Hallo!

ich quäle mich grade mit dem Entity Relationship Modell (ERM) rum. Kennt sich da jemand von euch aus?
Das ERM soll in ein relationales Datenbankschema umgewandelt werden.
Allerdings bin ich mir nicht ganz sicher, wie viele Tabellen ich brauche... ich habe acht, aber die eine kommt mir so sinnlos vor... ich weiß grad nicht wie ich da weitermachen soll. Wie würdet ihr das machen?
Ich habe mal das Bild mit der Aufgabe hochgeladen. Vielleicht könnt ihr ja mal draufgucken Smile



Würde mich über Anregungen, Vorschläge und Co riesig freuen!!

Liebe Grüße,
JkerryZ.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 15.12.2007, 21:57    Titel: Antworten mit Zitat

Sorry, aber das abe ich das letzte mal zu meiner Ausbildungszeit gehabt und da war ich ehrlich gesagt auch nicht unbedingt wissbegierig was datenbanken anging, auch wenn ich genau dieses Thema hatte.

Deinem Schema entnehme ich aber das du sowas in der Art brauchst (Primärschlüssel sind autoincrement int Werte):


Zutaten:

Index : Primärschlüssel
Name : String
Kalorien : Int

Komponente:

Index : Primärschlüssel
Name : String

Rezept:

Komponente : Int
Zutat: Int
Menge : Int

Hauptgericht:

Index : Primärschlüssel
Komponente : Int
Vegetarisch : Bool
Name : String
Menü : Int

Beilage:

Index : Primärschlüssel
Komponente : Int
Süssspeise : Bool
AusHundenGemacht : Bool
Name : String

Menü:

Index : Primärschlüssel
Name : String
Hauptspeise : Int
Preis: Int

Beilagen:

Menu : Int
Beilage : Int

Schnell und nicht viel überlegt dabei, ziemlich unsicher war ich mir bei der Verbindung zwischen Gerichten und Komponenten, man kann auch bestimmt noch etwas vereinfachen, aber abdecken sollte es schon alle nötigen Abfragen und deinem Schema sollte es auch entsprechen.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 15.12.2007, 22:18    Titel: Antworten mit Zitat

- Jedes Rechteck ist eine Tabelle(Name in Einzahl!)
- Rauten mit m-n-Beziehung ebenfalls eine Tabelle und bekommt einen Namen, der aus beiden verbundenen Tabellennamen besteht z.B. KomponenteUndZutat und zwei Fremdschlüssel (Primärschlüssel aus beiden Tabellen)
- Die Ovale sind die nötigsten Attribute, unterstrichene Attribute sind Primärschlüssel

Was ist mit der Beziehung zwischen Hauptgericht-Komponente und Hauptgericht-Beilage? Musst dann wohl selbst entscheiden Wink

Wenn mir noch was einfällt, sage ich bescheid Wink kannst ja dein Zwischenergebnis hier posten Wink

@Fallen: sehr lustig ^^

PS: K.A. wer die Aufgabe erstellt hat, aber ERM ist nicht gut (höfflich gesagt)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 16.12.2007, 02:48    Titel: Antworten mit Zitat

Hmm... Ich darf mich wegen Schule gerade damit herumschlagen.
Der Primärschlüssel in einem ERM ist immer unterstrichen. Daher muss man z.B. bei Zutat den Primärschlüssel ZName verwenden (Wie DXer schon geschrieben hat).
Tabellen die mir so spontan einfallen:

Zutat
ZName (PRIMARY KEY)
Kalorien

Komponente
KName (PRIMARY KEY)
Rezept

ZutatKomponente (Beziehungstabelle)
Hier wird es jetzt ungenau. Bei folgenden 3 Attributen bin ich mir noch sicher:
KName (FOREIGN KEY)
ZName (FOREIGN KEY)
Menge
Nun bleibt nur die Frage, ob ich da noch nen Primärschlüssel hinzufügen darf. Soweit ich weiß, schon. Dann käme noch
ID (PRIMARY KEY)
hinzu.

Hauptgericht
Hmm... Wie das hier mit dem Primärschlüssel aussieht ist mir auch ein Rätsel. Die Tabelle braucht definitiv einen, also mach ich mir halt einen. KA, ob das nach dem Diagramm erlaubt is, weil da hat Hauptgericht keinen Primärschlüssel.
ID (PRIMARY KEY)
Vegetarisch
MName (FOREIGN KEY)

Beilage
Wegen Primärschlüssel-Frage siehe Hauptgericht...
ID (PRIMARY KEY)
Süßspeise

Menü
MName (PRIMARY KEY)
Preis
Hauptgericht_ID (FOREIGN KEY)

BeilageMenü (Beziehungstabelle)
Wegen Primärschlüssel siehe ZutatKomponente...
MName (FOREIGN KEY)
Beilage_ID (FOREIGN KEY)
ID (PRIMARY KEY)

Das war es soweit. Zwischen Hauptgericht und Komponente sind keine Kardinalitäten (die Ziffern bzw. n oder m da in dem Diagramm an den Linien Wink ) angegeben. Von daher schreib ich da nix zu, weil ich nicht weiß, wie da die Aufgabenstellung ist.
Was die Qualität des ERM angeht, muss ich DXer beipflichten.
Gruß und gn8

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 16.12.2007, 10:14    Titel: Antworten mit Zitat

Hallo Jungs Smile

so ähnlich habe ich das auch gemacht. Nur habe ich die IDs weggelassen. Zusätzliche Schlüssel sollten nach Möglichkeit nur eingeführt werden, wenn gar nichts anderes mehr geht. Ich weiß nicht ob das so ist. Was mir halt die Schwierigkeiten bereitet ist diese doofe Vererbung. Der Rest geht eigentlich.
Hmm also ich habe insgesamt acht Tabellen, wobei mir Nr. 7 komisch vorkommt, da sie die gleichen Informationen wie Nr. 6 beinhaltet. Und Fallen und FH haben auch jeweils nur 7 Tabellen, was meine Vermutung nur bestätigt Smile

Also ich habe folgendes Ergebnis:

1. Zutat:
ZName
Kalorien

2. Komponente:
KName
Rezept

3. Beinhaltet:
ZName (aus 1.)
KName (aus 2.)
Menge

4. Hauptgericht:
KName (aus 2.)
vegetarisch

5. Beilage:
KName (aus 2.)
Süßspeise

6. Menü.Hauptgericht:
KName (jetzt aus 4.)
vegetarisch
MName (aus 7.)
Preis

7. Menü.Beilage:
MName
Preis

8. Beilage.teil von Menü:
MName (aus 7.)
KName (aus 5.)


Was meint ihr dazu?

Grüße,
JkerryZ.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 16.12.2007, 10:26    Titel: Antworten mit Zitat

Einen String als Primärschlüssel, das erscheint mir einfach nicht richtig.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 16.12.2007, 11:04    Titel: Antworten mit Zitat

Fallen hat Folgendes geschrieben:
Einen String als Primärschlüssel, das erscheint mir einfach nicht richtig.


richtig! es ist nicht schön Wink


@JkerryZ:
Vererbung??? ---> Tabellen 6-8 stimmen nicht...

"3. Beinhaltet" ---> "ZutatKomponente" oder "ZutatUndKomponente" oder ähnlich.

nach dem bild müssten es 9 Tabellen sein: Zutat, KomponenteZutat, Komponente, KomponenteBeilage, KomponenteHauptgericht, Hauptgericht, Beilage, MenueBeilage, Menue. ich habe einfach eine m-n-Beziehung zwischen Komponente und Beilage bzw. Komponente und Hauptgericht angenommen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 16.12.2007, 22:26    Titel: Antworten mit Zitat

Maxim hat Folgendes geschrieben:

@JkerryZ:
Vererbung??? ---> Tabellen 6-8 stimmen nicht...

nach dem bild müssten es 9 Tabellen sein: Zutat, KomponenteZutat, Komponente, KomponenteBeilage, KomponenteHauptgericht, Hauptgericht, Beilage, MenueBeilage, Menue. ich habe einfach eine m-n-Beziehung zwischen Komponente und Beilage bzw. Komponente und Hauptgericht angenommen.


9 Tabellen? Bist du sicher? Die Vererbung ist halt mein dickes Problem... Wir haben das auch nicht richtig behandelt und nun kommt es so als Weiterdenkaufgabe dran... Die anderen beiden Jungs haben jeweils nur 7 Tabellen. Rolling Eyes Was meinen die anderen?
Bin mir leider auch absolut unsicher... Sad

Dank und Grüße,
JkerryZ.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 18.12.2007, 15:06    Titel: Antworten mit Zitat

Gut, ich weiß jetzt, dass es 6 Tabellen sein müssen.
Das kann man berechnen.

Die 6 Tabellen müssen die folgenden sein:

1. Zutat:
ZName
Kalorien

2. Komponente:
KName
Rezept

3. Beinhaltet:
ZName
KName
Menge

4. Beilage:
KName
Süßspeise

5.Menü, Hauptgericht:
MName
Preis
KName <--- Muss der hier noch als Schlüssel gekennzeichnet werden?
vegetarisch

6. Beilage, Teil von Menü:
MName
KName


Die abschließende Frage ist, muss in Tabelle 5 neben MName auch noch KName als Schlüssel gekennzeichnet werden?
Hoffe ihr könnt mir da helfen. Beim Rest bin ich mir jetzt allerdings ziemlich sicher..
Danke,
Grüße,
JkerryZ.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 18.12.2007, 20:22    Titel: Antworten mit Zitat

JkerryZ hat Folgendes geschrieben:
Gut, ich weiß jetzt, dass es 6 Tabellen sein müssen.
Das kann man berechnen.


Berechnen? Wie geht das?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 18.12.2007, 20:28    Titel: Antworten mit Zitat

Mein Prof meint: Anzahl der Entities + Anzahl der m:n Beziehungen + Anzahl der 1:n Beziehungen mit zusätzlichen Attributen - 1:1 Beziehungen.

Hier also:

5 Entities + 2 m:n Beziehungen - eine 1:1 Beziehung = 6

JkerryZ.

aber wie das mittem Schlüssel ist oder nicht hat er sich nicht entlocken lassen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 18.12.2007, 20:44    Titel: Antworten mit Zitat

ach ok, es würde mich echt interessieren, wie die DB am ende aussieht und ob es so funktioniert ^^

wegen den schlüsseln: du musst noch zwischen Primär- und Fremdschlüssel unterscheiden...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 18.12.2007, 22:33    Titel: Antworten mit Zitat

Maxim hat Folgendes geschrieben:
wegen den schlüsseln: du musst noch zwischen Primär- und Fremdschlüssel unterscheiden...


Argh, ja.. das ist ja dann bei allen so... lieg ich richtig mit:

Tabelle 3: beides Fremdschlüssel,

Tabelle 4: Fremdschlüssel

Tabelle 5: MName ist Hauptschlüssel, KName Fremdschlüssel

und Tabelle 6: wieder beides Fremdschlüssel??

Vielen Dank,
Grüße,
JkerryZ.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum