|CPSC 343||Database Theory and Practice||Fall 2017|
On this page:
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.
By the end of the course, the successful student should be able to:
|Course Content and Objectives||
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.
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.
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 based 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.
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.
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 and security issues that become relevant when the outside world gets involved.
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.
CPSC 225 is required.
CPSC 229 is recommended.
There is no textbook to purchase. Material will be handed out in class and/or posted on the course webpage. In addition, the 5th edition of Fundamentals of Database Systems by Elmasri and Navathe has been placed on reserve in the library for reference; relevant sections will be noted as appropriate.
You will be interacting with servers set up on a machine running within the department. All of the client software needed for this course is available on the Linux machines in Lansing 310 and Rosenberg 009. If you would like to use your own computer, check back for information on how to set it up.