Relational Databases

In Chapter 20 I talked about using the GDBM library (optionally with Perl’s MLDBM module) to maintain persistent data for a web site. A more full-featured way to achieve that kind of back-end data storage is to use a relational database and access the data using SQL (for “Structured Query Language”), a standard language for interacting with databases. A very popular free database engine used by many web sites for this purpose is MySQL (http://www.mysql.com/). Although some purists argue that MySQL isn’t a “true” relational database management system (because it lacks certain features, like the ability to link a sequence of transactions together as a logical unit, such that if any individual transaction fails the whole series of transactions fails), it is fine for most web purposes. For those requiring the features missing in MySQL, PostgreSQL (http://www.postgresql.org/) is a competing free database engine that has them, at the cost of a bit more complexity and, perhaps, a bit slower performance (depending on who does the measuring).

Having a relational database to hold your web site’s data both simplifies and complicates your life. It simplifies your life because the database engine solves many of the problems you would otherwise have to solve yourself. Various kinds of searches and updates to your data are easy to carry out using simple SQL queries. Multiple users trying to submit updates to the data at the same time are guaranteed not to mangle each others’ ...

Get Perl for Web Site Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.