From the course: Database Foundations: Intro to Databases

Purpose of the playground

From the course: Database Foundations: Intro to Databases

Start my 1-month free trial

Purpose of the playground

- [Illustrator] One of the biggest hurdles to learning about databases is simply having the proper software installed and configured so that you can experiment and poke around. So in this chapter, I'm going to walk you through the process of creating your very own database playground. This playground will solve two different problems. First, database servers typically expect to be run on dedicated hardware. This is usually a standalone computer, or in a data center, or in a virtual machine in the cloud. But it isn't realistic of me to expect that you just have a spare computer lying around. And paying for cloud computer and storage resources can get expensive. So we'll need a way to install the software on your regular desktop or laptop computer. This is fine to do, but that introduces problem number two. The second problem, is that database servers expect to have full control over their hardware. When you install the RDBMS on your own personal computer, the installation process reaches deep into your operating system. And makes changes to the way that your computer functions. The installation can open up new communication ports. Add User Accounts, and adjust performance settings that may conflict with the other software that you continue to need every day. Worse, these changes are sometimes hard to roll back should you decide to uninstall the database server at a later point. And if you want to experiment with two different RDBMS platforms, installing both on the same machine can introduce a situation where they're competing for the same limited pool of your computer's resources. The solution to both of these problems is to install the RDBMS software inside of an isolated container. Containers create a place where the RDBMS required components can do whatever they need to do without giving them the ability to make changes to your main system. There are several benefits to running your database server inside of a container. First, containers can be quickly created, copied and discarded. They're designed to be ephemeral. This means that containers create a safe place to experiment with new tools and techniques, without the fear of messing something up. If you happen to break something or start getting strange errors, there's no consequences to simply throwing the container away and starting again with a fresh one. For many people, this can give a new sense of freedom to dive right in and explore systems that they don't fully understand yet. The other benefit of containers. Is that they provide very consistent and predictable working environments across all operating systems. If you run an RDBMS container on any Windows computer, you'll get exactly the same experience if you move that container to a Mac or Linux computer. With everything running inside of a container, you can bring whatever computer that you have available to this course and be able to follow along. I'm being very deliberate in calling this a database playground. Because I really do think that having the freedom to explore and play with these technologies is a critical part in the learning process. Containers virtually erase much of the complexity in setting things up and getting the pieces to work together. However, I do not want to give the impression that this system that we're about to build together is somehow a toy or an approximation of a real world environment. Yes, containers do encourage serious play. But these benefits that make containers attractive for beginners are exactly the same reasons that many database professionals also use the same containerized workflows in their demanding production environments.

Contents