University of Colorado at Boulder: Information Systems

Relational & NoSQL Databases, the Semantic Web, and Multimedia

University of Colorado at Boulder: Information Systems - Relational & NoSQL Databases, the Semantic Web, and Multimedia

First posting for Databases, Fall 2014

Here the slides giving the course overview: DB-Fall-2014.

Here are the slides on Relational DBs and the The relational algebra and calculus.

Please remember to use to email me.

Please start reading the book.  We will move right through: Chapters 1, 2, 3, 4.1 through 4.5 (skip the rest of chapter 4), 5, and 6.1 through 6.11.

And please come to class.  There is a strong correlation between people who come to class and people who are aware of what will be on the exams.



The second exam

The second exam will be open-everything, like the first exam.

I will try to focus on material covered since the 1st exam, but the material builds on itself and so it is hard to completely separate the material from exam 2 from the material for exam 1.

I will NOT include material on animation data on the second exam.



materials for today’s class

The machine I use to teach with just died a nasty hardware death.  There was a flash and a pop as I was booting it.  It actually made me duck.  So I am doing my best to recreate the list of resources I used this evening in class.

(The machine was old, don’t be sad.)

This is the redis site: redis.

Please look at the following on the redis site: pipelining, redis publish-subscribe, redis transactions.

Here is the redis wikipedia article: redis wik.

This is the couchdb site: couchdb.

The Apache wiki article on couchdb is very nice: wiki couchdb.

Please look at the couchdb overview page and the “why choose couch” page: why couch.

Also, please read the following in the textbooks:

7 dbs in 7 days: Chapters 6 and 8.

NoSQL Distilled material on CouchDB: pages 61 to 65, pages 94 and 95.

No SQL Distilled material on Redis: pages 81 and 82.

7 DBs in 7 Days material on CouchDB: Chapter 6.

7 DBs in 7 Days material on Redis: Chapter 8.

Also, the NoSQL Distilled book is organized conceptually, so the information on CouchDB and Redis is distributed throughout the book.


For the second exam:

Please note that we have now covered all of 7 DBs in 7 Days, NoSQL Distilled, and Getting Started with NoSQL.

Final project

As was discussed in class this past Monday, I would like the following from you:

1. A demo on the day of the final exam.

2. A BRIEF statement that addresses:

a) What kind of data is in each database (relational and noSQL) – and importantly, why that particular db was best for the data you placed in it.  Why would you not put your noSQL data in PostgreSQL or a different noSQL db?  Why is your relational data placed in PostgreSQL and not in some noSQL db?  Please think about not just the potential size of data sets (assuming that your application was used in a production environment), but also about the nature of the data itself, in particular, it’s structure.

c) Obviously, the two sorts of data that you used, relational and noSQL, are related to each other, since they are manipulated in a single app.  How did you manage their relationship?  In other words, where is the knowledge that represents their common or shared semantic meaning?  Is that information in one of the dbs?  Is it in part in both dbs?  Is it only in your code?  This last approach is a very poor design decision.

Issue c) does not refer to the meaning of the data in the individual dbs by themselves, or about the nature of  your overall app, but rather to the semantic relationship between the data in the two dbs.  For example, in a traditional relational db, we interrelate data by using PK/FK pairs across tables, and the db designer is strongly encouraged to put as much of the permanent meaning of the data in the tables, and not in the application code and SQL code that uses them.  But if we use two very different databases, we have to address this issue in some other way.  

Also, some people have been given permission to use two noSQL dbs and not a relational one.  You should adjust your answers accordingly.

This statement should only need to be a couple of double spaced pages long.