What is a Database?
A database is a software system you use to organize information. Modern databases come in two primary flavors, SQL-based relational databases, and NoSQL-based document databases. An SQL-based relational database can be imagined as a series of tables (as in a spreadsheet), but with more rigidly defined rules for the type of content allowable in each column of the table, and with extra features that allow you to relate the tables amongst each other, and query the data within them.
A NoSQL-based document database can be imagined more like the folder structure of your computer’s file system. Each document is like a parent folder, with a unique name (ID), that can contain both key / value information (think file name / file contents), and a hierarchy of other data (think sub-folders which can have file name / file content or further sub-folders).
NoSQL document databases can also have data structures and relationships to other documents within the database, but generally speaking, the rules of referential integrity and field data types are not as strictly enforced as they are in traditional relational databases.
What is a Database Application?
A database application is a software system that utilizes one or more databases. Much of the software you use in your daily life are probably some form of database application.
Today, nearly all websites are database-driven to some extent. Web page content is often stored in a database and rendered dynamically. Same with your login information, your user profile, your order history, and your social connections for instance.
Database applications are also created for other less visible “backend” purposes. For instance, search engines utilize databases to store indexes about website content so that you can search for the web pages you need. Businesses use database applications to organize workflows for their internal operations, for instance, to help staff process orders, as CRM to track leads, to manage product & service catalogs, and other data management requirements based upon the unique aspects of the business.
Do I Need a Database Application?
The short answer: Yes.
Do you need a website? If so, it should probably be database-driven so you can manage its content without coding. Do you have customers? If so, they should be tracked and updated centrally for all staff in a CRM. Do you have processes that your staff should execute in order to properly do their jobs? A database application can help enforce those processes and ensure consistent delivery. Do you need to integrate multiple 3rd party systems to automate aspects of your business? You guessed it: that would be a database application.
Of course, if your core business is an online business, then your online business is probably a database application. All e-commerce sites are database applications, social networks too, crowdfunding sites, blogs, subscription systems, analytics services, etc. These are all database applications, so even if you never thought about it, your database might be the most core technical aspect of your business.
How Do I Ensure My Database Application is Secure, Scalable, and Robust?
Similar to our beliefs with respect to web development, this is where experience and expert professional service can bring you peace of mind.
First, choose a mainstream database platform. We generally opt for MySQL for relational databases, and MongoDB for NoSQL databases. However, depending on your scale, Microsoft’s SQL Server, Oracle, or certain cloud database services might be appropriate too.
Second, if your database application is to be custom built for your unique business, be sure you have experienced database developers designing it.
Just as inexperienced web developers might choose an inappropriate platform and/or customize that platform in a way that inhibits future growth, a poorly designed database can mean costly and time-consuming refactoring when your data storage and reporting needs evolve.
Third, consider how your database will be interfaced. The software written to expose your database is responsible for the majority of its security and integrity. Poorly written software can expose your database to SQL injection attacks, corrupt data, slow the system, or enable a security breach that exposes confidential data to either malicious hackers or even accidentally to other system users. The developers writing the software that interfaces your database should have well-established means for ensuring security, speed, and data integrity.
Lastly, consider where your database will be hosted. Your server platform and network infrastructure also have a major impact on system performance and security. The person or group that manages your hosting platform should be knowledgeable about firewall rules, memory requirements, and configuration options that will maximize performance and security.
So, just as we recommend with respect to your web developers, interview the person or people who will be responsible for designing and managing your database application. Use some of the information above to guide your questions, listen carefully, use your intuition, and gain confidence that the people you bring into your team really know what they’re doing
Got a database? Need a database?
Endertech has been designing and developing database-driven web apps for 15 years. Contact us today for a free consultation about your web project!