CS 386 Introduction to Databases

Credit Hours: 4
Course Coordinator: Len Shapiro
Course Description: Introduction to fundamental concepts of database management with the relational model. Schema design and refinement, query languages, transaction management, security, database application environments, physical data organization, overview of query processing, physical design tuning. Prerequisites: CS 163, 250, 251.
Prerequisites: Data structures and algorithms, mathematical logic, discrete structures, mathematical maturity expected of an advanced undergraduate student.
Goals: To learn how to design effective database schemas that accurately model real-world information semantics. To learn how to pose complex database queries in SQL as well as theoretical query languages. To understand what is meant by a transaction. To gain an introductory background in concurrency control and recovery. To learn about indexing in database systems. To learn about advanced database models, such as object-relational models and data warehouses.

Upon the successful completion of this course students will be able to:

  1. Write complex SQL and relational algebra queries
  2. Transform SQL queries to relational algebra and relational algebra queries to SQL
  3. Transform SQL queries into equivalent forms, e.g., to make them more efficient
  4. Explain how queries are processed and optimized
  5. Evaluate the utility of an index for a relational database table
  6. Evaluate existing database designs and design new databases effectively
  7. Use SQL queries embedded in a software application
  8. Describe and use transaction and recovery services
Textbooks: Database Management Systems, by Ramakrishnan & Gehrke
References: None.
Major Topics: Relational model of data, entity-relationship modeling, relational algebra and calculus, SQL, normalization theory, transaction management, indexing, database security, object-relational databases, data warehouses.
Laboratory Exercises: Implementation of a database application -- entering the schema, transforming and loading data, and posing queries. (4 weeks)

CAC Category Credits Core Advanced
Data Structures 0.8
Algorithms 1.2
Software Design 1.0
Computer Architecture
Programming Languages 1.0

Oral and Written Communications: None.
Social and Ethical Issues: Ethical considerations of ownership of imformation and protection of private information is discussed during the database security lectures. The class time devoted to social and ethical considerations is about 30 minutes. Students are graded on their understanding of database security, but not on their understanding of ethical issues
Theoretical Content: Relational algebra & calculus, and normalization theory are the primary theoretical components of the course, but also some theory of transaction concurrency control is covered. Theoretical topics are covered about 4 weeks out of 10 wee
Problem Analysis: Students must analyze the information content of applications using entity-relationship modeling during the course.
Solution Design: Students must design database schemas as a result of their ER modeling analysis.