In this second installment of the multi-part series on content management systems I will be covering two topics, what I refer to as the database backend and the binding glue. These two items work in combination with each other as the workhorse components of any cms package and so it makes sense to present them together in the same installment.
The Database Backend of CMS Systems
The database is the first of a pair of features that empower CMS packages. The database stores most of the web sites content. Also stored in the database are the sites user preferences, security settings, your configuration settings, and much more. Having the content on line within a database makes the task of adding more content to your site or editing existing content very easy on you, the site administrator.
You no longer need to create individual web pages with the content embedded in the page or edit existing web pages just to get at the content of the site. Instead you use the graphical interface tools provided by the CMS to add new content or edit existing content. In fact, many of the tools support the cut-and-paste function. You can compose content in your favorite word processor, then cut-and-paste it into the graphical tool of the CMS package. I find this feature very useful because I make use of my word processors spell checker and other document composition features to help me form better content prior to placing it within my web site.
A large number of the Open Source CMS packages make use of the Open Source MySQL database system. While MySQL is most commonly known for its Open Source product, they do have a commercial license available if you seek to use it in a commercial setting. For more information on this aspect of MySQL, have a look at the information provided here http://www.mysql.com/products/licensing.html.
What had made MySQL attractive to web hosting providers is the way it is licensed for this purpose. If used by a web hosting provider to provide database access to its customers, the hosting company can use MySQL without having to pay any licensing fees. Since there is no cost involved to the hosting company to provide MySQL database access to their clients, it did not take long for MySQL to catch on as the preferred favorite for use in the Open Source CMS world.
There are also Open Source CMS systems that use Microsoft SQL Server as the database backend. MS SQL server is well known in commercial circles as one of the top favorites for use in businesses. When the MS SQL2005 product line was released in late 2005, there was a new edition to the MS SQL family called SQL2005 Express. I have noticed that some hosting providers are beginning to offer this new form of MS SQL to their offerings so be on the lookout for new developments in this arena. There are plenty of hosting providers out there who offer MS SQL database hosting with web hosting packages so you should find one fairly easy if your CMS system uses MS SQL instead of MySQL as the database backend.
The task for you is to know what database backend your CMS package uses so that you can then begin your search for a hosting provider who provides the specific system you need. If you have a database preference or are more comfortable working in one particular brand of database, you can focus your research into those CMS packages that use your preferred database.
Before leaving the topic of SQL, I want to point out something else that will be of importance to you. Because your data, your web site users’ preferences, their logins and passwords are all stored in a SQL database, you simply back it up so if anything ever happens to your site you can recover. This will entail developing a backup schedule so that you will always have a recent set of data to restore from if you ever need it.
Some hosting providers provide scripting of one sort or another by which you can automate your backup process so that it is executed at a specific time each day or night. Some Portal packages provide a backup/restore module within the package from which you can do manual backups. There are also a good number of third party products on the market which allow you to administer your hosted database. So keep the thought of a regular backup of your sites data in mind as you explore your options, knowing it will be an item you will need to address at some point in your decision making process.
The Binding Glue
So we have talked about Portal or CMS packages and how they are groups of programs which provide a user interface to administering the site as well as all the functionality behind the site. We have talked about MySQL or other database options for being the backend storage devices to contain the actual site content. But what is the other piece of the puzzle that completes the loop allowing the CMS to work?
What I cal the binding glue is really one of a number of possible programming languages. These are the languages that are used to create the actual programs of the CMS system and allow it to work with the database backend. Not just any programming language will work in this web based environment as you need a language tailored to the web.
In the non-Microsoft arena, the most popular language for CMS creation is PHP. It was written with the mindset of being the glue between the programs and data in a dynamically driven web site. Being another product of the Open Source arena, many hosting providers offer it as a feature to you. Typically the hosting provider will offer MySQL database hosting along with the ability to run PHP written programs so that you have the features you need to make your Portal package work.
Rather than try to give a history of the language or attempt to describe its many features, you can find all the specifics about the language right from its home site located at http://www.php.net. Another good source of information for PHP can be found at http://www.phpbuilder.com. There are many other references out there and as you search the Internet for them you can easily see just how popular this language really is.
The language of choice for those form a Microsoft background is ASP.NET coupled with any of the .NET languages. Both PHP and ASP.NET act as the glue that binds the CMS system to the database for dynamic content delivery over the web. The two languages part ways in other aspects though. The PHP language is used right in the HTML web pages, separated from normal HTML content by opening and closing tags. The end result is that the program code is right there within your web pages. ASP.NET takes a different approach, or I should say can take a different approach if the programmer so chooses. ASP.NET can utilize the technique called code behind where the actual programming code is contained in a separate file that gets compiled into the delivered web page at runtime. This technique helps keep actual program code separate so in many ways it is more manageable by the programmer.
I personally do not attempt to say one way is better than the other as in many respects it is a matter of personal preference to the actual programmer. The real key to remember is that when using a Portal or CMS product, you don’t need to know how to program to make use of the system. The programming is already done for you. For those of us who do programming type work, having the source code of the package is a great advantage because we can tweak it and re-work it to fit our own needs.
For now though, as a prospective web author you have some things to consider as you make your decision on how to go about creating your website. Everything is relative to what you want to accomplish. While we all try our best to make the right choice the first time, you may find once you get in so deep that your first choice is not working. If this is the case, you can reevaluate your choice and if necessary select another one and begin again. There is nothing wrong with doing that and as long as you are willing to put forth the effort required by a bit of rework then you will be all the more knowledgeable at the end of the day.
In the final installment of this multi-part series of blog entries on cms systems I will cover some of the packages that I am familiar with as well as information on how cms systems have grown over time to fulfill a number of needs.