CIS4301 Information and Database Systems 1 (TA)

First part of a two-course sequence on the essential concepts, principles, and techniques of modern database systems, covering the modeling and querying of data with conceptual data models and the development of a database application.

Instructor: Dr. Pete Dobbins

Term: Spring

Location: CSE A101

Time: Mondays, Wednesdays, and Fridays, 9:35-10:25 AM

Course Overview

This course introduces the principles of relational databases. It covers:

  • Entity-relationship modeling. Entities, attributes, and relationships; multiplicity (many-to-many, many-to-one, one-to-one), roles, is-a hierarchies, and weak entities. Design principles of faithfulness, avoiding redundancy, and simplicity. Keys, referential integrity, and degree constraints, and how to convert an ER diagram into relations.
  • Design theory. Functional dependencies, keys and superkeys, Armstrong’s inference rules, closures, and minimal bases. Redundancy, update, and deletion anomalies. Decomposition into Boyce-Codd normal form and third normal form, with the chase test for lossless joins and dependency preservation.
  • Relational algebra. Set operations, selection, projection, cross product, natural and theta joins, and composing them into queries. Extended relational algebra on bags: duplicate elimination, sorting, aggregation, grouping, and outer joins.
  • SQL. Selection and projection, data types and NULL semantics, joins, set operations, scalar and correlated subqueries, subqueries in FROM clauses, aggregation with GROUP BY and HAVING, table creation and schema modification, insertion and deletion, and views.
  • Beyond querying. Transactions, constraints and foreign keys, triggers, cursors, and stored procedures.

Homework

Programming work used MariaDB, with Java and JDBC for application code. Homework combined written problems with a semester-long project distributed in parts, and the lowest homework score was dropped.

Prerequisites

  • COP3503 or COP3504
  • COT3100 Applications of Discrete Structures

Textbook

  • A First Course in Database Systems, 3rd edition, Ullman and Widom, or the comprehensive version, Database Systems: The Complete Book, 2nd edition, Garcia-Molina, Ullman, and Widom

Grading

  • Exams (3): 60%, 20% each
  • Homework: 40%

My Role

I was one of four Undergraduate Teaching Assistants (UF uses the term Peer Mentor). I held office hours, wrote solutions and grading rubrics for the homework and exams, graded SQL and JDBC submissions, and proctored exams. The semester moved online midway through because of the pandemic.

Schedule

Week Date Topic Materials
1 Jan 6 Introduction, Installation

Chapters 1.1-1.4.

2 Jan 13 ER Diagrams, Relational Model

Chapters 4.1-4.6.

3 Jan 20 MariaDB, SQL, and Java I

Chapters 2.1-2.3, 6.1.

4 Jan 27 Relational Algebra I and II

Chapters 2.4, 5.1-5.2.

5 Feb 3 Functional Dependencies

Chapters 3.1-3.2.

6 Feb 10 Exam I
7 Feb 17 Normal Forms

Chapters 3.3-3.5.

8 Feb 24 MariaDB and SQL II

Chapters 6.1-6.3.

9 Mar 9 MariaDB and SQL III

Chapters 6.4-6.5.

10 Mar 16 Transactions

Chapter 6.6.

11 Mar 23 Exam II
12 Mar 30 Constraints, Foreign Keys, Triggers

Chapter 7.

13 Apr 6 Views

Chapters 8.1-8.2.

14 Apr 13 Cursors and Stored Procedures

Chapters 9.3-9.4.

15 Apr 20 Exam III