Zum Inhalt springen

Tabellen-Beziehungen sofort notwendig?


unite

Empfohlene Beiträge

ich habe ein paar Fragen an die DB-Kenner:

1. Wenn man eine Datenbank erstellt, muss man überall Primary keys vergeben, oder

ist es nicht zwingend erforderlich?

2. Muss eine fertige Datenbank bereits Verknüpfungen/Beziehungen enthalten, oder werden diese erst bei

den SQL - Abfragen erstellt?

Wenn man z.B. auf Nivo.de geht und da den "Fingerabdruck"/Publikationen/"Datenbanken leicht gemacht" anklickt,

und da Kapitel 2 (Access) herunterlädt. Dann sieht man unter "Beziehungen", dass alle Tabellen der DB irgendwie

logisch verknüpft sind. Ist das ein Muss, oder wird es wie gesagt erst beim SQL - Programmieren gemacht und zwar meine ich damit

wo man gewisse Abfragen stellt. (Oder ist es so, dass man zunächst keine logische Verknüpfungen zu machen braucht und sofort mit Abragen arbeitet?)

Vielen Dank für alle Antworten im voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sauberer ist es schon mit Primery Keys und Fremdschlüssel.

Aber wie gesagt nichts ist unmöglich man kann auch eine DB schreiben und die Schlüssel in DB-Trigger abfangen, oder wie du willst direkt im Programm (hier kann es dann aber zu Fehlern kommen, wenn man z. B. direkt mit SQL manipuliert kann es zu unschönen Ergebnissen kommen, da es z.B. nicht überprüft ob die Adresse stimmt usw., die Logik ist ja nur in dem einen Programm)

Viele Grüsse

Eva

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

empfehlenswert ist es die Primary Key's gleich zu setzten. Diese verändern sich ja auch nicht. Wenns unbedingt nötig ist , kann man diese auch noch nachträglich über SQL setzten oder entfernen. Normalerweise ist das aber nicht nötig.

Was die Verknüpfungen betrifft: Die setze ich persönlich grundsätzlich erst in den SQL-Abfragen. Ich hab da schon einige unschöne Überraschungen erlebt, wenn die von Anfang an gesetzt sind, gerade im Access (z.B. Daten konnten nicht aktualiert werden).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du schreibst, eine Datenbank entwickeln oder konzipieren.

Du bist also, was dieses Projekt angeht, in der Modellationsphase bzw. im Datenbankentwurf.

Wenn du ein relationales Datenmodell nimmst (wie impliziert), dann gehört auch das Normalisieren der Relationen (Tabellen) dazu. Würde zumindest ein guter DB-Designer so verstehen. Die 2. Normalform schreibt eine eindeutige Abhängigkeit aller Attribute vom Primärschlüssel vor. Der sollte also rein.

Hoffe, geholfen zu haben

the rok

;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok. Das mit Primary Keys habe ich jetzt verstanden, wie sieht es denn mit Verknüpfungen aus?

Ich meine, unter MS Access gibt es eine Möglichkeit die ganze Database mit allen ihren Verknüpfungen zu sehen, und sie auch zu verändern.

Was mich interessiert: ist es notwenig immer diese Verknüpfungen zu setzen oder werden sie erst bei Abfragen konzipiert? (Primary Keys werden natürlich sofort gesetzt)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke mal das es Dir um die Beziehnugen geht?!

Diese Beziehungen sind nicht zwingend notwendig!!

Aber mal ganz ehrlich, wozu macht man denn Datenbanken!?

Man macht Datenbanken auch um Daten strukturiert aufzunehmen. Dieses ist nun mal nur über den Aufbau eines Datenmodells zu realisieren. Solch ein Datenmodell wird nun mal, unter anderem, aus Beziehungen aufgebaut.

Das heisst man sollte sich vor dem eigentlichen erstellen der Datenbank ersteinmal grundlegend Gedanken machen welche Daten wie aufgenommen werden sollen!?

Gruss Titus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Stellt Euch mal vor, Ihr habt eine Auftragstabelle mit Feldern, wie z. B.

Auftrags_Nr, Auftragsstatus_Nr, bla, blubb ...

------------------------------------------

4711 --- 2 .....

4712 --- 1

*Könnte im Programm ja so umgesetzt sein, dass der Statustext anstelle der Nr ausgegeben wird*

Dann habt Ihr eine zweite Tabelle "Auftragsstatus" mit den Feldern

Status_Nr, Status_Bez

---------------------

1 --- in Arbeit

2 --- erledigt

3 --- storniert

.

Die Auftragsstatus_Nr in der Auftragstabelle SOLL selbstverständlich ein Fremdschlüssel auf die Statustabelle sein. --- ist aber nicht als solcher angelegt ---> Beziehungen

Nehmen wir mal an, Ihr hättet keine Beziehungen angelegt und würdet den Status 2 aus der Statustabelle löschen! Dann hätte der Auftrag 4711 einen Status 2 (ohne Bez.), der gar nicht existiert!

Sowas führt zu Fehlern und darf rein theoretisch gar nicht geschehen. Man sollte keine Stammdaten löschen dürfen, die in anderen "Bewegungsdaten" noch benützt werden. Dafür gibt es in Access soweit ich weiß, so Dinger wie "Lösch- und Aktualisierungsweitergabe", was vorraussetzt, dass man Beziehungen angelegt hat.

Ich hoffe, Ihr könnt Euch etwas darunter vorstellen.

<FONT COLOR="#a62a2a" SIZE="1">[ 13. August 2001 11:07: Beitrag 4 mal editiert, zuletzt von Anja ]</font>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...