3Data manipulation & SQL
- 3.1Relational algebra and relational calculus
Covers the relational algebra operators selection (sigma), projection (pi), join (join symbol) (natural/equi/outer join), union, difference, Cartesian product, and division, and how SQL queries can be interpreted as combinations of these operators, together with practical query-design decisions.
- 3.2SQL fundamentals and DDL
Covers schema definition via DDL (CREATE/ALTER/DROP), design decisions around constraints (primary key, foreign key, CHECK, NOT NULL, unique constraint), privilege management via DCL (GRANT/REVOKE), and transaction finalization via COMMIT/ROLLBACK, from the perspective of practical schema-change and privilege-design work.
- 3.3Joins and subqueries
Covers when to use inner/outer/self joins, the performance and semantic differences between correlated and uncorrelated (non-correlated) subqueries, set operations (UNION/INTERSECT/EXCEPT), and how NULL and three-valued logic affect conditional expressions and join results, together with judgment calls for query correctness in practice.
- 3.4Aggregation, grouping, and window functions
Covers grouping with GROUP BY versus filtering groups with HAVING, how aggregate functions (COUNT/SUM/AVG, etc.) handle NULL, and window functions (analytic functions) that compute rankings or running totals without collapsing rows, together with judgment calls for correct aggregation design.
- 3.5Views and embedded SQL
Covers the conditions for an updatable view and how WITH CHECK OPTION preserves its constraints, the cursor and dynamic SQL mechanisms applications use to execute SQL, and stored procedures/triggers that complete processing on the DBMS side, together with practical application-design decisions.

