/crud

Lectures for a course about types of databases (relational, NoSQL, search engines, triplestores, NewSQL)

Primary LanguageJavaScript

CRUD: A Survey of Database Technology

Abstract

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.

Prerequisites

Required

Helpful

  • Basic understanding of relational databases and SQL.
  • Prior programming experience in Python.

Instructor

Joshua Gomez, Sr. Software Engineer, Getty Research Institute

joshuagomez@ucla.edu

Grading

  • 10% Quizzes
  • 20% In-class Exercises
  • 70% Homework

Texts

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.

Schedule

Week 1

Topics: Course Introduction
Relational Database Concepts
Entity-Relationship Modeling
Basic SQL
Tools: SQLite
Readings: Elmasri: chapters 3-4, 7, 9

Week 2

Topics: RDBMS Architecture
Normalization
Intermediate SQL
Tools: SQLite
Readings: Elmasri: chapters 2, 5, 15

Week 3

Topics: Transactions & ACID Properties
Triggers
SQL Functions
Tools: MySQL
Readings: Elmasri: chapters 21, 26.1

Week 4

Topics: Acess Structures
Optimization
Security
Tools: PostgreSQL
Readings: Elmasri: chapter 20, 24

Week 5

Topics: Replication
Partitions
Advanced SQL
GIS & Time series data (if time permits)
Tools: PostgreSQL
Readings: Elmasri: chapter 25, 26

Week 6

Topics: Intro to Information Retrieval
Web Search
Faceted Search
Tools: ElasticSearch
Readings: Elmasri: chapter 27

Week 7

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)

Week 8

Topics: Key Stores
Tools: Riak
Redis
Readings: Amazon’s Dynamo Paper (DiCandia et al., 2007)

Week 9

Topics: Document Stores & MapReduce
Tools: MongoDB
PostgreSQL revisited
Readings: TBD

Week 10

Topics: Graph Databases
Tools: Neo4j
ArrangoDB
Readings: TBD

Week 11 - (Bonus material if time permits)

Topics: Linked Data
Triplestores
SPARQL
Tools: GraphDB
Readings: TBD

Week 12 - (Bonus material if time permits)

Topics: NewSQL Databases
Tools: CockroachDB
Readings: TBD