Schulprojekt Lagerverwaltung - Datenbankentwurf

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schulprojekt Lagerverwaltung - Datenbankentwurf

    Hallo,

    wir haben eine Aufgabe an der Schule gekriegt wo wir ein Datenbankentwurf machen sollen (ER-Modell, Textbeschreibung, ER-Modell mit Visio(wobei es gar keine Shapes gibt >_<) und dann eine Präsentation...).

    Ich bin leider etwas überfragt wegen einem Problem. Mein Lehrer kann mir da gar nicht weiterhelfen da er das selbe wiederholt was ich schon gesagt habe und somit bringt es mir nichts.

    Also ich kann ja erstmal die Aufgabe hinschreiben und dann kann ich meine bisherigen Sachen die ich schon gemacht habe noch dazuhängen.

    Erstellen Sie ein ER-Modell für den folgenden Sachverhalt: Eine Baufirma möchte eine Datenbankanewndung einsetzen, um die Kundenaufträge und vorhandenen Ressourcen (Lager, Fahrzeuge, Fahrer) besser planen zu können. In der Firma sind Büroangestellte, Fahrer, Arbeiter und Techniker angestellt. Die Büroangestellten betreuen die Kunden und nehmen die Aufträge der Kunden entgegen. Die Arbeiter und Fahrer führen die Aufträge aus. Der Fahrer benutzt dazu einen Lieferwagen oder einen LKW. Für einen Auftrag werden ein Fahrer und ein oder mehrere Arbeiter benötigt. Für einige Aufträge werden Materialien aus dem lager benötigt. Der Techniker betreut den Fuhrpark, zu dem die Lieferwagen und die LKWs gehören. Versehen Sie die Entity-Typen des ER-Modells mit Attributen, die Sie für notwendig halten, und legen sie auch Primärschlüssel fest. Beschriften Sie die Beziehungenr und geben Sie die Kardinalitäten an.


    So weit so gut. Mein Problem ist jetzt die Beziehung zwischen Material und Auftrag. Mein Lehrer meint das man noch eine Entität namens "Lager" braucht wo dann die Materialien zugeordnet sind also so eine 1:n Beziehung. Für mich erigbt das aber gar kein Sinn. Wofür wird denn bitte schön ein Lager gebraucht? In der Materialien Tabelle stehen ID, Bezeichnung und Menge drin - was braucht man dann noch mehr? Außerdem meint er wir sollten so eine "IST-Beziehung" beachten - also das soetwas da eventuell acuh gebraucht wird um das ER-Modell zu erstellen.

    Ich habe schonmal die Datenbank in Access erstellt obwohl das nicht Teil der Aufgabe war (hatte aber dennoch Lust dazu...).

    Außerdem habe ich mal in ner Text Datei die einzelnen Tabellen mit den Attributen hingeschrieben.

    burak.ldragon.de/db/Bauunternehmen.mdb
    burak.ldragon.de/db/datenbank.txt

    Ich hoffe mein Problem ist verständlich und das mir da einer helfen kann - ich habe jetzt leider keinen Scanner heir sonst könnte ich das momentane ER-Modell auch dazu tuen.

    Ah ja, gibt es diese alten ER-Modell Shapes noch für Visio? Ich mein sowas: upload.wikimedia.org/wikipedia/de/a/ab/Er-diagramm.svg

    Habe in Google schon überall geguckt aber leider finde ich nur Programme die irgendwie die neue "Version" erstellen.

    Danke!

    Illidan
  • Bei den Materialien musst du die Anzahl entfernen und stattdessen eine M-N Relation für Lagerbestand einführen.
    Denn jedes Lager hat eine bestimmte Menge an Artikeln.

    Quellcode

    1. LAGERBESTAND
    2. LagerNr | AutoWert
    3. MaterialNr | Zahl
    4. Anzahl | Zahl


    Damit du nachvollziehen kannst, wieviel Materialien du aus welchem Lager beziehst hast du zwei Möglichkeiten:
    Entweder du fügst noch eine eindeutige ID hinzu und nimmst sie statt der MaterialNr als Fremdschlüssel in der AUFTRAGSDETAILS Tabelle.
    Oder aber du nimmst die LagerNr mit in die AUFTRAGSDETAILS Tabelle.

    Ich würde erstere Lösung vorziehen - evtl teilst du das Lager irgendwann noch in Sektionen ein. Dann musst du nur die LAGERBESTAND Tabelle erweitern.

    Den Rest habe ich nur überflogen. Auf jeden Fall brauchst du noch eine Tabelle FAHRZEUGTYP.
  • Okay, danke erstmal für die Antwort - jetzt weis ich schon besser bescheid :D!

    Jetzt versteh ich allerdings das mit der ID nicht - was würde dann da für eine Zahl stehen? Wäre die immer unterschiedlich oder wie ist das? Weil die wäre ja, wie du gesagt hast, wieviel Materialien ich aus einem Lager beziehe.

    Und in FAHRZEUGTYP würde drin stehen ob es ein PKW, LKW oder sowas wäre, stimmts?
  • Illidan schrieb:

    Jetzt versteh ich allerdings das mit der ID nicht - was würde dann da für eine Zahl stehen?

    Naja, die Spalte ist ein "Auto Increment" - eine eindeutige Zahl, bei Access wohl "AutoWert" genannt.
    Nenne sie doch LagerbestandNr

    LagerNr ist natürlich kein AutoWert sondern ein normaler Zahlen-Fremdschlüssel.
    LagerbestandNr musst als Fremdschlüssel in die AUFTRAGSDETAILS hinzufügen.

    Und in FahrzeugTyp kommen auch nur die Attribute FahrzeugTypNr und "Bezeichnung"
  • So, danke nochmal für die Hilfe!

    Ich hab das jetzt eigentlich fertig gemacht. Habe allerdings noch paar kleine Fragen :).

    Kann man Zusatztabellen mit Zusatztabellen (bei n zu m Beziehungen) verbinden?
    Können Zusatztabellen auch mit mehreren Tabellen verknüpft werden?
    Wird für die Kommunikation auch ein Primärschlüssel benötigt (pdf ist im Anhang)
    EDIT: Hätte ich hier auch irgendwo "IST-Beziehungen" gebraucht ?
    EDIT: Mir ist noch eingefallen - ich habe bei AUFTRAG das Attribut Position - leider weis ich gerade gar nicht mehr wozu das da wäre? Weist du da eventuell bescheid wozu das gut ist? Mein Lehrer hat das auch bei den anderen Modellen bei Auftrag dazugetan und ich wusste auch wieso....
    EDIT: Kann man bei einer n-m Beziehung die mit einer Tabelle verbunden ist auch auf die Zusatztabelle von derjweiligen Tabelle zugreifen? (im Modell wäre das jetzt z.B. AUFTRAG - enthält - ANGESTELLTE ( -> Zusatztabelle)

    Hoffe das ER Modell ist soweit richtig - mein Lehrer hat gesagt das bei n-m Beziheungen die Primärschlüssel der Tabellen als Primärschlüssel wieder in die Zusatztabelle reingefügt werden. Du hast jetzt gemeint das es Fremdschlüssel sein sollte, ist das egal oder gibts da n Zusammenhang?^^

    Mfg

    Illidan
    Dateien
    • ERModell.pdf

      (116,87 kB, 1.335 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Illidan ()

  • ui.. also ich würde empfehlen nur gerade Linien zu verwenden, Das macht das Modell viel, viel übersichtlicher!

    Evtl kannst du die Tabellen noch grau hinterlegen, damit sie etwas hervorstechen.
    Ansonsten mach ich nur ungern deine Hausaufgaben.. und das alles durchzuschauen kostet Zeit. Daher wieder nur das gewohnte "beim ersten Blick aufgefallen"

    Syntax
    was soll das ^ am Ende des Attributes?
    m-n mit m-n zu verbinden halte ich nicht für schön. Ich würde die Zwischentabelle einfach ausgliedern. Aber frag dazu gerne mal deinen Lehrer.
    Eine gute Dokumentation ist eine verständliche Dokumentation. Und wenn man Abhängigkeiten mit Abhängigkeiten verknüpft, macht es das für den Leser nur komplizierter.

    Falsche Kardinalitäten
    FAHRZEUG n <-> 1 FAHRZEUGTYP
  • Ja, gerade Linien wäre schon hübsch nur ist das mit Word auch problematisch - vorallem wenn man nur so ein kleines Arbeitsfeld hat und Visio die Shapes dafür nicht enthält :(.
    Trotzdem kann ich es nochmal ausprobieren es mit geraden Linien zu machen.

    Btw. es ist ja nicht wirklich so ne Hausaufgabe sondern ein Projekt - leider haben die anderen Leuten in meiner Gruppe keine Ahnung von dem Kram und immoment sind Ferien. Nächste Woche Mittwoch kann ich den Lehrer nochmal fragen und ich hoff mal das er mir da helfen kann weil irgendwie ist er mir auch keine große Hilfe - wenn ich 5 Stunden lang denke und mir gesagt wird das ich nochmal überlegen soll warum das so ist dann wird mir die Antwort sicher auch nicht direkt gleich zukommen....

    Zur Syntax: Das ^ am Ende des Attributes soll Fremdschlüssel bedeuten - unterstrichene Attribute sind ja Primärschlüssel.

    Ich hoffe ich nerve dich nicht mit den ganzen Problemen und Fragen nur weis ich sonst nicht an wen ich mich da wenden sollte ^^".
    Was meinst du genau mit Zwischentabellen ausgliedern? Wäre dass das wo ich über die n Tabelle auf die Zwischentabelle zugreife ?

    Vielen Dank trotzdem!
  • mit Zwischentabelle ausgliedern meine ich, dass du aus der Relation eine eigene Tabelle machst. (machst du ja sowieso irgendwann)

    Zu deiner "Position":
    Wo ist denn deine Auftragdetails Tabelle aus dem ersten Entwurf hin?
    Ein Auftrag besteht schließlich aus mehreren Rechnungsposten. Irgendwie musst du die Aufträge zu einer Rechnung gruppieren.

    Wenn du das Wort Position durch RechnungsNr ersetzt. Und noch eine extra Tabelle für Rechnung hinzufügst, wäre die Position bestimmt abgedeckt ;)