Entity-Attribute-Value Model (EAV)
Was ist EAV?
Das Entity-Attribute-Value Model (EAV), auch bekannt als Object-Attribute-Value Model und Open Schema ist ein Datenmodell für den Fall, dass die Anzahl der Attribute eines Objektes nicht vorhersehbar ist.
Grundsatz bei der Verwendung des EAV Modells ist, dass das Modell nur für die Objekte umgesetzt wird, bei denen es benötigt wird. Mit diesem Modell erhöht sich nicht nur die Flexibilität, es hat auch Auswirkungen auf die Kosten u.a. in Form von Hardwareanforderungen und Performance.
Vorteile
- Hohe Flexibilität, die Anzahl der Eigenschaften ist unbegrenzt.
- zusätzliche Eigenschaften ohne Erweiterung der Datenstruktur möglich.
- Keine Programmierung bei Erweiterung um zusätzliche Eigenschaften notwendig.
Nachteile
- Komplexe Programmierung von SQL-Statements
- Durch das EAV können einige durch die Datenbanken zur Verfügung gestellten Funktionen, wie z.B. CONSTRAINTS nicht verwendet werden.
- Verlagerung von Datenbankfunktionen in die Anwendungslogik.
Um für statistische Auswertungen und Übersichten ausreichend schnelle Antwortzeiten zu ermöglichen werden in einigen Systemen (z.B. Magento) eine Drehung der Daten (pivot) durchgeführt, bei der die Daten in ein relationales Schema kopiert werden. In Mangeto werden diese Tabellen mit dem Suffix _flat gekennzeichnet. Die Notwendigkeit der Erstellung von Kopien statt der Verwendung von Datenbank-Views ergibt sich aus Performancegründen. Zudem müsste auch die View selbst bei jeder Änderung (zusätzliche Attribute) neu erstellt werden. Hier wird die Redundanz aus Performancegründen toleriert.