 [2004] for examples).REA systems have usually been modeled as relational databases with entity-relationship diagrams, though this is not compulsory.The philosophy of REA draws on the idea of reusable Design Patterns, though REA patterns are used to describe databases rather than object oriented programs, and are quite different from the 23 canonical patterns in the original designs pattern book by Gamma et al.