The relational database has been the dominant tool for data storage over the past thirty years. But with the growth of the web has come new requirements for faster searching and storing of large amounts of data and new tools have risen to meet those demands. This course will review the basics of relational databases as a foundation and as a basis for comparison to other tools. From there, we will look at alternative NoSQL databases (columnar, keystore, document, and graph), as well as search indexes, triplestores, and NewSQL databases. In-depth coverage of any topic should not be expected. The objective of the course is to give students an understanding of the wide variety of database solutions and the tradeoffs of using one over another.
- A laptop with Docker and Git installed:
- Curiosity and fearlessness about trying new things.
- Basic understanding of relational databases and SQL.
- Prior programming experience in Python.
Joshua Gomez, Sr. Software Engineer, Getty Research Institute
- 10% Quizzes
- 20% In-class Exercises
- 70% Homework
All texts are optional!
- Elmasri & Navathe, Fundamentals of Database Systems, 6th ed., 2010.
- Recommended if you have not taken a prior course in databases.
- Use the older (and much cheaper!) 6th edition
- Harrison, Next Generation Databases, 2015.
- Electronic version available via UCLA Library: http://ucla.worldcat.org/oclc/933784067
Topics: | Course Introduction Relational Database Concepts Entity-Relationship Modeling Basic SQL |
Tools: | SQLite |
Readings: | Elmasri: chapters 3-4, 7, 9 |
Topics: | RDBMS Architecture Normalization Intermediate SQL |
Tools: | SQLite |
Readings: | Elmasri: chapters 2, 5, 15 |
Topics: | Transactions & ACID Properties Triggers SQL Functions |
Tools: | MySQL |
Readings: | Elmasri: chapters 21, 26.1 |
Topics: | Acess Structures Optimization Security |
Tools: | PostgreSQL |
Readings: | Elmasri: chapter 20, 24 |
Topics: | Replication Partitions Advanced SQL GIS & Time series data (if time permits) |
Tools: | PostgreSQL |
Readings: | Elmasri: chapter 25, 26 |
Topics: | Intro to Information Retrieval Web Search Faceted Search |
Tools: | ElasticSearch |
Readings: | Elmasri: chapter 27 |
Topics: | Intro to NoSQL Databases CAP Theorem Columnar Databases |
Tools: | HBase Cassandra |
Readings: | Google’s Bigtable Paper (Chang et al., 2006) Facebook’s Cassandra Paper (Lakshman et al., 2009) |
Topics: | Key Stores |
Tools: | Riak Redis |
Readings: | Amazon’s Dynamo Paper (DiCandia et al., 2007) |
Topics: | Document Stores & MapReduce |
Tools: | MongoDB PostgreSQL revisited |
Readings: | TBD |
Topics: | Graph Databases |
Tools: | Neo4j ArrangoDB |
Readings: | TBD |
Topics: | Linked Data Triplestores SPARQL |
Tools: | GraphDB |
Readings: | TBD |
Topics: | NewSQL Databases |
Tools: | CockroachDB |
Readings: | TBD |