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 |