As you are no doubt aware, you interact with computer databases every day -- probably multiple times. The fields of manufacturing, commerce, scientific research, social networking, sports and entertainment, and many others rely heavily on the ability to store, retrieve, manipulate and analyze data, and to do so efficiently and effectively. The majority of Internet applications and mobile apps are data-driven, with information served from a database rather than static content. Cloud computing is dependent upon reliable distributed databases. The data analytics that we have come to rely upon utilize carefully curated data warehouses. Even our currency is gradually coming to rely on sophisticated database management. In this course, we will investigate the theory and practice behind database management systems. Our focus will be on information: how to gather it, how to analyze and understand it, how to store it, and how to get it back as quickly as possible using user interfaces and application programs. We will experiment with several different database paradigms, including standalone databases, client-server databases, distributed databases, and NoSQL databases, as well as several different database management systems. The techniques learned in the course will be put to use in a significant, scaffolded term project.
Major topics will include:
As well as other topics of current interest to the class.
Return to the Department of Computer Science Home Page