Entity-Attribute-Value (EAV): The Antipattern to Great to Give Up

Download the presentation: entity-attribute-value-eav-the-antipattern-too-great-to-give-up-andy-novick

The Entity-Attribute-Value (EAV) is a design pattern for relational databases that uses an extreme form of normalization to achieve flexibility and the ability to efficiently store temporal data that changes frequently.  EAV has its critics and the flexibility it provides creates opportunities for abuse and introduction of bugs leading some to call it an Antipattern.

In many applications the advantages outweigh the disadvantages and EAV has been in use for 50 years in a variety of applications such as Medical Research, Financial Services and e-Commerce.   This presentation will discuss:

  • What is Entity-Attribute-Value and show variations including temporal variations
  • What are the problems with EAV
  • How to handle the problems and reduce the chance of introducing bugs
  • Efficiently storing EAV data through partitioning and compression
  • ETL on frequently changing EAV data
  • Pivoting EAV data for efficient queries

When handled correctly EAV provides the flexibility needed by many applications.