2016-06-05 47 views
2

enter image description hereQualifier, Multiplizität und Datenbank

Kann ich dieses Klassendiagramm so interpretieren? Eine bestimmte Datei kann viele verschiedene Namen in einem Verzeichnis haben. Die Namen in einem Verzeichnis dürfen nicht doppelt sein. Die Anzahl der Dateien mit bestimmten Namen in einem Verzeichnis ist Null oder 1. Aber wenn ich auch sagen möchte, dass ein Verzeichnis viele Dateien speichern kann und eine Datei in vielen Verzeichnissen gespeichert werden kann. Zeigt dieses Diagramm diese Informationen auch? Gemäß diesem Diagramm befinden sich 3 Tabellen in der Datenbank (Verzeichnis, Datei und Join-Tabelle). . Verzeichnis (Did, Dname) wobei Did der Primärschlüssel ist. Datei (Fid, Fsize) wobei Fid der Primärschlüssel ist. Dann muss in der Join-Tabelle (Did, Fid, name) stehen und die Kombination aus (Did, name) muss eindeutig sein. Ist mein Verständnis richtig?

Antwort

3

Ihr Verständnis ist fast perfekt. Es gibt nur ein nit zu wählen: die Vielzahl auf der linken Seite stellt dar, wie viele Verzeichnisse, nicht wie viele Namen sind mit einer Datei verbunden. Es gibt nichts, was einschränkt, wie viele Dateinamen in einem Verzeichnis eine Datei darstellen können. Mit anderen Worten, Sie könnten mehrere Namen in einem Verzeichnis für die gleiche Datei haben, was beispielsweise auf einem UNIX-basierten Dateisystem möglich ist. Nichtsdestotrotz repräsentieren Ihre drei Tabellen und Spalteneindeutigkeitsbedingungen alles perfekt.

+0

● \t Ohne Qualifier kann eine Datei nur einmal in einem Verzeichnis stehen, da nur ein Link zwischen einem Objektpaar vorhanden sein kann. Mit dem Qualifikationsmerkmal kann sich eine Datei jedoch mehrmals in einem Verzeichnis befinden und unterschiedliche Namen verwenden, da Dateien mit Namen innerhalb von Verzeichnissen verknüpft sind (nicht mit Verzeichnis verknüpft), sodass mehrere Vorkommen innerhalb eines Verzeichnisses möglich sind. –

+0

Also meiner Meinung nach sollte die linke Multiplizität die Anzahl der Namen sein, nicht die Anzahl der Verzeichnisse. Ich verstehe das nicht. Für die linke Multiplizität muss der Qualifier vernachlässigt werden und für die richtige Multiplizität muss der Qualifier berücksichtigt werden? –

+1

Beseitigen Sie das Qualifikationsmerkmal und ändern Sie die richtige Multiplizität in *. Die Bedeutung der Multiplizität links bleibt gleich. –