2016-12-31 2 views
0

Ich muss eine Beziehung normalisieren, so dass sie in der ersten Normalform ist. Ich weiß, wie man mehrwertige Attribute normalisiert, es sind nur zusammengesetzte Attribute, die mir Probleme bereiten. Zum Beispiel ist eines der zusammengesetzten Attribute 'Employee-Address', und wie erwartet enthält es Unterattribute wie 'Hausnummer', 'Straßenname' usw.Wie normalisiert Composite-Attribut?

Wie normalisiere ich das? Diese zusammengesetzten Attribute sind nicht mehrwertig/komplex, d. H. Ein einzelner Mitarbeiter kann nur 1 Adresse haben. Ich glaube auch, dass das Attribut 'Mitarbeiter-ID' verwendet werden kann, um alle Unterattribute der Adresse zu identifizieren. Ist es so einfach, das zusammengesetzte Attribut aufzubrechen und jedes Unterattribut als sein eigenes Attribut in der Relation zu speichern? Auf diese Weise würden alle Unterattribute zu einfachen, einzelnen und gespeicherten Werten werden.

Bevor sich jemand beschwert; Diese Frage bezieht sich auf eine College-Aufgabe und ich habe das gesamte empfohlene Lehrbuch (und das Internet) für die Antwort durchgesehen, die ich nicht gefunden habe. Natürlich hätte ich gerne eine Lösung für meine Antwort, aber wenn Sie lieber Ihr eigenes Beispiel geben möchten, ist das großartig. irgendwelche Ratschläge oder Hinweise werden sehr geschätzt!

+0

In der realen Welt werden Adressen als einzelne Zeile in einer Tabelle gespeichert, wobei die Adresse in einer Zeichenfolge und dann in anderen Feldern (z. B. Postleitzahl) gespeichert wird. Manchmal werden Features in andere Spalten (Apartmentnummer) extrahiert, aber die Adresszeile selbst wird nicht mit zusätzlichen IDs gefüllt, außer vielleicht für höhere geografische Regionen. –

+0

@Gordon Ich stimme zu. Meine einzige Vermutung für die Adresse, die eine zusammengesetzte Mode ist, ist für die Einstufung von Aufgaben! Ich persönlich sehe nicht, wie einfach das Entfernen der zusammengesetzten "Klammern" und das Speichern in getrennten Feldern einen Unterschied machen würde. –

+0

Was meinst du mit "normalisieren"? Diese und verwandte Begriffe werden mit unterschiedlichen Bedeutungen verwendet (und oft missbraucht) und es ist nicht klar, was Sie hier meinen. Was ist die Eingabe und was soll die Ausgabe sein? Was ist dein Texbook? Zu Verwirrungen um "Normalisierung" siehe [dies] (http://stackoverflow.com/a/24038895/3404097). Auch [dies] (http://stackoverflow.com/a/41395340/3404097). – philipxy

Antwort

0

Die einzige Anforderung von 1NF ist, dass jedes Attribut nur einen einzigen "atomaren" Wert enthält.

Wenn die Frage darauf hinweist, dass die Adresse ein zusammengesetzter Wert ist und jeder Teil der Adresse ein separater Unterwert ist, sollten Sie für jeden Unterwert ein Attribut erstellen.

Wahrscheinlich möchten Sie jeden Teil der Adresse trotzdem in einem eigenen Attribut speichern, damit Sie sie indizieren und Abfragen wie "Alle in New York City suchen" effizient ausführen können.

+0

Danke, macht sehr viel Sinn. Übrigens, die Beziehung hat ein mehrwertiges Attribut und ich habe entschieden, dass ich eine separate Beziehung dafür erstellen werde. Dazu muss ich den Primärschlüssel der ursprünglichen Beziehung überführen und mit dem mehrwertigen Attribut selbst kombinieren, um den Primärschlüssel der neuen Beziehung zu erstellen. Der Primärschlüssel der ursprünglichen Beziehung ist zusammengesetzt, ist das okay? Danke und frohes neues Jahr! –

+0

Ich bin mir nicht sicher, ob ich verstehe, was du sagst. Sie erstellen eine separate Beziehung für Adressen oder etwas ähnliches? Ob das Sinn macht oder nicht, hängt davon ab, was in der ursprünglichen Beziehung steht. Sind es "Angestellte" oder etwas anderes? –

+0

Entschuldigung, ich werde klären. Das mehrwertige Attribut, auf das ich mich beziehe, ist keine Adresse, sondern eine sogenannte 'Mitarbeiterqualifikation'. Die ursprüngliche Beziehung ist sehr schlecht abgebildet, sie enthält alle Attribute der Datenbank, alles von Kundendaten bis hin zu Mitarbeiterdaten und sogar Produktinformationen. Diese Beziehung wurde durch den Auftrag festgelegt, ich würde es ändern, wenn ich vor 1NF könnte. Grundsätzlich funktioniert der zusammengesetzte Schlüssel der ursprünglichen Beziehung, wenn eine separate Relation für Qualifikationen erstellt wird? Die ursprüngliche Beziehung PK enthält jedoch keine Mitarbeiter-ID, aber die Lehrbücher sagen, dass Sie die PK verwenden müssen. –

Verwandte Themen