Homework, Projects & Handouts
Homework
Homeworks will be submitted online via Blackboard.
Projects
The goal for the project is to create a simple database application that supports query operation over a relation. The project consists in three parts. In each part you are asked to implement the backend of the application in a different way (filesystem, in-memory data structures and a embedded database).
The goal of this project is to implement a simplified version of a Buffer Manager layer, without support of concurrency control or recovery. This project is based on Minibase, a small relational DBMS, structured in several layers.
[handout] [files] [PSO Slides]
The goal of this project is to implement Relational Algebra Operators using the Iterator interface inside a working database system. This project is based on Minibase, a small relational DBMS, structured in several layers.
[handout] [files] [PSO Slides]
The goal of this project is to implement a simplified version of the 2PL protocol used to handle concurrent operations (e.g., transactions). The implementation should prevent deadlocks and handling them properly. The project will give you some practical experience about Chapter 20 (Intro to Transaction Processing Concepts and Theory), 21 (Concurrency Control Techniques) and 22 (Database Recovery Techniques) from the Textbook.
The goal of this project is getting some experience in Big Data Technologies. For the project, you will use Hadoop Distributed Filesystem and Spark to perform some data processing tasks. We encourage you to start as soon as possible with this project, especially since you need to become familiar with the Purdue Scholar Cluster. Related material will be covered during the PSO sessions.
Other Handouts
Implementation
Secure data warehouse & Privacy Preserving Data Dissemination
Concurrency Control Handouts
Cloud Computing
Reading Material
NoSQL and Big Data
Relational Algebra, Normalization and SQL
Notes from CS641 Multimedia Database Systems
Other