CS425 - Database Organization - 2022 Fall

Course webpage for CS425 - 2022 Fall taught by Boris Glavic

Course Overview

The class takes place: Monday + Wednesday, 10:00am - 11:15am, PH 131

Databases management systems are a crucial part of most large-scale industry and open-source systems. This course introduces students to important concepts of database systems and design. We will learn how to design a database using the Entity-Relationship model, how to query and modify a database using the declarative SQL language, and study APIs for writing application programs that use a database system to persist data. Furthermore, the course provides an overview of important database systems techniques such as indexing, query optimization and execution, concurrency control, and recovery.

Undergraduate Only Section

Note that this is an undergraduate only section for CS425!

Instructor

Boris Glavic

TAs

Vedang Chandrakant Barhate

Syllabus

Prerequisites

  • Courses: One of CS 331, CS 401, or CS 403

Grading Policies

Weighting of Deliverable

  • homework assignments: 20% = 5% + 8% + 7%
  • midterm exam: 25%
  • final exam: 35%
  • project: 20%

Grading Scheme

Your final course grade is determined based on your total score which is calculated as the weighted sum of the points for each of the deliverables. The weights are as shown above. For each deliverable you will receive between 0 and 100 points. For some deliverables, I am giving additional bonus points. These are not considered for the grade cutoffs. For instance, the first programming assignment is weighted 10%. For sake of the example assume that you get 110 points in this assignment (full points + bonus points), then this assignment would contribute \(0.1 * 110 = 11\) points to your final score. Note that bonus points are excluded when calculating the 100% bound. For example, if a home work assignment makes up 5% of the total grade and has 50 regular points and 10 bonus points then it will contribute your points divided by 50 times 0.05 to the final grade.

  • A: > 80
  • B: > 60
  • C: > 50
  • D: > 40
  • E: < 40

Reading Material

The following text books will be helpful for following the course and studying the presented material. All four textbooks have their merits, but any one should be sufficient as reading material.

  • Silberschatz, Korth, and Sudarshan, Database System Concepts, , McGraw Hill, 2010

The slides for the course will be made available here.

Detailed Course Topics

  • The relational data model
  • Database modelling and design

    • The Entity-Relationship (ER) model
    • Database design and normalization
  • SQL

    • Data-definition language (DDL)
    • Data-manipulation language (DML)
  • Formal relational languages

    • Relational algebra
  • Database Architecture
  • Database System Concepts

    • Transactions processing and concurrency control
    • Recovery
    • Indexing
    • Query processing and optimization
    • Security and access control

Course Objectives

After attending the course students should be able to:

  • Understand the underlying ideas of database systems
  • Understand the relational data model
  • Be able to write and understand SQL queries and data definition statements
  • Understand relational algebra and its connection to SQL
  • Understand how to write programs that access a database server
  • Understand the ER model used in database design
  • Understand normalization of database schemata
  • Be able to create a database design from a requirement analysis for a specific domain
  • Know basic index structures and understand their importance
  • Have a basic understanding of relational database concepts such as concurrency control, recovery, query optimization, and access control
Last updated on 17 Aug 2022
Published on 17 Aug 2022