CSCI 366

Database Systems

Coordinator: jingnan xie

Credits: 4.0

Description

Introduction to building database-driven applications. Topics include data modeling, building databases, database queries, basic data management, Model View Controller design paradigm, basic database-driven application development, and non-relational database systems.

Prerequisites

C- or higher in CSCI 162; C- or higher in CSCI 140 or MATH 120

Course Outcomes

At the end of this course, a successful student will be able to

  1. Compose queries to extract data from a relational database
  2. Design a data model using techniques such as entity/relationship modeling and normalization
  3. Construct a database according to a data model
  4. Design and implement abstractions of database operations in a software architecture
  5. Demonstrate an in-depth knowledge of the Model View Controller design paradigm
  6. Compare the benefits and drawbacks to adopting a relational or non-relational database
  7. Implement a basic database-driven application
  8. Compose queries to extract data from a non-relational database

Major Topics Covered

  1. Design Patterns
    1. Model View Controller
    2. Three-tier Architecture
    3. Logical independence/physical independence
  2. Relational Databases and SQL
    1. Single Entity
    2. One-to-Many Relationships
    3. Many-to-Many Relationship
    4. One-to-One and Recursive Relationships
  3. Data Modeling
    1. Entity/Relationship Modeling
    2. Normalization
    3. Relational Model and Relational Algebra
  4. Basics of Database Management
    1. Indexing
    2. Data Integrity
  5. Database Application Programming
    1. Client-server model
    2. Communication layer
    3. Presentation layer
    4. Forms

Sample Laboratory Projects

  1. Write basic SQL queries
  2. Create SQL queries for tables with one-to-many relationships
  3. Create SQL queries for tables with many-to-many relationships
  4. Write SQL queries for tables with one-to-one and recursive relationships
  5. Create data models given scenarios
  6. Write basic non-relational queries
  7. Write a simple database-driven application