Normalformen bei Datenbanken

Liebe/-r Experte/-in,
ich versuche mich gerade schlau zu lesen. Komme aber über die Normalformen nicht hinweg. Ich verstehe schon, was sie bedeuten…sie aber in Tabellen einer Datenbank umzusetzen bereitet mir Probleme.

Ich würde Dir gerne einmal einen Entwurf einer Datenbank zusenden (MS ACCESS 2007), damit du dir einmal ein Bild davon machen kannst.

Ginge das?

Gruß
Ralph

ne, lass mal lieber, ich krieg da auch nur einen Knoten im Hirn.
Ich bin DBA und hab gottseidank damit nicht mehr viel am Hut.

Ziel ist es u.a. die Daten aus der Ursprungstabelle so in der Datenbank - verteilt über mehrere Tabellen - abzulegen, dass keine Werte mehrfach gespeichert werden. Aber ich würd’s damit nicht masslos übertreiben, sonst hast du zwar die Daten toll verteilt und über Primärschlüsselverweise zugeordnet, bekommst aber gewaltig Probleme, wenn deine Applikation mit den Daten was machen soll. Dann werden die Select-Statements kompliziert, weil Daten aus mehreren Tabellen zusammensortiert werden müssen und wenn ein Datensatz in einer Tabelle geändert werden muss, muss zunächst eine Kopie angefertig werden, damit nicht alle auf den Satz verweisenden Schlüssel auf einen falschen Satz zeigen, aber nur dann, wenn es nicht der einzige referenzierte Datensatz ist…das wird richtig aufwendig und es dürfen keine Logikfehler in der Applikation sein, sonst verwürfelt es deine ganze Daten.
Trotzdem kann darüber die Konsistenz der Daten gesichert werden und die Menge an Daten gewaltig reduziert, zudem die Spaltenmenge in einer Tabelle klein gehalten werden, was auch sehr sinnvoll ist.

Schau dir einfach weitere Beispiele an und entscheide, wie weit die Normalisierung Sinn macht.

Ansonsten schick mir mal deine Datenbank.

Viel Spaß beim entflechten
Gruß Guido

Hallo,
ich habe leider kein 2007. Du kannst mir aber gern einen Screenshot der Beziehungsansicht schicken. Dort bitte die Tabellen so ziehen, das alle Spalten lesbar sind.
Wichtig wäre auch, das du mir das konkrete Problem schilderst.

Gruß,
Honeyhead

Hallo Ralph,

wenn es noch aktuell ist, kannst du mir gerne die Datenbank zusenden.

Grüße,
Jörg

Hi,
ich bin jetzt kein wirklicher Access experte, aber die normalformen kenne ich.
Prinzipiell geht es immer darum; Wann immer du in deinen Tabellen doppelte einträge siehst, dann ist es Zeit etwas zu ändern.
Das Standardbeispiel ist hier immer die PLZ mit dem Ort. Wenn du 5 Personen in deiner „person“-tabelle hast, von denen 3 aus „80xxx“,„München“ kommen, dann kannst du theoretisch eine Tabelle erstellen mit

ID|PLZ|ORT

und von deiner „person“ einen fremschlüssel darauf legen, damit sparst du eine Spalte in der „person“ und hast keine redundanten Daten darin.

Allerdings kostet es dich pro abfrage einen JOIN wenn du immer ort und PLZ brauchst. Daher ist es auch immer so, dass es sich bei den normalformen um eine schöne Theorie handelt, ob sie in der Praxis dann effizient umgesetzt werden kann ist eine andere Frage

Das ist jetzt auch nur ein Beispiel für (ich glaube) die zweite normalform.

Sehr schön auch im Wikipedia zu erkennen http://de.wikipedia.org/wiki/Normalisierung_(Datenba…

Wenn es nicht schon zu spät ist kannst du mir deine DB gerne schicken

~Hannes