Ein komplexes Attribut (zusammengesetztes Attribut) ist ein einzelnes logisches Attribut, das aus mehreren atomaren Unterattributen besteht.
Klassisches Beispiel: Mitarbeiteradresse
EmployeeAddress (komplex) ├── StreetAddress ├── City ├── State ├── ZIPCode └── Country (optional)
Vorteile
- Logische Gruppierung: Verwandte Daten bleiben zusammen.
- Atomarer Zugriff: Abfragen können auf das Ganze (EmployeeAddress) oder Teile (City) verweisen.
- Schemaklarheit: Reduziert Tabellenverteilung gegenüber separater Adresstabelle für 1:1.
- Integrität: Einschränkungen auf Composite (z. B. ZIP passt zu Stadt/Bundesstaat).
Implementierung
- Relational: Eingebettete Spalten (Address_Street, Address_City…) oder UDT (PostgreSQL, Oracle).
- Dokument/NoSQL: Natürliches verschachteltes Objekt.
- ORM: Eingebettetes/Wertobjekt (JPA @Embeddable, EF Core Owned Entity).
Wann aufzulösen
Wenn Unterattribute geteilt werden (viele Mitarbeiter pro Adresse), unabhängig abgefragt werden oder unabhängigen Lebenszyklus haben → separate Entität/Tabelle.