Datenbankschema in UML
Biesterfeld
- datenbank
Hallo,
ich würde gerne ein sehr einfaches Datenbankschema auf UML abbilden bin mir aber etwas der Modellierung unsicher. Ein sehr simples Beispiel eines PostgreSQL Schemas:
CREATE TABLE a (
ak VARCHAR(4) UNIQUE NOT NULL PRIMARY KEY,
name TEXT
);
CREATE TABLE b (
bk VARCHAR(4) UNIQUE NOT NULL PRIMARY KEY,
name TEXT
);
CREATE TABLE a2b (
a VARCHAR(4) REFERENCES a ( ak ) ON DELETE CASCADE,
b VARCHAR(4) REFERENCES b ( bk ) ON DELETE CASCADE,
UNIQUE ( a, b )
);
1.) Gibt es irgendeine sinnvolle Möglichkeit in UML Primär- und Fremdschlüssel zu modellieren? Ich dachte da an einen Stereotyp. Ist das Zulässig?
2.) Die Tabelle a2b assoziiert ja in irgendeiner Form die Tabellen a und b. Ich bin mir nur nicht sicher ob die Beziehung auch eine Komposition ist, weil a2b ja nur Tupel aus a und b referenziert, aber die jeweiligen Tupel nicht vollständig enthält. Wie stell ich in UML eigentlich eine einfache Assoziation dar? Ist das eine simple Verbinungslinie oder ein Pfeiltyp?
3.) Wie bzw. kann ich den UNIQUE-constraint in a2b irgendwie durch eine Multiplizität zum ausdruck bringen?
Mein bisher bescheidener Versuch sieht folgendermaßen aus.
------------------------------ ------------------------------
| a | | b |
------------------------------ ------------------------------
| ak : varchar(4) <<pkey>> | | ak : varchar(4) <<pkey>> |
| name : text | | name : text |
------------------------------ ------------------------------
* <> * <>
| |
------------------------------
| a2b |
------------------------------
| a : varchar(4) <<fkey>> |
| b : varchar(4) <<fkey>> |
------------------------------
Wobei --<> eine Komposition darstellen soll. Bin für Anregungen sehr dankbar.
Beste Grüße
Biesterfeld
Hej,
Ich würde für die Modellierung eines Datenbank-Schemas
ein ERM vorziehen.
Ich weiß. Würde ich grundsätzlich auch. Es ging mir aber mehr um die akademische Frage, inwiefern die UML für einen derart beschränkten Einsatz auch nutzbar wäre. Ich hab ja auch schon gegoogelt und einge Ansätze gefunden, aber eben genau die oben beschriebenen Fragen blieben weitestgehend unbeantwortet.
Wenn Du's dann doch in UML brauchst, gibt es Möglichkeiten, das ineinander über zu führen (siehe z.b.
hier.
Der Inhalt der sich hinter dem Link verbirgt geht leider ebenso kaum auf meine konkreten Fragen ein. Aber hab trotzdem Dank.
Beste Grüße
Biesterfeld