Undergraduate Level Database Course


COP4710: Theory and Structure of Databases


Undergraduate-level introduction to database systems and applications using databases. Introduces the ER model and its mapping to the relational data model. Studies the logical language in the relational data model and its relationship to the commercial relational query language: SQL. Examines in depth how to design a database conforming to different normal forms. Understand how various programs are able to connect to the database through ODBC. Briefly covers indexing and hashing. Finally, we will cover database integrity and security. An important related topic is the social and ethical issues with data management, examples include but not limit to data privacy, laws and technologies that protect data, encryption and interception of information. Furthermore, students will participate in a semester-long project and build a web-based database system (e.g., an online bookstore) starting with a customer specification. In summary, this course is about the principles of designing and developing applications using the relational database system.



Graduate Level Database Course


COP5725: Database Systems


Graduate-level introduction to database systems and implementation. Reviews the relational data model and commercial relational query languages: SQL. Examines in depth file organization, database storage, indexing and hashing, query evaluation and optimization, transaction processing, concurrency control and recovery, database integrity and security. Furthermore, students will participate in a semester-long project and build a mini-database system by implementing several core modules in a database system. In summary, this course is about the principles of designing a database system. Please note that this is NOT a course on database applications, i.e., you will not learn from this course how to build an application that connects to and queries the database. However, you will gain hands-on experience on building a database management system itself.



Graduate Level Data Management Course


CIS930: Advanced Topics in Data Management


This course introduces the latest research results from the data management and database research. We will focus on I/O efficient data structures and algorithms first and expand our discussion to indexing for multidimensional data, such as the popular R-tree and kd-Tree. Next, streaming data will be discussed with its model and related algorithms. Then probabilistic data management will be introduced. We will focus on the ranking and aggregate query processing over uncertain data. Finally, we will touch the issue of security and privacy in data management as well.

An undergraduate computer science background is required for this class. General knowledge on statistics and probability theory is necessary. Student expects to learn an overview of various topics in data management and database research, especially on the issue of scalability, efficiency and data models. A course project (implementing the MapReduce framework), done individually, will be implemented as well as a term paper of the student's interest.

We will introduce some related research tools that are  required for this class as well, examples include how to use LaTex, xFig, and other plotting tools to produce the EPS figures.