|CPSC 343||Database Theory and Practice||Fall 2012|
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||
A First Course in Database Systems, 3rd edition
The book should be in stock at the bookstore. Both print and e-book versions are available.
Additional material will be handed out 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 four areas:
The Relational Model and SQL: The first part of the course will introduce relational databases, some of the underlying theory, and the database query language SQL.
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.
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.