CPSC 343 | Database Theory and Practice | Fall 2022 |
On this page:
Course Description and Objectives |
Catalogue description: Computer databases are used to store, organize, and retrieve large collections of information. This course introduces the theory and practice of relational databases and relational database management systems (RDBMS). Topics include data modeling and database design, query languages (SQL), and elements of RDBMS implementation such as file structure and data storage, indexing, and query evaluation. Additional topics may include Web-based access to databases, transaction management, reliability, security, and object-oriented databases. This course, like many of the other 300- and 400-level computer science courses, explores a particular subdiscipline of computer science. Many aspects of modern society and commerce involve the management of large quantities of data, so databases are a crucial component of computer systems. Furthermore, the study of database systems brings together many areas of computer science (theory, data structures, algorithms, parallel computing, user interfaces, and more); it is particularly nice as an application of theoretical computer science topics. By the end of the course, the successful student should be able to:
The course material can be divided into five sections: Introduction to Databases: The course starts with an introduction to databases, database management systems, and information management concepts. Objectives:
Data Modeling and Database Design: A database is a structured collection of information; data modeling deals with capturing and expressing that structure. A well-designed database is easier to query, maintain, and extend. This section of the course will address the process of going from specifications to a collection of tables and columns. Specific topics include the entity-relationship (ER) model for data modeling, the relational model, ER-to-relational mapping, and principles of database design. Objectives:
Query Languages: SQL is the standard language for working with relational database management systems, and this part of the course will introduce SQL for data definition, queries, and data manipulation. Objectives:
Database-Driven Applications: A database doesn't just sit by itself - application programs access the information stored in the database. This section of the course will introduce technologies for constructing an application that interacts with a database (HTML/PHP/mysqli or Java/JDBC) as well as the privacy, security, and integrity issues that become relevant when the outside world gets involved. Objectives:
Database Management Systems and Database Tuning: The last portion of the course will look at the software systems that make databases happen - the database management systems themselves. The goal is to make the student an informed user of database management systems by understanding some of the factors that affect performance and what control the database administrator/user has over these factors. Specific topics include file structure and data storage, indexing, and query evaluation. Objectives:
|
---|---|
Course Format |
This course will utilize a flipped format. What that means is that new material will be introduced through readings and/or videos plus a short self-assessment "quiz", to be reviewed/completed before class. Class meetings will emphasize application of the material, as a class or in small groups, with short lectures to go over questions or resolve tricky points as needed. Additional outside-of-class work includes practice problems (i.e. homework) and a semester-long project. Expect practice problems to be posted for each topic (approximately twice per week) and due two class periods later. Dates for the project phases are on the schedule page. There will also be five in-class exams and a cumulative final exam. Dates for the exams are on the schedule page. |
Prerequisites |
CPSC 225 is required. CPSC 229 is recommended. |
Required Course Materials |
There is no textbook to purchase - material will be posted on the course webpage or Canvas. In addition, the 5th edition of Fundamentals of Database Systems by Elmasri and Navathe has been placed on reserve in the library for additional reference; relevant sections will be noted as appropriate. All of the software needed for this course will be available on the Linux machines in Lansing 310 and in Rosenberg 009 for in-person and remote access. It is freely available (nothing to purchase) and can also be installed on your own computer if desired. (Instructions will be provided.) If you have a laptop that you can bring to class, you are encouraged to do so (with the necessary software installed). |