I have used relational databases for years. I’ve used them to store mailing lists, email account data for postfix, blog and forum data, and more. They are convenient and powerful time savers. Most of what I have learned has been indirectly learned while studying something else; documentation for a computer programming language like PHP or Python, a book on website design for commerce, or documentation and code for an open source project like WordPress or Drupal. As a result, my knowledge is adequate for simple tasks and queries, but I’m nowhere near ready to be a database admin. What I know is incomplete, adequate for my actual needs, but with gaping holes in my knowledge.
Until this week, I was comfortable with this fact.
Since I read and enjoyed the other manga guides in this series that I have read, I picked up a copy of The Manga Guide to Databases. I wanted to see whether the book made the subject interesting and whether it taught the subject well.
The short answer is that I found the systematic and foundational introduction to database design clear, interesting, and enjoyable–so much so that I have ordered a few more books on database theory and design and SQL for further study (stay tuned, I may review them later). Contrast that with the indirect introductions I have previously encountered that made me want to ignore the topic, except for the aspects vital to my task(s) at hand.
The Manga Guide to Databases uses a somewhat silly, but pleasant story with well drawn artwork to ease the reader into a complicated subject that requires paying a bit of attention to for comprehension. It begins with the assumption that the reader knows nothing about the topic, so it would be perfect as a base level introductory text, especially for high school aged readers (or those of us who are a bit older, but who still enjoy a bit of whimsy).
We start with the question “What is a database?” and a great description of how and why they are useful. We move into a basic definition of relational databases with a very brief mention of other types of databases that exist. The fun continues with a chance to design a database around the model of entities and relationships.
Once the foundation is laid with a conceptual understanding of databases and their design, structured query language (SQL) is introduced. I was thrilled to discover this wasn’t product specific language, but rather standard ANSI, at least as far as I can tell (okay, I know a little more than I let on earlier, but I still consider myself a database/SQL novice). That is great, because it means that whatever is learned here should apply anywhere, whether using MySQL, PostgreSQL, Oracle, Access, Microsoft SQL Server, or whatever, so long as the product conforms to the standard. This certainly isn’t a complete SQL introductory text, but it is enough to get a person started understanding the basic concepts and how to operate a database.
Ultimately, the book was a success. I wouldn’t kid anyone into thinking that reading and understanding this book would make a person capable of real database administration, but it does give a clear and solid foundation for further study, and in my case has whet my appetite for going back to fill in some personal knowledge gaps that I have been content to let exist for a very long time.