|CPSC 343||Database Theory and Practice||Fall 2015|
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, the relational algebra and relational calculus, 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.
|Course Web Page||
There is no textbook to purchase. Material will be placed on reserve in the library, handed out in class, and/or posted on the course webpage.
CPSC 225 is required.
CPSC 229 is recommended.
|Rationale & Aims||
This course, like 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:
|Course Content Overview||
The course material can be divided into five sections:
Databases and the Relational Model: The course starts with an introduction to databases and database management systems, focusing on relational databases and some of the underlying theory.
Database Design: 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, ER-to-relational mapping, and principles of database design.
SQL: SQL is the standard language for working with relational database management systems.
Database-Driven Web Applications: This section of the course will examine specific technologies for creating applications which make use of databases. The particular focus will be on building Web applications using HTML and PHP.
Database Management Systems: 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.