How a sentence a manager says becomes a table you can query. Relational design, Crow's Foot notation, normalization, and SQL, taught with worked examples you can read like prose.
CIS 4720 is about turning business rules into a database that holds up. We start with plain sentences from a store manager, draw the entities and relationships, decide connectivity and participation, and carry the design down through four levels of abstraction until it is running SQL against real tables.
Along the way students write queries, joins, and constraints; normalize schemas to remove redundancy; and work with transactions on live databases. The three pages below are the reference illustrations I use in lecture. Each one takes a single small model and reads every mark on the diagram.
SELECT c.last_name, COUNT(*) AS invoices, SUM(i.invoice_total) AS billed
FROM customer c
JOIN invoice i ON i.customer_id = c.customer_id
GROUP BY c.customer_id, c.last_name
ORDER BY billed DESC;
Four short pages. Read them in order the first time; after that they stand on their own.
The maximums fix whether a relationship is 1:1, 1:M, or M:N. The minimums decide only whether a row is required. They are read separately.
A many to many relationship describes the business fine but cannot be built directly. A bridge entity splits it into two 1:M relationships you can implement.
Formally a table is a set of tuples with no order and no duplicates. That is why rows come back unordered unless you ask for a sort.