|CPSC 343||Database Theory and Practice||Fall 2008|
Information is the currency of the Information Age, but having vast quantities of information is useless if you cannot quickly locate the relevant data. Computer databases are used to store, organize, and retrieve information quickly and efficiently. Databases are extremely common, particularly in conjunction with Web sites - if you've ever used amazon.com, eBay, or HWS' library catalog (to name just a few sites), you've interacted with a database.
The goal of this course is to provide an introduction to the theory and practice of relational databases. Four major aspects of relational databases will be addressed: data modeling and database design, SQL, building a Web site which interacts with a database, and understanding how database systems store and process information reliably, securely, and efficiently. Both practical skills and the necessary theoretical underpinnings will be emphasized.
|Course Web Page||
You are expected to regularly consult the course web page for announcements, assignments, and most handouts.
Fundamentals of Database Systems, 5th edition
A copy of the textbook is available on reserve in the library.
Additional material will be handed out or posted on the course webpage.
CPSC 225 and CPSC 229
|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 will cover four major aspects of relational databases: data modeling and database design, SQL, building a Web site which interacts with a database, and understanding how database management systems store and process information reliably, securely, and efficiently. The objectives listed below paint - in broad strokes - what the successful student should be able to do at the end of each section.
Data Modeling and Database Design: The focus of this section of the course will be on the skills needed to effectively design a database using a relational database system such as MySQL. Specific topics include the entity-relationship (ER) model for data modeling, the relational database model, ER-to-relational mapping, and principles of database design.
SQL: This section of the course will focus on the SQL language, a standard for relational databases. Specific topics include data definition, queries, and data-modification commands.
Database 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. If time permits, other topics such as transaction management, reliability, and security will be introduced.