Supportnet / Forum / Datenbanken
Benötige Hilfe bzgl. Datenbankentwurf
Frage
Hallo,
ich brauch dringend Hilfe beim u.s. Problem. Das ganze sieht folgendermaßen aus.
Der Student gibt seine Daten zum Praktikum ein.
Diese sind: Angabe welches Praktikum (1. o 2.), In welchem Semester es
stattfindet, Name Firma, Adresse der Firma, Abteilung, Name des Betreuers, Tel, Fax,
Email vom Betreuer, Webseite.
Name des Studenten, Vorname und MatrNr werden
aus einer anderen DB ausgelesen und soll dann auch erfasst werden.
Wie sieht die Datenbank hierzu aus. Ich habe schon mehrere Muster enworfen,
aber keines gefällt mir. Bzw. ich bin mir nicht sicher, welches
richtig ist. Ich brauche es ganz dringend.
Ist es beim DB Entwurf wichtig, was augelesen wird oder wird der DB Entwurf
unabhängig davon geregelt?
Habe schon mehrer Seiten zu DBs und Normalisierung gelesen, aber ich kriegs nicht hin.
Noch eine Frage. Wenn ich keinen eindeutigen Schlüssel habe wie z.B. eine Kundennr kann ich diese einer Tabelle dann selbst zuweisen oder muß ich meinen DB Entwurf anhand des gegebenen erledigen.
Z.B. bei der Tabelle Betreuer. Ich habe keine Betreuernr. oder eine Personalnr.. Als Schlüssel will ich aber nicht den Namen nehmen, da dieser ja nicht eindeutig ist.
Ich würde mich über Eure Antworten sehr freuen.
Grüße
Antwort 1 von Ingolf
Hallo Erkani:
Ich nehme mal an, daß Dein DB-Entwurf für ein relationales Modell erfolgen soll.
Vor einigen Anmerkungen, ein Hinweis auf ein Buch, das aus meiner Sicht immer noch das Standardwerk der Datenbanken inkl. Entwurf ist: C.J.Date - An Introduction to Database Systems, Addison-Wesley. Meine Ausgabe ist schon etwas älter (1981), aber es gibt mittlerweile wohl auch schon neuere Auflagen. In meiner Ausgabe ist u.a. als Beispiel das oft kopierte Student-Vorlesung-Modell enthalten, das mit kleineren Anpassungen sicher auch für Deine Problemstellung Lösungen bietet.
So nun zu meinen Anmerkungen:
- Versuche Dir erst einmal darüber klar zu werden, welche Tabellen Du überhaupt benötigst. D.h. welche Informationen willst Du wo ablegen. Fragen hinsichtlich Normalisierung oder Zugriffsoptimierung kannst Du später berücksichtigen.
- Überlege Dir, wie die Tabellen miteinander zusammenhängen, d.h. Bestimmung der Relationen. Sind es 1:1, 1:n oder n:m Beziehungen.
- Versuche Dir nun Schlüssel zu suchen. Wenn ein Attribut nicht als Schlüssel taugt, dann ggf. einen zusammengesetzten Schlüssel (d.h. mehrere Attribute bilden einen Schlüssel) bilden. Alternativ dazu kannst Du Dir ein eigenes Schlüsselattribut definieren.
- Sind die Schlüssel und die Relationen definiert, dann erzeuge Primär- und Fremdschlüssel.
- Noch ein Hinweis zur Normalisierung: Versuche die Normalisierung nicht als Dogma zu betrachten. Es kann zwar ein schöner Entwurf entstehen, der aber für Praxiszwecke aufgrund von Zugriffszeiten nicht tauglich ist.
Viel Erfolg, meine Empfehlung wäre, wenn Du Dich erst mal mit einigen Kapiteln des o.g. Buchs vertraut machst,
Gruß, Ingolf.
Ich nehme mal an, daß Dein DB-Entwurf für ein relationales Modell erfolgen soll.
Vor einigen Anmerkungen, ein Hinweis auf ein Buch, das aus meiner Sicht immer noch das Standardwerk der Datenbanken inkl. Entwurf ist: C.J.Date - An Introduction to Database Systems, Addison-Wesley. Meine Ausgabe ist schon etwas älter (1981), aber es gibt mittlerweile wohl auch schon neuere Auflagen. In meiner Ausgabe ist u.a. als Beispiel das oft kopierte Student-Vorlesung-Modell enthalten, das mit kleineren Anpassungen sicher auch für Deine Problemstellung Lösungen bietet.
So nun zu meinen Anmerkungen:
- Versuche Dir erst einmal darüber klar zu werden, welche Tabellen Du überhaupt benötigst. D.h. welche Informationen willst Du wo ablegen. Fragen hinsichtlich Normalisierung oder Zugriffsoptimierung kannst Du später berücksichtigen.
- Überlege Dir, wie die Tabellen miteinander zusammenhängen, d.h. Bestimmung der Relationen. Sind es 1:1, 1:n oder n:m Beziehungen.
- Versuche Dir nun Schlüssel zu suchen. Wenn ein Attribut nicht als Schlüssel taugt, dann ggf. einen zusammengesetzten Schlüssel (d.h. mehrere Attribute bilden einen Schlüssel) bilden. Alternativ dazu kannst Du Dir ein eigenes Schlüsselattribut definieren.
- Sind die Schlüssel und die Relationen definiert, dann erzeuge Primär- und Fremdschlüssel.
- Noch ein Hinweis zur Normalisierung: Versuche die Normalisierung nicht als Dogma zu betrachten. Es kann zwar ein schöner Entwurf entstehen, der aber für Praxiszwecke aufgrund von Zugriffszeiten nicht tauglich ist.
Viel Erfolg, meine Empfehlung wäre, wenn Du Dich erst mal mit einigen Kapiteln des o.g. Buchs vertraut machst,
Gruß, Ingolf.
Antwort 2 von erkani
Hallo Ingolf,
danke für Deine Nachricht.
Jetzt würde ich noch gerne wissen, wie Dein Buch heißt?
Grüße
erkan
danke für Deine Nachricht.
Jetzt würde ich noch gerne wissen, wie Dein Buch heißt?
Grüße
erkan
Antwort 3 von disco
Zitat:
C.J.Date - An Introduction to Database Systems, Addison-Wesley.
C.J.Date - An Introduction to Database Systems, Addison-Wesley.
Antwort 4 von erkani
Hallo disco,
hallo ingolf,
das hatte ich schon verstanden, daß dieses Buch gemeint ist
Deine Aussage
"Meine Ausgabe ist schon etwas älter (1981), aber es gibt mittlerweile wohl auch schon neuere Auflagen."
hatte ich so verstanden als ob Du (Ingolf) auch ein Buch herausgebracht hättest. Hatte mich schon über das Datum der Ausgabe gewundert.
Jetzt weiß ich, wie das gemeint war.
Danke nochmal,
erkan
hallo ingolf,
das hatte ich schon verstanden, daß dieses Buch gemeint ist
Deine Aussage
"Meine Ausgabe ist schon etwas älter (1981), aber es gibt mittlerweile wohl auch schon neuere Auflagen."
hatte ich so verstanden als ob Du (Ingolf) auch ein Buch herausgebracht hättest. Hatte mich schon über das Datum der Ausgabe gewundert.
Jetzt weiß ich, wie das gemeint war.
Danke nochmal,
erkan
Antwort 5 von Ingolf
Hallo Erkan:
Habe zwar schon Manuskripte zu einigen Themen, aber die Zeit zum eigenen Buch hat noch nicht gereicht :-))
Übrigens, das Datum der Ausgabe muß Dich nicht unbedingt verwundern, es gibt auch Forumsbesucher, deren Alter die 40 schon überschritten hat.
Trotzdem, viel Erfolg beim Datenbankdesign, kann sogar Spaß machen. Solltest Du nach den ersten Gehversuchen mit Datenbanken Dich weiter mit DBs beschäftigen wollen, dann kann ich Dir drei hilfreiche Werkzeuge nennen:
- Advanced Query Tool (graphisches Frontend für fast alle DB-Systeme mit umfangreichen Werkzeugen, www.querytool.com. Kostenpflichtig)
- PL/SQL-Developer (Entwicklungsumgebung für PL/SQL, die Oracle-Programmiersprache, www.allroundautomations.com. Kostenpflichtig)
- TORA (ebenfalls ein graphisches Frontend ähnlich Advanced Query Tool, allerdings nur für Oracle. Ursprünglich Freeware, aber der Entwickler wurde von einem großen Anbieter geschluckt, so daß auf der Website www.globecom.se/tora nur eine Weiterleitung zum neuen Anbieter ist. Ggf. findest Du aber via Google noch eine TORA-Version).
Gruß, Ingolf.
Habe zwar schon Manuskripte zu einigen Themen, aber die Zeit zum eigenen Buch hat noch nicht gereicht :-))
Übrigens, das Datum der Ausgabe muß Dich nicht unbedingt verwundern, es gibt auch Forumsbesucher, deren Alter die 40 schon überschritten hat.
Trotzdem, viel Erfolg beim Datenbankdesign, kann sogar Spaß machen. Solltest Du nach den ersten Gehversuchen mit Datenbanken Dich weiter mit DBs beschäftigen wollen, dann kann ich Dir drei hilfreiche Werkzeuge nennen:
- Advanced Query Tool (graphisches Frontend für fast alle DB-Systeme mit umfangreichen Werkzeugen, www.querytool.com. Kostenpflichtig)
- PL/SQL-Developer (Entwicklungsumgebung für PL/SQL, die Oracle-Programmiersprache, www.allroundautomations.com. Kostenpflichtig)
- TORA (ebenfalls ein graphisches Frontend ähnlich Advanced Query Tool, allerdings nur für Oracle. Ursprünglich Freeware, aber der Entwickler wurde von einem großen Anbieter geschluckt, so daß auf der Website www.globecom.se/tora nur eine Weiterleitung zum neuen Anbieter ist. Ggf. findest Du aber via Google noch eine TORA-Version).
Gruß, Ingolf.
Antwort 6 von Ingolf
Hallo Erkan:
Habe gerade ein Werkzeug (wiederentdeckt), das Dir beim Datenbankentwurf sehr hilfreich sein kann. Kann Dir zwar die Theorie und Deine Kreativität nicht abnehmen, aber ein schönes Werkzeug ist es trotzdem. Schön daran ist auch, daß es kostenlos ist (Freeware).
Der Link ist http://www.fabforce.net/dbdesigner4/ und das Werkzeug heißt DB Designer 4. Obwohl Freeware, muß es sich wohl nicht hinter Werkzeugen verstecken die z.T. mehrere tausend Euros kosten.
Bin gerade selbst dabei, es mal für ein Reverse Engineering einer Datenbank einzusetzen (d.h. auf Basis einer vorhandenen Datenbank mir einen Überblick über die einzelnen Tabellen und Relationen zu machen).
Gruß und viel Spaß,
Ingolf.
Habe gerade ein Werkzeug (wiederentdeckt), das Dir beim Datenbankentwurf sehr hilfreich sein kann. Kann Dir zwar die Theorie und Deine Kreativität nicht abnehmen, aber ein schönes Werkzeug ist es trotzdem. Schön daran ist auch, daß es kostenlos ist (Freeware).
Der Link ist http://www.fabforce.net/dbdesigner4/ und das Werkzeug heißt DB Designer 4. Obwohl Freeware, muß es sich wohl nicht hinter Werkzeugen verstecken die z.T. mehrere tausend Euros kosten.
Bin gerade selbst dabei, es mal für ein Reverse Engineering einer Datenbank einzusetzen (d.h. auf Basis einer vorhandenen Datenbank mir einen Überblick über die einzelnen Tabellen und Relationen zu machen).
Gruß und viel Spaß,
Ingolf.

