πŸ“˜ FIT2094: Databases

Map of Content

Index for FIT2094 Databases β€” conceptual modelling in Crow’s Foot throughout. Start with Database Design Life Cycle.

πŸ“Š Assessment Map

  • Written Assignment (70%) βž” THE unit: design (ER β†’ logical β†’ normalised) + executable Oracle SQL; fed by Weeks 2–10 and Oracle SQL Toolkit (Cheatsheet).
  • Test (30%) βž” theory: relational model, relational algebra, normalisation reasoning. No exam.

🧰 Toolkit Cheatsheets

πŸ“… Knowledge Index

Week 2 β€” Conceptual Modelling (ER, Crow’s Foot)

Week 3 β€” The Relational Model and Relational Algebra

Week 4 β€” Normalisation

Week 5 β€” Logical Modelling (ER β†’ Relational)

Week 6 β€” Physical Design & DDL (Oracle)

Week 7 β€” DML & Transactions

Week 8 β€” SQL Querying (SELECT)

Week 9 β€” SQL Intermediate (Aggregation & Subqueries)

Week 10 β€” Advanced SQL

Week 11 β€” Big Data & NoSQL (Relational vs Non-Relational)

🧭 Suggested Reading Order

(read left→right within each week · bold = the assignment-critical skill of that week)

🎯 Learning Outcomes (key skills per week)

  • W2 βž”
    • place conceptual modelling in the life cycle
    • draw Crow’s Foot ERDs (strong/weak, attribute types, verb labels)
    • show min AND max cardinality
    • solid vs dashed lines
    • resolve M:N with an associative entity
  • W3 βž”
    • relation = set β‰  table (degree vs cardinality)
    • derive super β†’ candidate β†’ primary keys
    • enforce entity/referential/column integrity
    • write , , set ops, joins in relational algebra
  • W4 βž”
    • name the anomaly + its redundancy cause
    • classify FDs full/partial/transitive
    • run UNF β†’ 1NF β†’ 2NF β†’ 3NF listing the right dependencies each step
    • synthesise multi-form 3NF schemas
  • W5 βž”
    • map entityβ†’relation, relationshipβ†’FK
    • handle composite/multivalued/weak cases
    • apply 1:M / M:N / 1:1 / unary / ternary rules
    • spot impossible configurations
    • add surrogates last + UNIQUE the natural key
  • W6 βž”
    • minimise personal data (client decides)
    • DDL auto-commits vs transactional DML
    • pick CHAR/VARCHAR2/NUMBER/DATE
    • CREATE + named ALTER constraints in valid order (split-then-ALTER for cycles)
    • CHECK vs lookup
    • choose on-delete actions from participation
  • W7 βž”
    • INSERT with TO_DATE + sequences (NEXTVAL before CURRVAL)
    • UPDATE/DELETE with subquery-driven WHERE (never hardcode, never omit WHERE)
    • explain ACID via log + locks
    • lost update, 2PL, deadlock handling
    • REDO vs UNDO by write policy
  • W8 βž”
    • filter with full WHERE predicate set under three-valued logic
    • alias/sort/DISTINCT (NULLs sort largest)
    • NVL/TO_CHAR/TO_DATE type discipline
    • ANSI joins only (natural-join Cartesian trap)
    • subquery instead of hardcoded lookup
  • W9 βž”
    • COUNT(*) vs COUNT(col)
    • every SELECT column grouped or aggregated
    • WHERE (rows) vs HAVING (groups) + logical clause order
    • pick subquery operator by output shape (scalar / IN / row-constructor)
  • W10 βž”
    • CASE (ranges) vs DECODE (equality)
    • nested vs correlated vs inline vs scalar subqueries + cost reasoning
    • INSERT-SELECT and CTAS (constraints lost)
    • self joins on recursive FKs
    • outer joins to keep unmatched rows
    • UNION/INTERSECT/MINUS union-compatibility
  • W11 βž”
    • why the Vs overwhelm an RDBMS (scale up vs out)
    • four NoSQL models by access pattern
    • embed vs reference in MongoDB
    • CRUD with $set (no ROLLBACK!) mapped to SQL equivalents