Join Joseph LeBlanc for an in-depth discussion in this video What is NoSQL?, part of Learning NoSQL Databases.
NoSQL has become a bit of a buzzword in recent years. Some claim that using NoSQL databases can solve all of your website scalability issues. But is this really true? And what is a NoSQL database anyway? A NoSQL database is simply a database that does not use SQL. SQL was designed to be a query language for relational databases, and relational databases are usually table- based, much like what you see in a spreadsheet. In a relational database, records are stored in rows and then the columns represent fields in each row. Then SQL allows you to query within and between tables in that relational database.
On the other hand, NoSQL databases are more flexible. Many NoSQL databases allow you to define fields as you create a record. Nested values are common in NoSQL databases. You can have hashes and arrays and objects, and then nest more objects and arrays and hashes within those. And then that way you can have nested values in your NoSQL database records. Also fields are not standardized between records in NoSQL databases.
You can have a different structure for every record in your NoSQL database. While NoSQL is being promoted as a recent phenomenon, NoSQL is not new. The Apollo space program used a NoSQL database to catalog the inventory for the parts of the space shuttle. Many embedded devices also use NoSQL databases, and many of the early mainframe computers use NoSQL databases as well. Just like relational databases, NoSQL databases have trade-offs and limitations.
NoSQL databases will not solve your website scalability issues. You have to weigh the benefits and drawbacks of each database and see if they fit your application needs. On the other hand, NoSQL databases offer flexibility that's unavailable through relational databases. The main characteristic separating NoSQL databases from relational SQL databases is that they do not use query languages derived from SQL. Additionally, many NoSQL databases are flexible in ways that relational databases are not.
In the next few videos, we'll take a look at the different types of NoSQL databases and what they offer.
- What is NoSQL?
- Installing CouchDB on Mac, Windows, and Linux
- Storing data
- Nesting document data
- Specifying search criteria
- Reducing data
- Attaching and retrieving images
- Deploying applications
- Securing CouchDB
- Understanding the CAP theorem