Data Management

Spring 2016
Class: Monday 8:30 –10:15 and Wednesday 10:30 –12:15, SI 006
Instructor: Robert Soulé
TAs: Tu Dang and Mohammad Azadmanesh
Office hours: by appointment
Final exam: June 14, 2016 at 13:30

Overview

Databases are essential to applications in a wide variety of domains, including finance, health care, commerce, and telecomunications. In fact, most applications that people use on a day-to-day bases are backed by databases. This course provides a practical introduction to database technology. By the end of this course, students will understand the fundamental concepts about database management systems, become familiar with commercial tools for the design and development of database applications, and be exposed to recent trends in database-like storage systems. Topics covered include modeling enterprise data with ER diagrams, the relational model, SQL, logical design with normalization, physical design, query execution, transaction processing, recovery, concurrency, online analytical processing. The latter part of the course will survery alternatives to traditional relational database systems, exploring tradeoffs and use-cases.

Details

Textbooks

We rely on two textbooks:

Moodle

Please send class-related questions to the Discussions Forum on Moodle (unless, of course, they concern private rather than technical or organizational issues).

Grading Policy

35% for homework; 25% for the mid-term; 40% for the final exam.

Academic Integrity

I encourage you to collaborate on homework assignments. But you must write up and turn in your own answers. Also, you must clearly indicate who you collaborated with. If I detect any incidents of cheating, I will report them immediately to the department, and the assignment will be given a grade of 0.

Syllabus

Please be sure to regularly check this page for updates.

Feb 22
Introduction, ER Model
Feb 24
Relational Model
Feb 29
Relational Algebra
Mar 2
SQL Data Manipulation Language
Mar 7
SQL Data Definition and Control Language
Mar 9
Logical Design with Normalization
Mar 14
Logical Design with Normalization II
Mar 16
Semi-Unstructured Data and XML
Mar 21
XPath, XQuery, and XSLT
Mar 23
Midterm
Mar 28
Easter Holidays
Mar 30
Easter Holidays
Apr 4
JDBC, ORM
Apr 6
Data Storage
Apr 11
Buffer Management
Apr 13
Tree-Structured Indexing
Apr 18
Query Evaluation and Optimization
Apr 20
Soulé travelling, no class
Apr 25
Transaction Processing (Recovery)
Apr 27
Transaction Processing (Concurrency)
May 2
NoSQL Concepts
May 4
Michael Hunger (Neo4j) Guest Speaker
May 9
Alternatives to RDBMS
May 11
Russell Brown (Riak) Guest Speaker
May 16
No class: Pentecoste
May 18
Henrik Ingo (MongoDB) Guest Speaker
May 23
Soulé travelling, no class
May 25
Soulé travelling, no class
May 30
Jun 1
Jan Lehnardt (CouchDB) Guest Speaker

Tools and Resources

You may also find the following resources useful:

Acknowledgements

Much of the material in this course is based on a similar course taught at NYU by Zvi Kedem. The course website is based on the design by Robert Grimm.