Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tabellen-Beziehungen sofort notwendig?

Empfohlene Antworten

Veröffentlicht

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!

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

D.h. Bei einer Datenbank, die für ein Unternehmen konzipiert wird und eine Wichtigkeitsstufe "Sehr hoch" besitzt ist es erforderlich mit Primary Keys zu arbeiten?!

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).

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

;)

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)

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

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>

vielen Dank für alle euere Antworten!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.