The Basics of Back End Development & Database Design
Without web development experience, it’s difficult making sense of complex technologies like front-end and back-end web development. From frameworks, coding languages, PHP, databases, and beyond, it can be overwhelming for novices and non-technical professionals to grasp.
Lack of understanding, of course, makes the job of CEOs and hiring managers more difficult when it comes time to source a web agency for a web development project.
For our non-coder friends out there, this article is going to introduce the concept of back end infrastructure. We’ll discuss the key intricacies so you can make more informed decisions for your company or corporation.
Before We Dive Into Back End Web Development…
First things first, there are some concepts and terminology you should know before we start to dig in. Let’s start by getting that out of the way, then we’ll dive into the fundamentals of back end web development.
What Is A Front End?
We won’t be covering front end development in this article beyond this section as it warrants an article of its own.
That being said, you’ll still need to know what it is and what it’s relationship is to the backend so it certainly bears mentioning here.
Consider the front end as the client-side of a website. Basically, the side of it that users can view, explore, and interact with. The page you’re seeing now, for example, is part of the front-end experience.
What Is A Back End?
Alternatively, the back end is what occurs behind the scenes on the server and database. It’s considered the server-side of a website and is basically all of the parts of the website that the user doesn’t see.
“Backend development is the skill that powers the web. Yet it does it modestly, without fanfare—allowing people to browse their favorite sites without even knowing about all the work put in by the backend developer or team.” –Kristal Tolani
The Basics of Back End Infrastructure
The back end is made up of the server, a database, and a back end application (as well as some APIs).
- The server is the computer that runs the back end web application
- The database is what contains all of a website’s data
- And, the back end application is what communicates between the server and the database using server-side scripts
What Are Server-Side Scripts?
You’ll often hear the term server-side scripts referenced in articles and discussions on back-end web development. Server-side scripts are an important part of what’s going on behind the scenes of a website.
Server-side scripts are what web developers use to build the back end web application. Site users do not see the scripts; however, they will be directly affected by them via the site’s user experience.
RELATED READING: User Empathy & Compassionate Designing For Better UX
Again, server-side scripts are responsible for transmitting data between the the server, and the database, and that data is provided by the front-end or a back-end application.
Here’s an example of how it works:
- A user visits the website and logs into their user account.
- They update their profile picture and email address.
- As soon as the user submits their changes, the front end delivers that data to server-side scripts.
- The server-side scripts then relay the updated information to the back end application and process the changes on the server.
- Lastly, the user information is updated on the database completing the user’s request.
Server-side scripts are used to retrieve any type of data requested by the user whether it be via drop-down menus, radio buttons, text fields, and so on.
Recapping Server-side Scripts
- Can be activated by a site’s code and are run on the server
- Communicate information from the server to the database
- Fulfills user requests by transferring data between a site’s server to the browser (similar to our example above)
- Responsible for powering dynamic web app functions like user validation, data retrieval, navigating site pages
- Is a major player in the way a database is designed, developed, and maintained
- Used to create Application Programming Interfaces, or API’s
You could think of server scripts as your site’s librarian.
Imagine that the site’s database is a huge, expansive library. When a user visits your site and requests something specific, the server scripts act as the librarian by locating the exact piece of data they are requesting and presents it back to the user in the browser.
Ideally, this all happens quickly, seamlessly, and securely.
Languages & Back-end Frameworks
There are multiple languages and frameworks that back end developers can use. Which language they actually decide to go with will be based on the requirements of the app they are building.
Different languages and frameworks will each feature their own set of pros and cons. The file size, compatibility, overall performance, and amount of code required will all depend on the chosen language.
Object-Oriented Programming vs. Procedural Programming
There is even contrast in styles among different languages. Developers must consider whether to use object-oriented programming (OOP) languages or a procedural programming language.
W3Schools.com explains the differences:
“Procedural programming is about writing procedures or functions that perform operations on the data, while object-oriented programming is about creating objects that contain both data and functions.”
Although, it should be noted that OOP languages do have some benefits over procedural programming. For example, OOP is faster and executes more easily. It is also more clearly structured for programs.
Another big advantage of OOP is that it enables pieces of an application to be fully reusable, taking fewer lines of code and a more abbreviated development time.
RELATED READING: Strong Website Design Relies on Attention to Detail
The Popularity of PHP In Back End Infrastructure Development
It’s fair to say that PHP is the most popular back-end language—it’s found on the majority of websites including Facebook, WordPress, Wikipedia, Microsoft, Flickr, and a lot more.
In fact, W3 Techs PHP Market Report notes that PHP is used by 78.9% of all the websites whose server-side programming language we know.
That being said, PHP isn’t the only option for back end web developers.
Some other common languages include:
- Ruby (which is used on Hulu and Basecamp)
- Java (found on Verizon, Twitter, and others),
- Python (powers YouTube, Google)
However, there are many reasons PHP powers the vast majority of websites. Some of the most relevant reasons are:
- PHP is Open Source – It’s free to use and benefits from regular version updates and a thriving online community and support system
- Not tied to a specific platform – PHP works on all operating systems like Unix, Linux, Windows, and so on.
- Ease of use – It’s easy to learn, fast to build with, and relatively uncomplicated to maintain
- Many framework options – Works with a variety of frameworks
- Speed & performance – It can be loaded quickly even by slower internet connections
- Security – PHP has built-in tools to prevent security threats
Perhaps one of the largest benefits, however, is PHPs compatibility with various database management systems.
For example, MySQL, Apache, Oracle, and others. This makes PHP ideal for processing data, file uploads, and managing large databases.
All of this is important to the bigger picture because a good database design is what makes websites scalable and offers more flexibility in customizations.
Which leads us to the next bit of crucial information:
Databases are really important.
It’s All About The Database
Obviously, you want the entire back end web development infrastructure to run seamlessly and efficiently so the user has a good experience using the site’s front end.
Having a poorly designed database, however, can quickly turn a website into a disaster zone.
A bad database simply makes everything else much harder to do.
Symptoms of A Bad Database
Several things can result in poor database design but are perhaps most commonly a result of an inexperienced database designer, unrealistic time frames to develop the back end and the database, lack of proper database maintenance, and/or inadequate resources.
This usually results in problems later on down the road that will hurt the usability of a site.
- A Bad Database Slows Everything Down
For example, a website can be dramatically slowed down by a bad database—pages may load slowly, e-commerce transactions can take too long to process, and user requests to update their data like from our example above may not work altogether.
- Faulty Databases Lead To Site Outages
Worse yet, issues with a database can even cause a system outage if it runs out of data storage space. A challenge that occurs as a result of a high number of data volumes or some other resource that becomes unavailable (such as a partition, data set, or some kind of package).
- Improperly Designed Databases Trigger Unnecessary Equipment Upgrades
When this happens, it’s not uncommon to see organizations to continually throw money at the problem by trying to fix it through hardware upgrades like servers with higher memory and storage capacities.
While a larger server may be a serviceable patch to the problem temporarily, if the database issues aren’t resolved, costly hardware upgrades become a regular thing.
If your company has been making frequent upgrades, it may indicate a larger issue in your site’s database.
Best Databases For Back End Development
Again, when choosing the best database engine to use for the back end, the developer will have some choices.
Although, there is a clear leader in the pack…
MySQL is the definitive database used on PHP websites. It is a great choice for a website that will have large amounts of data and/or users.
MySQL runs on the server and is ideal for large or small applications. Its popularity is increased in large part by its lighting speed, reliability, and ease of use. Like PHP, it can be compiled on many different platforms and is free to use.
If your website is built with PHP, some additional database engine options are:
- PostGreSQL is updated more frequently than MySQL, however, it’s still said to run a bit slower
- SYBASE is more popular on enterprise-level applications and is one of the more secure options which explains why it’s the chosen database for the United States Department of Defense and the CIA
- Oracle is prevalent for mission-critical commerce applications. Its license is proprietary, but it is available in four different versions to suit different use cases and budgets.
- DB2 comes to us from IBM. It’s been around since the 1970s and is still sometimes used for e-commerce implementations. However, it does require a PECL extension to make it work with PHP.
RELATED READING: A Guide to Maintaining Your WordPress Website
Start Your Back End Web Development Project Off On The Right Foot
Fortunately, fixing database issues—or better yet, starting with a good database—is often much less expensive than equipment upgrades.
Of all the things web developers say people shouldn’t try taking the DIY approach on, database design especially stands out. One of the best pieces of advice I’ve heard given on database design comes from 10-time Microsoft Platform MVP, Thomas LaRock…
“Like dentistry, database design is something that is best left to a professional and not something you should do for yourself… Go out and hire an expert to help guide you.”
The key to getting the job done the right way and on schedule is to work with a trusted professional or agency who has experience in designing, developing, and managing all aspects of the back end infrastructure.
We are an award-winning web development agency with decades of combined experience in both back end and front end architecture.
Our work speaks for itself.
Reach out to 3 Media Web today for a consultation. We’re looking forward to lending our expertise to your company’s next web project.