AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kardinalitäten mit Paradox 7 --> 3. Normalform
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Christian18 · begonnen am 20. Dez 2005 · letzter Beitrag vom 20. Dez 2005
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

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

  Alt 20. Dez 2005, 15:53
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo,

ich habe mal eine Frage, zu Paradox und 3. Normalform bei Datenbanken. Ich habe eine Tabelle Namens "Kontakte". 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. Jetzt habe ich zwei neue Tabellen erstellt in der Anrede und Titel gespeichert werden. Meine Frage ist jetzt! Muß ich die Kardinalitäten seitens des Programms einrichten (Programmieren) oder muß ich da schon was bei der Datenbank erstellung beachten. Mein momentaner Stand ist. Ich habe eine Tabelle in der Kontakt Informationen gespeichert werden und der Index von der Anrede Tabelle und Titel Tabelle. 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. Also nochmal meine Frage. Ist es möglich das ich seitens der Paradox Tabellen die Kardinalitäten herstelle und das Automatisch vergeben wird. Ich habe sowas nämlich schon mal bei Access gesehen. Und dann habe ich mir gedacht muß das ja mit Paradox 7 auch funktionierten. Denn nichts ist schlimmer als in einer Datenbank Informationen zu ändern die nicht in der 3. Normalform erstellt sind. Ich denke was die 3. Normalform ist weiß jeder, wenn nicht einfach einen Post, dann erkläre ich es kurz.

Mit freundlichen Grüßen

Christian18
  Mit Zitat antworten Zitat
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
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

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

  Alt 20. Dez 2005, 20:10
Hallo marabu,

also ich habe mal gelernt, dass ein Daten Modell erst in der 3. Normalform ist, wenn kein dopelter Eintrag in einem Feld vorhanden ist. Wobei wenn ich mir das so recht überlege, dann ist das eigentlich schwachsinn. Denn wenn ich den Index statt des Textes in einem Feld speichere, dann kann es ja vorkommen, dass der Index der Nachschlage Tabelle trotzdem zwei mal vorkommt. Hmmm... irgendwie bin ich jetzt ein bisschen verwirrt. Ich muß mich morgen nochmal genau damit geschäftigen. Es tauchen jetzt soviele Fragen bei mir auf. Ich stelle sie einfach mal.

1. Kann ich in das Feld Anrede in der Tabelle Kontakte jetzt trotzdem den Text speichern der in der Nachschlage Tabelle Anreden enthalten ist, ohne die 3. Normalform zu verletzen?

2. Was sind Nichtschlüsselfelder??? Der Begriff ist mir jetzt nicht geläufig.

So das reicht jetzt erstmal an Fragen. Die anderen die ich habe bauen sich darauf auf. bzw. kann ich selber beantworten wenn ich eine antwort auch die Frage erhalte.

Zitat:
Ein Indiz wäre das Vorhandensein mindestens eines weiteren Nichtschlüsselfeldes, dessen Wert mit der Anrede korreliert.
Ist das nicht die 1. oder 2. Normalform??? bin mir jetzt nicht genau sicher was welche Normalform macht.

Mit freundlichen Grüßen

Christian18
  Mit Zitat antworten Zitat
marabu

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

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

  Alt 20. Dez 2005, 21:03
Hallo Christian,

die erste Normalform 1NF verbietet Wiederholungsgruppen im Datensatz - diese sind in eine eigene Basistabelle auszulagern und begründen eine 1:n Beziehung.

2NF bezieht sich auf Tabellen mit zusammengesetzten Schlüsseln (compound keys) und verlangt die Abhängigkeit aller Nichtschlüsselfelder vom ganzen zusammengesetzten Schlüssel und nicht von einem beliebigen Teilschlüssel.

3NF schließlich bedingt, dass kein Nichtschlüsselfeld von irgendeinem anderen Nichtschlüsselfeld abhängt. Die NF bauen dabei aufeinander auf.

Zu deiner ersten Frage: ja, du kannst die Anrede als Klartext speichern. Ob du sie dann doch lieber verschlüsselst hängt von den konkreten Anforderungen ab. Die 3NF bleibt dadurch so oder so erhalten.

Deine Frage zu den Nichtschlüsselfeldern ist einfach zu beantworten: das sind all diejenigen Felder, die keine Schlüsselfelder sind.

Bei der Bewertung von Abhängigkeiten spielt die konkrete Bedeutung eine große Rolle. Ich kann mit einem Werkzeug vorhandenes Datenmaterial analysieren und so Hinweise auf Abhängigkeiten erhalten. Die Entscheidung, ob es sich um eine funktionale Abhängigkeit handelt oder nicht, die muss ein Mensch treffen.

Gute Nacht.

marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz