π 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
- π FIT2094 Unit Cheatsheet β design pipeline, normalisation, SQL decision rules, transactions, NoSQL
- Oracle SQL Toolkit (Cheatsheet) β integrates Topics 8β9: anatomy, predicates, functions, joins, subqueries + integration practice
π Knowledge Index
Week 2 β Conceptual Modelling (ER, Crowβs Foot)
- Database Design Life Cycle β Parent Framework: Conceptual Model
- Conceptual Model β Parent Framework: Database Design Life Cycle
- Entity Relationship Diagram (ERD) β Parent Framework: Conceptual Model
- Entity (Conceptual Modelling) β Parent Framework: Entity Relationship Diagram (ERD)
- Attribute (Conceptual Modelling) β Parent Framework: Entity (Conceptual Modelling)
- Relationship (Conceptual Modelling) β Parent Framework: Entity Relationship Diagram (ERD)
- Cardinality (Crowβs Foot Notation) β Parent Framework: Relationship (Conceptual Modelling)
- Identifying vs Non-Identifying Relationship β Parent Framework: Relationship (Conceptual Modelling)
- Associative Entity β Parent Framework: Relationship (Conceptual Modelling)
- Conceptual vs Logical Model β Parent Framework: Conceptual Model
Week 3 β The Relational Model and Relational Algebra
- Relational Model β Parent Framework: Conceptual vs Logical Model
- Domain (Relational Model) β Parent Framework: Relational Model
- Relation (Database) β Parent Framework: Relational Model
- Relation Properties β Parent Framework: Relation (Database)
- Functional Dependency β Parent Framework: Relation (Database)
- Super Key and Candidate Key β Parent Framework: Relation (Database)
- Primary Key β Parent Framework: Super Key and Candidate Key
- Foreign Key and Referential Integrity β Parent Framework: Primary Key
- Data Integrity β Parent Framework: Relational Model
- NULL Value β Parent Framework: Relational Model
- Relational Algebra β Parent Framework: Relational Model
- Select and Project (Ο, Ο) β Parent Framework: Relational Algebra
- Set Operations in Relational Algebra β Parent Framework: Relational Algebra
- Relational Algebra Joins β Parent Framework: Relational Algebra
Week 4 β Normalisation
- Database Anomalies β Parent Framework: Normalisation
- Functional Dependency β Parent Framework: Relation (Database) (extended in Week 4: full/partial/transitive/total)
- Normalisation β Parent Framework: Relational Model
- Unnormalised Form (UNF) β Parent Framework: Normalisation
- First Normal Form (1NF) β Parent Framework: Normalisation
- Second Normal Form (2NF) β Parent Framework: Normalisation
- Third Normal Form (3NF) β Parent Framework: Normalisation
- Synthesis (Normalisation) β Parent Framework: Normalisation
Week 5 β Logical Modelling (ER β Relational)
- Logical Modelling (ER Mapping) β Parent Framework: Conceptual vs Logical Model
- Mapping Entities and Attributes (Logical) β Parent Framework: Logical Modelling (ER Mapping)
- Mapping Binary Relationships (Logical) β Parent Framework: Logical Modelling (ER Mapping)
- Mapping Unary and Ternary Relationships (Logical) β Parent Framework: Logical Modelling (ER Mapping)
- Logical Modelling Constraints β Parent Framework: Logical Modelling (ER Mapping)
- Surrogate Key β Parent Framework: Primary Key
Week 6 β Physical Design & DDL (Oracle)
- Personal Data and Privacy in Database Design β Parent Framework: Database Design Life Cycle
- SQL Sublanguages (DDL, DML, DCL) β Parent Framework: Relational Model
- Oracle Data Types β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- DDL Table Creation β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- Altering and Dropping Tables β Parent Framework: DDL Table Creation
- Column Value Constraints (Check vs Lookup) β Parent Framework: Data Integrity
- Foreign Key and Referential Integrity β Parent Framework: Primary Key (extended in Week 6: on-delete RESTRICT/CASCADE/SET NULL)
Week 7 β DML & Transactions
- DML INSERT (Oracle) β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- DML UPDATE and DELETE (Oracle) β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- Database Transaction β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- ACID Properties β Parent Framework: Database Transaction
- Concurrency Control and Locking β Parent Framework: Database Transaction
- Deadlock β Parent Framework: Concurrency Control and Locking
- Database Recovery β Parent Framework: Database Transaction
Week 8 β SQL Querying (SELECT)
- SQL SELECT and WHERE β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- SQL Sorting, Distinct & Alias β Parent Framework: SQL SELECT and WHERE
- SQL Formatting Functions (NVL, TO_CHAR, TO_DATE) β Parent Framework: SQL SELECT and WHERE
- SQL Joins (ANSI) β Parent Framework: SQL SELECT and WHERE
- SQL Subquery (Nested SELECT) β Parent Framework: SQL SELECT and WHERE
Week 9 β SQL Intermediate (Aggregation & Subqueries)
- SQL Aggregate Functions and GROUP BY β Parent Framework: SQL SELECT and WHERE
- SQL Subquery (Nested SELECT) β Parent Framework: SQL SELECT and WHERE (extended in Week 9: scalar / column / multi-column output types, ANY/ALL)
Week 10 β Advanced SQL
- SQL Conditional Expressions (CASE, DECODE) β Parent Framework: SQL SELECT and WHERE
- SQL Subquery Approaches (Nested, Correlated, Inline) β Parent Framework: SQL Subquery (Nested SELECT)
- Populating Tables from Queries (INSERT-SELECT, CTAS) β Parent Framework: DDL Table Creation
- SQL Views β Parent Framework: SQL SELECT and WHERE
- SQL Self Join and Outer Join β Parent Framework: SQL Joins (ANSI)
- SQL Set Operators β Parent Framework: SQL SELECT and WHERE
- SQL Formatting Functions (NVL, TO_CHAR, TO_DATE) β Parent Framework: SQL SELECT and WHERE (extended in Week 10: EXTRACT, LPAD/RPAD, LTRIM/TRIM)
- Query Processing and the Optimiser β Parent Framework: SQL SELECT and WHERE
Week 11 β Big Data & NoSQL (Relational vs Non-Relational)
- Big Data and the Vs β Parent Framework: Relational Model
- NoSQL Databases β Parent Framework: Big Data and the Vs
- NoSQL Data Models β Parent Framework: NoSQL Databases
- MongoDB Document Model β Parent Framework: NoSQL Data Models
- MongoDB CRUD Operations β Parent Framework: MongoDB Document Model
π§ Suggested Reading Order
(read leftβright within each week Β· bold = the assignment-critical skill of that week)
- W2 β conceptual modelling: Database Design Life Cycle β Conceptual Model β Entity Relationship Diagram (ERD) β Entity (Conceptual Modelling) β Attribute (Conceptual Modelling) β Relationship (Conceptual Modelling) β Cardinality (Crowβs Foot Notation) β Identifying vs Non-Identifying Relationship β Associative Entity (M:N resolution) β Conceptual vs Logical Model
- W3 β relational theory: Relational Model β Domain (Relational Model) β Relation (Database) β Relation Properties β Functional Dependency β Super Key and Candidate Key β Primary Key β Foreign Key and Referential Integrity β Data Integrity β NULL Value β Relational Algebra β Select and Project (Ο, Ο) β Set Operations in Relational Algebra β Relational Algebra Joins
- W4 β normalisation: Database Anomalies β Functional Dependency (full/partial/transitive) β Normalisation β Unnormalised Form (UNF) β First Normal Form (1NF) β Second Normal Form (2NF) β Third Normal Form (3NF) β Synthesis (Normalisation)
- W5 β logical mapping: Logical Modelling (ER Mapping) β Mapping Entities and Attributes (Logical) β Mapping Binary Relationships (Logical) β Mapping Unary and Ternary Relationships (Logical) β Logical Modelling Constraints β Surrogate Key
- W6 β DDL: Personal Data and Privacy in Database Design β SQL Sublanguages (DDL, DML, DCL) β Oracle Data Types β DDL Table Creation β Altering and Dropping Tables β Column Value Constraints (Check vs Lookup) β Foreign Key and Referential Integrity (on-delete actions)
- W7 β DML & transactions: DML INSERT (Oracle) β DML UPDATE and DELETE (Oracle) β Database Transaction β ACID Properties β Concurrency Control and Locking β Deadlock β Database Recovery
- W8 β SELECT foundations: SQL SELECT and WHERE β SQL Sorting, Distinct & Alias β SQL Formatting Functions (NVL, TO_CHAR, TO_DATE) β SQL Joins (ANSI) β SQL Subquery (Nested SELECT)
- W9 β aggregation: SQL Aggregate Functions and GROUP BY β SQL Subquery (Nested SELECT) (operator by output shape)
- W10 β advanced SQL: SQL Conditional Expressions (CASE, DECODE) β SQL Subquery Approaches (Nested, Correlated, Inline) β Populating Tables from Queries (INSERT-SELECT, CTAS) β SQL Views β SQL Self Join and Outer Join β SQL Set Operators β Query Processing and the Optimiser
- W11 β NoSQL: Big Data and the Vs β NoSQL Databases β NoSQL Data Models β MongoDB Document Model β MongoDB CRUD Operations
π― 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