

The logical data model of a database is critical to enforce data integrity and assure performance. The platforms we build upon (SQL Server, Access, MySQL, etc.) are relational databases, which is a well-defined model that can function extremely well even in enterprise-level applications. However, it takes expertise to construct and implement an effective relational model.
Anyone who has used Microsoft Access knows that they can use it to create relational databases. There's a reason every Access book out there starts out with a first chapter on relational design. It's critical knowledge, because I poorly designed database is invariably a nightmare to maintain! Believe me, we've seen a lot of those.
The experience we offer is not only understanding of basic design principles, but practical knowledge of how to model real life applications. The relational model is not perfect, and there are times when experienced programmers need to use their judgement as to when to break the rules or "de-normalize". Logical design is impacted by performance considerations, limitations of the interface technology in use, and budget constraints.
Also, many of our applications rely on Object-relational mapping. This lets us leverage the power of object-oriented languages such as Java while using fast and affordable relational database back ends. These are all common design considerations in modern programming.

