Vastus: Kompositsioon tähistab osa-terviku seost, kus osad sõltuvad eksistentsiaalselt tervikust e terviku kadumine/hävimine tähendab ka osade kadumist/hävimist.
Romb oleks selle olemitüübi poolel, millesse kuuluva olemi kustutamine tingib seotud olemite kustutamise.
[Käsi]<*>-1------------0..*-[Sõrm]
NB! Pange tähele võimsustikku (0..*), sest
mitte kõigil inimestel pole käel täpselt viite sõrme.
Näiteks sellele küsimusele/vastusele lisatud joonisel (vt vastuse lõpust) on kompositsiooniseoseid kindlasti liiga palju.
Mulle meeldib kõige rohkem nõuanne, et kui kahtled, siis jäta osaks/tervikuks olemine märkimata.
Andmebaaside taustaga inimest võiks nende määramise juures aidata küsimus:
Milliste seoste puhul kasutaksin ma SQL-andmebaasis ON DELETE CASCADE (e kustutades terviku kustuvad automaatselt ka selle osad)? Nende puhul võib (ei pea) UMLi klassidiagrammis kasutada täidetud rombi (kompositsiooni).
Kindlasti kasutaksin mina seda joonisel oleva näite puhul vaid ühes kohas: Isik-Isik roll.
Isik-Isiku roll puhul kasutaksin kontseptuaalses andmemudelis kompositsiooni ja SQL-andmebaasis ON DELETE CASCADE, sest tegemist on registri põhiobjekti ning sellega seotud selle sama registri mittepõhiobjektiga.
Valikukoht on minu arvates, kas kasutada kontseptuaalses andmemudelis kompositsiooni ja andmebaasis ON DELETE CASCADE ka järgnevate puhul:
Koer-Varjupaigas_viibimine
Koer-Koera_tervise_ankeet
Koer-Adopteerimisavaldus
Loogiline oleks, et kas kasutada seda kõigi kolme puhul või mitte ühegi puhul.