Introduction to Databases (COMPSCI 310)

Fall 2023-2024 / Session 2 (7 weeks, 35 hours)

Course Period: October 23 - December 7, 2023

  • Lectures: Monday / Tuesday / Wednesday / Thursday @ 08:30-09:45 (Classroom: CCT E1012 + Zoom)
Instructor: Mustafa MISIR (Office: WDR 2106), mustafa.misir [at] dukekunshan.edu.cn


In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spans formal techniques and practical considerations, including data modeling, efficient data representation and storage, query languages, security and privacy of sensitive data, and distributed computing issues, including supporting concurrent access and fault tolerance.

This course focuses on data modeling, database design theory, data definition and manipulation languages, storage and indexing techniques, query processing and optimization, concurrency control and recovery, database programming interfaces. Structured Query Language (SQL) will be additionally introduced to build and maintain databases for real applications.

By the end of this course, you will be able to:
  1. analyze and evaluate an existing database design
  2. design and build databases from scratch
  3. deliver data-driven software designs
  4. manipulate any given relational database
  5. utilize the basic theoretical and algorithmic concepts behind databases in real-world applications
+++ Follow Sakai for announcements and discussions


The chart, on the right, shows how COMPSCI 310 fits to the DKU curriculum, where the abbreviations indicate the course types, i.e. D: Divisional, DF: Divisional Foundation, ID: Interdisciplinary and E: Elective. Refer to the DKU Undergraduate Bulletin for more details.

Pre-requisite(s)

  • COMPSCI 201: Introduction to Programming and Data Structures

Anti-requisite(s)

  • COMPSCI 301: Algorithms and Databases



Reference Books

Database Systems, Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Edition), 2019, McGraw-Hill (Free Access: ProQuest - Duke U.) [ Lecture Slides ] [ SQLite ]

Supplementary Books: SQL, XML & JSON:

Lecture Notes / Slides

  • Week 1   [23/10 - 26/10]   (Keywords: History, Terminology and Basics; Data; Databases; ; Database Systems; Database Management Systems)
    • About COMPSCI 310
    • Databases: Basics
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 1 - Introduction
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 1 - Database Systems
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 2 - Data Models
    • Relational Model: Relational Databases, Database Schema, Keys, Relational Algebra
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 2 - Introduction to the Relational Model
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 3 - Relational Database Model

  • Week 2   [30/10 - 02/11] SQL Basics   (Keywords: Structured Query Language (SQL))
    • Introduction to Structured Query Language (SQL)
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 3.1 - Overview of SQL
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 7 - Introduction to SQL
    • Data Definition
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 3.2 - SQL Data Definition
    • Basic Structure and Operations
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 3.3 - Basic Structure of SQL Queries
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 3.2 - SQL Data Definition
    • Homework 1: TBA

  • Week 3   [06/11 - 09/11] Intermediate SQL  (Keywords: Join; Views; Integrity Constraints; Data Types; Schemas)
    • JOIN Expressions
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 4.1 - Join Expressions
      • External Tutorial: W3 Schools - SQL Joins
    • Views
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 4.2 - Views
      • External Tutorial: W3 Schools - SQL Views
    • Integrity Constraints
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 4.4 - Integrity Constraints
    • Data Types and Schemas
    • Homework 2: TBA

  • Week 4   [13/11 - 16/11] Advanced SQL  (Keywords: SQL Programming Interfaces; Functions; Procedures; Triggers)
    • Database Programming Interfaces
    • Functions and Procedures
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 5.2 - Functions and Procedures
    • Triggers
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 5.3 - Triggers
    • Homework 3: TBA
    • MIDTERM (Date: TBA)

  • Week 5   [20/11 - 23/11]   (Keywords: Relational Database Design; XML; JSON)
    • Relational Database Design
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 7 - Relational Database Design
    • Complex Data Types
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 8.1 - Semi-structured Data
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 15.3 - Extensible Markup Language (XML)
      • Book Chapter (Optional): Fundamentals of Database Systems by Ramez Elmasri, Shamkant B. Navathe (7th Ed., 2015), Chapter 13 - XML: Extensible Markup Language
      • External Tutorial (Optional): W3 Schools - XML Tutorial
      • External Tutorial: (Optional): W3 Schools - JSON Tutorial
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 8.2 - Object Orientation
      • Book Chapter (Optional): Fundamentals of Database Systems by Ramez Elmasri, Shamkant B. Navathe (7th Ed., 2015), Chapter 12 - Object and Object-Relational Databases
    • Homework 4: TBA

  • Week 6   [27/11 - 30/11]   (Keywords: Data Storage Structures; Indexing)
    • Storage Structures
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 13 - Data Storage Structures
    • Indexing
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 14 - Indexing
    • Homework 5: TBA

  • Week 7   [04/12 - 07/12]   (Keywords: Query Optimization; Concurrency Control; ; Recovery System)
    • Query Optimization
    • Concurrency Control
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 18 - Concurrency Control
      • Book Chapter (Optional): Database Systems - Design, Implementation, & Management by Carlos Coronel, Steven Morris (13th Ed., 2018), Chapter 10 - Transaction Management and Concurrency Control
    • Recovery System
      • Book Chapter: Database System Concepts by Avi Silberschatz, Henry F. Korth, S. Sudarshan (7th Ed., 2019), Chapter 19 - Recovery System
    • FINAL (Date: TBA)


Grading

  • Homework: 20%
    • Mathematical, Conceptual, or Programming related
    • Submit on Sakai; 6 in total, the lowest score is dropped
  • Weekly Journal: 10%
    • Each week, write a page or so about what you have learned
    • Submit on Sakai; 2 points off for each missing journal, capped at 10
  • Midterm: 20%
  • Final: 30%
  • Project: 20%
    • Report Rubric (TBA)
    • Presentation Rubric (TBA)


Reference Courses



Other Books

Quick / Easy Reads: Python Programming: Python Programming for Data Science / Analytics: Data Visualization: Beyond the Course Scope - Big Data: Miscellaneous:
  • Metadata, Jeffrey Pomerantz (1st Edition), 2015, MIT Press


Other Materials / Resources