I’m thinking of taking a course in Web Site Design and I’ve been offered an option in Databases? Is this something I need? I really want to build great websites but I’m not sure whether learning about databases will help.
An interesting question, and certainly one that most veterans in the industry don’t even think about, as it’s the sort of thing people can take for granted. The short answer is that learning about databases won’t help you build more visually appealing websites, but databases will help you create more powerful and useful websites than ever. But let’s start at the beginning. What is a database?
Wikipedia defines it quite succinctly:
A Database is a structured collection of data which is managed to meet the needs of a community of users.
The key word here is “structured”. A database allows you to store large amounts of information in a known format and this gives a website designer lots of power. To give an example, I’m going to use a website that lets you book hotel rooms around Europe called Let’s Book Hotel. In this case the website has a large number of hotels stored and allows you browse through them, search for particular features and potentially even make a booking. I’m less interested in the booking facilities and more in how the data is structured.
Lets say you wanted to build a similar website to this. How would you go about it? Well, one way would be to build a separate webpage for every hotel, put all the information about that particular hotel on that page, and link to the page from a main page. Users can then browse your website and move from one hotel to the next. It does the job, but think about how you would manage this if you have thousands of hotels and you wanted to change the colour of the page for example. It would be a nightmare to do this. Also, you won’t be able to offer comprehensive searching facilities. For example, if someone wanted a hotel in Cyprus priced between £20 and £50, how would you filter the pages to make sure only those would appear?
A database could address all these issues. If you had a database sitting behind the website, you could store all your hotel information in this database, then have one page that requests the information based on what the user is searching for. So for example, if he is searching for hotels in Blackpool you would return a subset of the information. Likewise, if the user searches for hotels in Liverpool you would return a different subset. You could also use the same data to populate different searches, for example searching for hotels in the Isle of Man returns hotels in all the area that form the country.
As you can see, databases are an extremely powerful tool in a web developer’s arsenal. All the big websites run on databases, becuase it makes them easy to manage and because it offers an unprecedented level of power. Some things would just not be possible without a database driving the website. So my advice is, if you can, take up the database module too, it can make a great difference to the websites you build.