Elements of Enterprise-Grade Web Frameworks – Part 9: A Robust and Scalable Database Backend

Custom Database ProgrammingSince the database is often the central component around which enterprise applications are built, a robust and scalable database is an absolute necessity for enterprise app development. As the application grows and interfaces with other systems, the database becomes a central hub for system architecture and business logic. Out of all the factors that influence longevity of an application, the database design often outweighs even the application’s development framework.

As such, the first and foremost rule of database design is to follow the rules of data normalization. The concepts, from eliminating repeating groups, to eliminating columns not dependent on the key, help ensure that the database will be scalable and will grow well with changing user requirements and system design throughout the application lifecycle.

In addition to a well-normalized design, the database should also make proper use of triggers and views. Triggers are additional actions that can be automatically executed upon each row insert, update, or delete. These useful tools can automate audit trails and modification timestamps, as well as enforce more complicated data integrity rules in the database. Views, on the other hand, are saved SQL statements that virtualize into a table. Views can significantly reduce code complexity in the actual application, by simplifying complex joins and repetitive SQL statements. Both views and triggers help to reduce bugs, improve application performance, and improve maintainability.

Given these database requirements – it’s time to let the cat out of the bag. MySQL is not the ideal database for most enterprise applications. If the web application itself is simple, self-contained and will never be integrated with other systems, then it might be used. Still, it is better to err on the side of caution and implement a better, still free, database that will enable more performance and flexibility down the road. SQL Server and Oracle both offer free versions of their database that will suffice for most initial installations, until the cost of the actual database becomes small relative to the size of the operation. The main problem with MySQL is its lack of maturity with regard to more advanced database functionality, such as triggers, permissions, joins, and collation. Until the database does achieve a full command set, it’s a good idea to use SQL Server or Oracle when possible.

Of course, web apps that access and store big data or integrate real-time functionality can often benefit from a NoSQL database backend, while large-scale distributed systems will need to utilize a highly scalable database such as Hadoop. Still, even within these systems, a parallel well-built relational database is often used for handling the hierarchical data with foreign keys.

Join us in the next article in this series, where we investigate the nuances of foreign and unique key automation in web frameworks.

Written by Andrew Palczewski

About the Author
Andrew Palczewski is CEO of apHarmony, a Chicago software development company. He holds a Master's degree in Computer Engineering from the University of Illinois at Urbana-Champaign and has over ten years' experience in managing development of software projects.
Google+

RSS Twitter LinkedIn Facebook Email

One thought on “Elements of Enterprise-Grade Web Frameworks – Part 9: A Robust and Scalable Database Backend”

  1. I read a lot of interesting content here.
    Probably you spend a lot of time writing, i
    know how to save you a lot of work, there is an online tool that creates unique,
    SEO friendly articles in seconds, just search in google – laranitas free content

Leave a Reply

Your email address will not be published. Required fields are marked *