Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Kardinalitäten mit Paradox 7 --> 3. Normalform

  Alt 20. Dez 2005, 17:08
Hallo Christian,

Zitat von Christian18:
In der Tabelle "Kontakte" sollen auch Anrede und Titel gespeichert werden. Da die 3. Normalform es leider nicht ermöglicht, dass man Werte in einem Feld doppelt speichern kann, habe ich mir gedacht ich splitte das ganze auf.
das ist so nicht richtig. Das mehrfache Vorkommen des Wertes "Frau" im Feld "Anrede" ist kein Indiz für eine Verletzung der 3NF. Ein Indiz wäre das Vorhandensein mindestens eines weiteren Nichtschlüsselfeldes, dessen Wert mit der Anrede korreliert. In einer Tabelle "Kontakte" mit den Feldern (ID, Nachname, Vorname, Anrede, Titel) ist das nicht zu erwarten.

Wenn Feldwerte gehäuft auftreten, dann werden sie gelegentlich in eine lookup table ausgelagert, aber das weniger aus Normalisierungsgründen, als aus Normierungsgründen. Durch solche Nachschlagetabellen werden kanonische Schreibweisen erzwungen (Thesaurus). Oft ist das auch ein Komfortmerkmal (picklist anstelle Benutzereingabe).

Lassen wir deinen Modellierungsfehler einmal bei Seite und wenden uns den Kardinalitäten zu.

Zitat von Christian18:
Muß ich die Kardinalitäten seitens des Programms einrichten (Programmieren) oder muß ich da schon was bei der Datenbank erstellung beachten.
Bist du sicher, dass wir über die Kardinalität diskutieren wollen? Sie ist nichts anderes als die Anzahl der Tupel (Datensätze) in einer Relation (Tabelle). Meinst du vielleicht eher Komplexitäten?

Bei der Implementierung deines konzeptuellen Datenmodells in einem physischen Datenmodell musst du mit dem auskommen, was das RDBMS dir an Mächtigkeit bietet - und Paradox ist da mehr schmächtig als mächtig. Allerdings wird deklarative referentielle Integrität in schmalem Umfang unterstützt (CASCADE, DENY). Da nur value constraints möglich sind, kannst du spezielle Komplexitäten nur im Programm sicherstellen.

Zitat von Christian18:
Wenn ich mein Programm ausführe, und auf das Feld in der Kontakt Tabelle zugreife, dann wird mir der Index ausgegeben, wo der eigentliche dazugehörige Text liegt. Ich möchte aber gerne den Text ausgegeben haben.
Die Zusammenführung von Attributen in einer (dann nicht mehr normalisierten) Sicht erreichst du über (natural oder theta) Joins.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat