Revised: February 2014 (Mark Holliday)
This course covers the design and implementation of database applications including
entity-relationship models, relational schemas, relational algebra, structured query
language, object-relational mappers, use within a web environment including web-development
frameworks, and NoSQL databases (such as MongoDB and HBase). Topics on Hadoop-based
Map-Reduce data analysis and database systems implementations are also covered as
Prerequisite & Notes
Abraham Silberschatz, Henry F. Korth, and S. Sudarshan, Database System Concepts,
Sixth Edition, McGraw-Hill, 2011.
Grading procedures and factors influencing course grade are left to the discretion
of individual instructors, subject to general university policy.
Attendance policy is left to the discretion of individual instructors, subject to
general university policy.
- Overview of Relational Database Systems and the Relational Model.
- Object-Relational Mappers in the context of Web MVC Frameworks such as Python/Django
- Relational Algebra including tree representations of relational algebra expressions.
Relational operators: selection, projection, various joins, cartesian product, set
operators (union, intersection, set difference).
- Structured Query Language (SQL): Data Definition Language statements. Data Manipulation
Language (DML) statements: insert, delete, update, and select. Nested queries, correlated
nested queries, aggregate functions, group by and having clauses.
- Database adapters such as psycopg2 (for python) and JDBC.
- Entity-Relationship Model: E-R diagrams and translation into relational schema.
- NoSQL databases such as MongoDB and HBase.
- Map-Reduce data analysis using Hadoop-based languages such as Pig and Hive. (as time
- Topics in database system implementation: transaction management, evaluation of relational
algebra trees, implementation of relational operators. (as time permits)