NoSQL schema-optional or non-relational databases support Big Data by providing scalability, high availability, clustering, efficient storage and easy access to huge amounts of semi-structured data.
This introductory course gives you a hands-on overview of the two most popular NoSQL databases—MongoDB and Cassandra—as well as an overview of core concepts and other types of open-source NoSQL databases.
We will cover installation, database shell usage, programmatic access, data modeling, scaling/clustering, categories of NoSQL databases (column-based, document-based, key value-based, or graphic-based), the CAP theorem, and BASE semantics.
You will have the opportunity to gain hands-on experience via homework assignments and a course project that involves setting up, populating (with publicly available datasets), and using a NoSQL of your choice (subject to instructor approval).
At the conclusion of the course, you should be able to
- Describe the need for NoSQL databases and the types of problems NoSQL databases help solve
- Discuss the “foundation concepts” of Mongo DB and Cassandra including semi-structured datasets and wide rows
- Explain how Mongo DB and Cassandra databases support horizontal scaling to support Big Data sharding and clustering
- Demonstrate how Mongo DB and Cassandra support fault tolerance - replication, clustering
- Describe the relationship between cloud computing platforms and the databases we study
- Write code to work with Mongo DB and Cassandra database APIs
- Apply basic administration of Mongo DB and Cassandra
- Why use NoSQL databases?
- Types of NoSQL databases: Key value, document, column, graph
- MongoDB basics
- MongoDB data modeling, GeoData
- MongoDB sharding, replication, clustering
- Cassandra basics
- Cassandra data modeling, real-time data with wide rows
- Cassandra rings, replication
- Other NoSQL databases: Neo4J, DynamoDB
- Accessing NoSQL database APIs: Coding
- Deploying NoSQL databases in the cloud: Amazon AWS
- Using publically available datasets
- CAP theorem, BASE
Skills Needed: You will need experience using a programming language such as Python, Ruby, or Java and the ability to set up open-source software, databases, tools, and development environments on personal computers.
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts.
- Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section.
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar.
Finance Your Education
Here are ways to pay for your education.
Estimated Cost: TBD
Course Availability Notification
Please use this form to be notified when this course is open for enrollment.