CMSI 486: Welcome to Week 08

This Week's Class Agenda

  1. Rehashing the Midterm for Fun and Profit …
  2. Introduction to NoSQL databases
  3. Mongo

So, we've seen where databases come from, observed and practiced with many of the traditional concepts of the relational database model, and talked at length about issues that are both specific to that model and generalizable to ALL databases and DBMS's. Now it's time to move on to the next level and begin to look at the new wave of database engines, known as NoSQL databases.

NoSQL started out as a sort of rebellion against the idea of relational databases with all their associated complexity and trappings and pitfalls. Starting way back in 1998, the original NoSQL was actually a DBMS that was still relational in nature but eschewed the use of the SQL language. Instead, it used a stream-based set of operators to perform functions on passed data. The stream was supplied by the UNIX pipe system so that true stream-based operation was supported. There were several reasons for avoiding the use of SQL at the time:

Here are some examples so you can see where this stuff comes from and how it basically works.
[Note: this table comes from Wikipedia, under their common license.]

SQLNoSQL
select col1 col2 from tablenamecolumn col1 col2 < filename
where column - expression row 'column == expression'
compute column = expression compute 'column = expression'
group by subtotal
having row
order by column sorttable column
unique uniq
count wc -l
outer join jointable -al
update delete, replace
nesting pipes

BTW, NoSQL itself is still a viable product, maintained by it's author at this location.

Common Types and Examples of NoSQL Databases

There are several different types of NoSQL databases, and there is some overlap between them, since they often include similar functionality, based on the way they treat their data items. Here is a brief list of some of the main types in which we will be interested, with explanations and representative examples.

Mongo

As we've seen, MongoDB is an example of a document-store database.

Coming Up Next ...