Three hours of lecture per week. This course is concerned with the use of Database Management Systems (DBMS) to solve a wide range of information storage, management and retrieval problems, in organizations ranging from large corporations to personal applications, such as research data management. The course combines the practical aspects of DBMS use with more theoretical discussions of database design methodologies and the "internals" of database systems.
A significant part of the course will have students designing their own database and implementing it on different DBMS' running on different computer systems. We will use primarily MariaDB/MySQL (PostgreSQL and SQLite will also be available).
In the theoretical portion of the course we will examine the major types, or data models, of DBMS (hierarchical, network, relational, and object-oriented). We will discuss the principles and problems of database design, operation, and maintenance for each data model.
In addition we will examine and discuss new technologies for dealing with "Big Data" using Database-like systems (including "NoSQL" and "NewSQL" systems as well as supporting technologies such as Hadoop and Spark.)