Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 15.12.2007, 20:34 Titel: ERM in relationales Datenbankmodell umwandeln |
|
|
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
Würde mich über Anregungen, Vorschläge und Co riesig freuen!!
Liebe Grüße,
JkerryZ. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.12.2007, 21:57 Titel: |
|
|
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 |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 15.12.2007, 22:18 Titel: |
|
|
- 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
Wenn mir noch was einfällt, sage ich bescheid kannst ja dein Zwischenergebnis hier posten
@Fallen: sehr lustig ^^
PS: K.A. wer die Aufgabe erstellt hat, aber ERM ist nicht gut (höfflich gesagt) |
|
Nach oben |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 16.12.2007, 02:48 Titel: |
|
|
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 ) 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 |
|
|
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 16.12.2007, 10:14 Titel: |
|
|
Hallo Jungs
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
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.12.2007, 10:26 Titel: |
|
|
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 |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 16.12.2007, 11:04 Titel: |
|
|
Fallen hat Folgendes geschrieben: | Einen String als Primärschlüssel, das erscheint mir einfach nicht richtig. |
richtig! es ist nicht schön
@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 |
|
|
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 16.12.2007, 22:26 Titel: |
|
|
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. Was meinen die anderen?
Bin mir leider auch absolut unsicher...
Dank und Grüße,
JkerryZ. |
|
Nach oben |
|
|
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 18.12.2007, 15:06 Titel: |
|
|
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 |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 18.12.2007, 20:22 Titel: |
|
|
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 |
|
|
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 18.12.2007, 20:28 Titel: |
|
|
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 |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 18.12.2007, 20:44 Titel: |
|
|
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 |
|
|
JkerryZ JLI Master Trainee
Anmeldedatum: 18.05.2004 Beiträge: 575 Wohnort: Wolfsburg Medaillen: Keine
|
Verfasst am: 18.12.2007, 22:33 Titel: |
|
|
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 |
|
|
|