1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Normalisierung - nur wie weit

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von exzel, 30 März 2011.

  1. exzel

    exzel Datenbank-Guru

    Hallo zusammen,

    wie weit muss man eigentlich eine Datenbank normalisieren können. In wie weit sind die Normalisierungsformen praxistauglich?

    Gruß
     
  2. ukulele

    ukulele Datenbank-Guru

    Bis es dir zu blöd wird, Code für perfekt normalisierte Daten zu schreiben wenn es anders schneller geht :)

    PS: Mit schneller meine ich sowohl schneller in der Handhabung als auch schneller was die Abfragen angeht. Die Datenbank größe spielt eigentlich eher selten eine wirkliche Rolle.
     
  3. Charly

    Charly Datenbank-Guru

    Hallo exzel,

    ich fang mal ganz von vorne an.

    Die 1.Normalform solltest Du auf jeden Fall immer anzuwenden. Hier werden nämlich Nicht-Atomare Werte aufgelöst(Listen von Werten) und verhindert dass Attribute verschiedene Arten von Werten Speichen können (z.B. BLZ und Bankname in einer Spalte).

    Die 2.Normalform ist auch noch wichtig. Ist hauptsächlich für Schlüssel die aus mehreren Attributen bestehen. Wenn ein Attribut nämlich nur von einem Teil des Schlüssels abhängt könnte man Daten in die Tabelle eintragen die nicht vom gesamten Schlüssel abhängen und somit nicht mehr eindeutig über den Schlüssel zu identifizieren sind.

    Die 3.Normalform zerlegt die die meisten Tabellen in schöne kleine Häppchen.
    Ein gutes Beispiel bei dem man die 3.Normalform nicht immer anwenden sollte ist eine Tabelle die Adressdaten speichert (Wenn es nur eine gibt die so was speichert).

    Die 3. Normalform schreibt nämlich vor:


    Du brauchts also nicht nur den Schlüssel um den Ort genau bestimmen zu können sondern auch ein einzelnes anderes Attribut (PLZ).

    Also währe es hier Sinnvoll Ort und die PLZ auszulagen. Wenn man Tabellen mit Kunden, Lieferanten, Vertretern, Mitarbeitern, etc. hat müsste man sonst die Daten für Ort und PLZ in all diesen Tabellen mitschleppen. Und wenn dann ein Vertreter auch noch Mitarbeiter ist hat er plötzlich einen Ort mit 2 PLZ weil die Finanzbuchaltung die PLZ geändert hat und die Personalverwaltung davon nichts mitbekommen hat.

    Gruß Charly

    PS: Hoffe alles richtig und verständlich erklärt zu haben.[​IMG]
     
  4. exzel

    exzel Datenbank-Guru

    Hallo,

    entschuldigt die späte Rückmeldung.

    Charly, du hast in dem Beitrag Betreuer, Kunde, Verträge geschrieben, dass die 3te Normalform nicht immer praxistauglich ist. Sollte das der Fall sein, ist es dann so, dass bei der zweiten Normalform nicht mehr weiter normalisiert wird, die komplette Datenbank also in der zweiten bleibt?

    Gruß
     
  5. Charly

    Charly Datenbank-Guru

    Hallo exzel,

    es geht dabei nicht um die komplette Datenbank sondern nur um einzelne Tabellen oder Teile der DB.

    Gruß Charly
     
  6. exzel

    exzel Datenbank-Guru

    Hallo Charly,

    vielen Dank für deine Auskunft!

    Gruß
     
    Walter gefällt das.
  7. Michi85

    Michi85 Neuer Benutzer

    Hey,

    Bin neu hier und hätte direkt mal eine Frage: Ich habe eine Entity "Person"... Diese Entity hat verschiedene Eigenschaften, wie z.B. Gehalt, Name, Adresse etc.! Wenn ich nun die Adresse als Adresse im Relationenmodell lasse, sind dann alle 3 Normalformen erfüllt oder nicht ?

    Danke!

    Edit: Oder muss ich die Adresse in die Eigenschaften Straße, Hausnummer, PLZ, Ort aufdröseln ?
     
  8. Michi85

    Michi85 Neuer Benutzer

    Bräuchte es relativ dringend :S
     
  9. ukulele

    ukulele Datenbank-Guru

    Straße und Hausnummer nein, PLZ und Ort jein, kann man machen. Wenn ein Ort mehrere PLZ haben kann, muss man um die 3te Normalform zu erfüllen.
     
  10. exzel

    exzel Datenbank-Guru

    Hallo nochmal,

    in wie weit benötigt man noch die anderen Normalformen, die nach der dritten kommen?

    Gruß
     
  11. ukulele

    ukulele Datenbank-Guru

    Die Normalformen sind Definitionen, sie beschreiben eine Art Perfektion der Datenstruktur gegen Redundanzen. Benötigen tust du keine davon. Der SQL Datenbank ist das ziemlich egal...
     
  12. exzel

    exzel Datenbank-Guru

    Aber man müsste doch auch die PLZ und Ort aufteilen, wenn jeder Ort nur eine PLZ hat, oder?

    Gruß
     
  13. Charly

    Charly Datenbank-Guru

    Hallo excel,

    Nein

    Das Zerlegen in mehrere Tabellen für Ort und PLZ macht nur deshalb einen Sinn weil es mehrere Orte für eine PLZ und mehrere PLZ für einen Ort geben kann.
    Wenn es für jeden Ort nur eine PLZ geben würde (und wenn sonst keine Adressfelder wie z.B. Straße in der Tabelle stehen) könnte man PLZ und Ort in eine Tabelle schreiben (jedenfalls nach der 3NF) .

    Stell dir mal die Frage ob Du Orte und Postleitzahlen auch dann in die Tabelle schreiben oder danach suchen möchtest wenn es keine Person gibt die da wohnt.

    Wenn JA brauchst Du eigene Tabellen weil du ohne eine Person die in einer Stadt lebt auch keine Stadt anlegen kannst.
    Wenn NEIN überleg Dir ob du deine Adressdaten wirklich in der 3NF haben willst. Oder möchtset Du jedes mal wenn du eine Adresse brauchst einen JOIN aus was weis ich wie vielen Tabellen zusammenbauen?

    Gruß Charly
     
  14. exzel

    exzel Datenbank-Guru

    Hallo und danke für die Antwort,

    ich hatte mich an diese Seite hier erinnert, wo die PLZ und Ort wg. der dritten Normalform ebenfalls in eine gesonderte Tabelle untergebracht werden.

    Aber hier ist es auch etwas anderes, da die Rechnungsnummer eindeutig auf den Ort zeigt und nicht wie im Beispiel dieses Threads.

    http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap4.htm#Chap4.5

    Gruß
     
  15. Charly

    Charly Datenbank-Guru

    Hallo excel,

    der Link ist kein gutes Bespiel. Da kann man nur einen Ort pro PLZ anlegen und auch nicht mehrere PLZ pro Ort und die Personaltabelle ist nicht 3.NF.

    Gruß Charly

    PS: MS hat hier was gutes zur Normalisierung geschrieben.
     
Die Seite wird geladen...

Diese Seite empfehlen