π FIT3003: Business Intelligence and Data Warehousing
Map of Content
Index for FIT3003 BI and Data Warehousing β dimensional modelling on Oracle. Prerequisite skills are the FIT2094 E/R model and SQL, revised in Week 1. Start with Data Engineering.
π Assessment Map
- Assessment 1 β Online Quiz (10%) β Introduction to Data Warehousing and Star Schemas; due Monday of Week 6 (the W4 slide dates this 1 September 2026)
- Assessment 2 β Individual Assignment (40%) β THE unit: design a warehouse and implement it in Oracle; opens Wed 7 Oct, due Wed 14 Oct 2026, 11:55 PM β Star Schema, Oracle SQL Toolkit (Cheatsheet)
- 1 clean the input data (no ERD supplied β draw one)
- 2β3 draw the star and create it in SQL
- 4 answer the given queries plus one of your own (fact dimension, justified for management)
- Assessment 3 β OLAP Quiz (10%) β 1 attempt, 30 min (W12 slide β earlier recorded as 40); Oracle not required; no short extension; opens Sun 18 Oct, due Mon 26 Oct 2026, 11:55 PM β drill OLAP Cube and Rollupβs grouping-set arithmetic
- Exam (40%) β 2 h 10 min, closed book, on campus via the e-Assessment platform Β· W12 slide: βSemester two final exam announced: 02 Nov 2026β β check the timetable for date and location Β· sample exam on Moodle
- in scope β every chapter except Ch15β17 (out of the unit) and Ch19 OLAP (assessed by A3 instead) β Ch1β14, 18, 21 β the W12 revision file covers exactly these
- unclear β Ch20 Pre- and Post-Data Warehousing is neither excluded nor in the revision file Β· the W12 emerging-topics deck is not a chapter β ask the lecturer before revising either for the exam
Topics covered: data warehousing (ETL, multidimensional schemas, star/snowflake) Β· OLAP Β· data analytics.
π§° Toolkit Cheatsheets
- π FIT3003 Unit Cheatsheet β the whole-unit crib: design router (case feature β pattern), build/validate procedures, every special-dimension rule, levels of aggregation, OLAP row-count and tie arithmetic (A3), analytics, active DW, Β§12 modern platforms (W12) Β· the Route line marks what the exam excludes
- Oracle SQL Toolkit (Cheatsheet) β shared with FIT2094; FIT3003 adds warehouse DDL/ETL (CTAS,
INSERT ALL, sequences, old-style(+)joins) Β· bridge/LISTAGGΒ· union-merge, pivot and slice CTAS Β· re-graining Β· OLAP (cube/rollup/grouping,rank/row_number, windows) Β· in-SQL regression Β· PL/SQL, triggers and the active-DW maintenance idioms Β· the SCD Type 4 range-join report (W1βW12)
π Knowledge Index
Week 1 β Data Engineering, Data Warehousing & SQL Revision
- Data Engineering β Parent Framework: Data Science
- Data Warehouse β Parent Framework: Data Engineering
- Star Schema β Parent Framework: Data Warehouse
SQL revision β Week 1 re-teaches FIT2094 SQL; the FIT3003 deltas were merged into the existing notes:
- SQL Joins (ANSI) (W1: old-style comma+WHERE join β used in FIT3003, banned in FIT2094)
- DML INSERT (Oracle) (W1:
INSERT ALL β¦ SELECT * FROM DUAL, partial-insert column-list rule) - Altering and Dropping Tables (W1: column-level ADD/MODIFY/DROP, CHAR vs VARCHAR2)
- Populating Tables from Queries (INSERT-SELECT, CTAS) (W1: cross-account
CREATE TABLE β¦ AS SELECT * FROM dtaniar.x) - DDL Table Creation Β· Oracle Data Types Β· SQL SELECT and WHERE Β· SQL Sorting, Distinct & Alias Β· SQL Aggregate Functions and GROUP BY Β· SQL Subquery (Nested SELECT) Β· DML UPDATE and DELETE (Oracle) Β· Database Transaction
Week 2 β Simple Star Schemas (Ch2) & More Complex Facts and Dimensions (Ch3)
- Star Schema β Parent Framework: Data Warehouse (W2 merge: notation, transformation process, the Chapter 2 College answer)
- Two-Column Table Methodology β Parent Framework: Star Schema
- Building Dimension Tables β Parent Framework: Star Schema
- Building Fact Tables β Parent Framework: Star Schema
- Fact Measure Aggregation Rules β Parent Framework: Star Schema
Week 3 β Data Cleaning (USELOG & ROBCOR case studies)
- Data Exploration (Warehouse Validation) β Parent Framework: Data Engineering
- Data Cleaning (Dirty Data) β Parent Framework: Data Exploration (Warehouse Validation)
- Multi-Role Facts β Parent Framework: Star Schema (ROBCOR pilot / co-pilot)
- One-Attribute Dimensions β Parent Framework: Star Schema (feedback session)
- Two-Column Table Methodology (W3 merge: the
Number_of_Reviewsfailure case, the grounding check) - Building Dimension Tables (W3 merge: why dimensions exist at query time; the shared-description trap)
Week 4 β Hierarchies (Ch4), Bridge Tables (Ch5) & Snowflake Schemas
- Snowflake Schema β Parent Framework: Star Schema
- Dimension Hierarchies β Parent Framework: Snowflake Schema
- Bridge Tables β Parent Framework: Snowflake Schema
- Building Bridge Table Schemas β Parent Framework: Bridge Tables
- Star Schema (W4 merge: the one-hop rule and its snowflake exception)
- Data Warehouse (W4 merge: the five reasons warehousing is needed β Feedback Session 3)
Week 5 β Temporal Data Warehousing (Ch6)
- Slowly Changing Dimensions (SCD) β Parent Framework: Star Schema (verified against the Ch6 revision chapter, W12)
Week 6 β Determinant Dimensions (Ch7) & self-study Chapters 8β10
- Determinant Dimensions β Parent Framework: Star Schema (Lab 6 merge: the over-count trap)
- Pivoted Fact Tables β Parent Framework: Determinant Dimensions (Lab 6 merge: PTE case β dimension sourcing, the zero-row trim, both report sets)
- Junk Dimensions β Parent Framework: Star Schema
- One-Attribute Dimensions (W6 merge: Ch9 dimension-less keys; Ch10βs full move-or-keep taxonomy)
- Surrogate Key (W6 merge: Ch9 sequence implementation; optional when the operational PK is already unique)
- Star Schema (W6 merge: dashed-box determinant notation, the dimension-less-key band)
- Fact Measure Aggregation Rules (W6 merge: the single case where a stored
avgis legal)
Week 7 β Multi-Fact Star Schemas (Ch11) & Slicing a Fact (Ch12)
- Multi-Fact Star Schemas β Parent Framework: Star Schema (Lab 7 merge: the Book Sales build on the
dtaniartables and the five report queries, incl. therownumtop-N) - Combining Star Schemas β Parent Framework: Multi-Fact Star Schemas
- Slicing a Fact β Parent Framework: Multi-Fact Star Schemas
- Determinant Dimensions (W7 merge: the pilot/co-pilot double count, Part-grain determinacy, the Type Dimension shape, determinacy lost after slicing)
- Pivoted Fact Tables (W7 merge: the one-dimension pivot idiom β zeroed columns correlated
update)
Week 8 β Granularity and Levels of Aggregation (Ch14) & Multi-Input Operational Databases (Ch13)
(the webinar itself was a Ch11 recap the A2 announcement; the new content is the two chapter decks) (Lab 8a β Clothing Company and Toll Way β is a pure drawing drill with no SQL; merged as the two applied exercises in Levels of Aggregation)
- Levels of Aggregation β Parent Framework: Data Warehouse
- Identifying a Level-0 Star Schema β Parent Framework: Levels of Aggregation
- Fact Constellation β Parent Framework: Levels of Aggregation
- Multi-Input Operational Databases β Parent Framework: Data Warehouse
- Star Schema (W8 merge: the fact as an -ary relationship standing for the E/R transaction; the granularity ladder)
- Multi-Fact Star Schemas (W8 merge: dimension hierarchies as the systematic source of granularity multi-facts)
- Levels of Aggregation (Lab 8a merge: count the aggregated dimensions, lower one for Level-1 and all for Level-0; the Oracle
dateloophole)
Week 9 β OLAP (Ch19) & Power BI
(the webinar opened with a W8 Levels of Aggregation recap β nothing new there; the content is the Chapter 19 deck and the Power BI deck)
- OLAP (On-Line Analytical Processing) β Parent Framework: Data Warehouse
- OLAP Cube and Rollup β Parent Framework: OLAP (On-Line Analytical Processing)
- OLAP Ranking and Top-N β Parent Framework: OLAP (On-Line Analytical Processing)
- OLAP Cumulative and Moving Aggregates β Parent Framework: OLAP (On-Line Analytical Processing)
- Power BI β Parent Framework: OLAP (On-Line Analytical Processing)
- SQL Aggregate Functions and GROUP BY (W9 merge:
count(distinct β¦)β Ch19 Β§1 is otherwise FIT2094 revision) - OLAP Cube and Rollup (Lab 9a merge: CHARTER fuel report β sparse row counts , the constant-column doubling, cube vs rollupβs missing rows)
- OLAP Ranking and Top-N (Lab 9a merge: the real tie across
row_number/dense_rank/rank, ranking raw rows, top-10% months withpercent_rank >= 0.9) - OLAP Cumulative and Moving Aggregates (Lab 9a merge: two partitions in one query, the
partition by X order by Xtrap)
Week 10 β Data Analytics for Data Warehousing (Ch21)
(the webinar was a W9 OLAP recap the A2/A3 dates; the new content is the Chapter 21 deck β βread the entire chapter on your ownβ)
- Data Analytics for Data Warehousing β Parent Framework: Data Warehouse
- Linear Regression in SQL β Parent Framework: Linear and Polynomial Regression (Lab 10 merge:
avg(x) over ()means, GlucoseβAlbumin and AgeβWBC fits, thenumeric(3,0)rounding trap; script in30_Projects/FIT3003_Labs/) - DBSCAN (Density-Based Clustering) β Parent Framework: Machine Learning Styles (Supervised vs Unsupervised)
- Regression Tree Construction (SSR Splits) β Parent Framework: Decision Trees and Regression Trees
- Linear and Polynomial Regression (W10 merge: closed-form slope/intercept; time-series vs non-time-series; rolling windows vs regression)
- k-means Clustering (W10 merge: 1-D midpoint hand trace; normalising non-uniform measures; Voronoi; stop on no movement)
- OLAP Cube and Rollup (W10 recap merge: the grouping-set count formula for partial forms)
Week 11 β Active Data Warehousing (Ch18) & PL/SQL Revision
(the webinar was a W10 recap the A3 dates; the content is the Chapter 18 deck β βread the entire chapter on your ownβ β and the PL/SQL revision deck)
- Active Data Warehousing β Parent Framework: Data Warehouse
- Active Data Warehouse Evolution β Parent Framework: Active Data Warehousing
- PL-SQL Stored Procedures and Functions β Parent Framework: SQL Sublanguages (DDL, DML, DCL)
- Database Triggers (Oracle) β Parent Framework: PL-SQL Stored Procedures and Functions
- Levels of Aggregation (W11 merge: bottom-up build for active warehouses, top-down for passive)
- Slowly Changing Dimensions (SCD) (W11 merge: a changed business rule versioned in a Type 4 history dimension)
- Surrogate Key (W11 merge: a
before inserttrigger filling:new.IDfrom a sequence)
Week 12 β Unit Revision & Emerging Topics in Data Warehousing
(the webinar was a Ch18 recap exam scope; the revision book re-covers Ch1β14, 18, 21 β delta-checked against the vault, only Ch6 added anything; the emerging-topics deck is not a book chapter)
- Cloud Data Warehousing β Parent Framework: Data Warehouse
- Data Lakehouse β Parent Framework: Data Warehouse
- ETL vs ELT β Parent Framework: Data Engineering
- AI-Ready Data Platforms β Parent Framework: Data Engineering
- Slowly Changing Dimensions (SCD) (revision-book merge: temporal attribute vs dimension, Type 2 suffixed IDs in the fact, the Type 4 range-join
listaggreport, Type 6βs β and its three fixes) - Data Engineering (W12 merge: Model 3 block by block β sources β Temp DB β ETL β warehouse β BI)
- Power BI (W12 merge: connecting to a Spark SQL endpoint; CSV vs Import vs DirectQuery)
- Hadoop and Spark Β· Distributed Processing and Map-Reduce Β· Data Management and Data Governance (FIT1043 notes extended: HDFS MapReduce YARN, Sparkβs deployment and four costs; batch vs stream as a design decision; security, quality and governance at scale)
π§ Suggested Reading Order
- W2 β draft, validate, build: Star Schema (notation) β Two-Column Table Methodology (validate first) β Building Dimension Tables (A2 hand skill) β Building Fact Tables (A2 hand skill) β Fact Measure Aggregation Rules (measure choice)
- W3 β never trust the source: Data Exploration (Warehouse Validation) (A2 task 1) β Data Cleaning (Dirty Data) (A2 task 1) β Multi-Role Facts (two-role transactions) β One-Attribute Dimensions (refinement)
- W4 β when the star must bend: Snowflake Schema (the two families) β Dimension Hierarchies (optional, usually reject) β Bridge Tables (A2 hand skill) β Building Bridge Table Schemas (lab SQL)
- W5 β the past must stay past: Slowly Changing Dimensions (SCD) (six types, one ladder)
- W6 β when a dimension is compulsory: Determinant Dimensions (the test) β Pivoted Fact Tables (the ETL recipe) β Junk Dimensions (the opposite move) β One-Attribute Dimensions (move or keep) β Surrogate Key (sequence keys)
- W7 β one star, many facts: Multi-Fact Star Schemas (the two causes) β Combining Star Schemas (the pools test) β Slicing a Fact (vertical vs horizontal)
- W8 β how far has it been rolled up: Levels of Aggregation (the ladder the two lowering moves) β Identifying a Level-0 Star Schema (the declared exam trap) β Fact Constellation (hierarchy multi-fact) β Multi-Input Operational Databases (A2-shaped ETL) Β· drill Lab 8aβs two cases before the exam
- W9 β read the warehouse: OLAP (On-Line Analytical Processing) (which family) β OLAP Cube and Rollup (row-count arithmetic) β OLAP Ranking and Top-N (tie behaviour) β OLAP Cumulative and Moving Aggregates (window trace) β Power BI (Data β Model β Report)
- W10 β model the measures: Data Analytics for Data Warehousing (why not association rules / decision trees) β Linear and Polynomial Regression (closed form) β Linear Regression in SQL (three-layer query) β k-means Clustering (1-D midpoint trace) β DBSCAN (Density-Based Clustering) (vs k-means) β Regression Tree Construction (SSR Splits) (min-SSR trace)
- W11 β keep it live: PL-SQL Stored Procedures and Functions (the language) β Database Triggers (Oracle) (
:old/:new) β Active Data Warehousing (view or trigger, per level) β Active Data Warehouse Evolution (follow the dependency) - W12 β same star, different engine: Slowly Changing Dimensions (SCD) (re-read: Type 6 trap) β Cloud Data Warehousing (storage compute) β Data Lakehouse (Bronze/Silver/Gold β Model 3) β ETL vs ELT (where the transform runs) β AI-Ready Data Platforms (extra consumer) Β· exam revision: Ch1β14, 18, 21 via FIT3003 Unit Cheatsheet
π― Learning Outcomes
- W1 β
- argue why ad-hoc cleaning fails and modularisation wins
- contrast software vs data engineering
- place ETL, OLAP and BI on the delivery chain
- separate operational DB from warehouse (precomputed, granularity, pre-designed)
- derive fact, grain, dimensions and attributes from analysis questions
- write FIT3003 old-style joins without producing a Cartesian product
- W2 β
- draw a star in unit notation β
XxxDIM/XxxFACT, dimension ID as FK+PK in the fact - validate a drafted star with the two-column table method
- create dimensions directly, or stage a derived attribute in a temp dimension
- aggregate a fact from operational tables, a
TempFact, or a pre-processed source - use
left outer join+count(attribute)for two unequal populations - reject
avgas a stored measure; store total count instead
- draw a star in unit notation β
- W3 β
- predict a 1β joinβs row count and reconcile it against the TempFact
- probe duplicates with
group by <key> having count(*) > 1on both join sides - detect the five dirty-data types and write the check-then-repair pair
- clean with
select distinctat the join, or a cleaned source copy - split a two-role transaction into one star schema per role
- rule out
union-merging a fact whose measures belong to the trip, not the person
- W4 β
- split a dimension into a many-1 hierarchy chain
- choose among separate, combined, hierarchy and linked dimensions
- reject a hierarchy that keys the fact at the coarse level
- detect the source mβm that forces a bridge table
- build a bridge by copying the operational associative table
- compute and
LISTAGGin the parent dimension
- W5 β
- report a measure at the attribute value true when the fact happened
- separate SCD types by where the history lives
- reject types 0 and 1 for any historical report
- key a Type 4 history table on
- read a Type 2 dimension via
CurrentFlagor a date range
- W6 β
- test a dimension for determinacy from the factβs aggregate function, not its βTypeβ label
- pin the determinant attribute in every fact query, or the measure over-counts
- enforce a determinant dimension by pivot or by user interface
- build a pivoted fact with
AllDimensions(+)nvl - consolidate unrelated low-cardinality dimensions into a
JunkDim - key a dimension with
create sequenceand.nextval
- W7 β
- justify a second fact by subject or granularity, via the measure dimension grid
- reject a multi-fact drafted from differing units of measure
- route each report to the fact that owns its measure; top-N with
rownumover an ordered inline view - collapse many child rows to one with
round(avg(...))before joining a fact - classify a combine question by pool count and transaction record
- pick vertical vs horizontal slice from pivoted fact vs type dimension
- W8 β
- place a star schema on the granularity ladder, or declare two schemas incomparable
- draw the Level-1 and Level-0 stars for a given Level-2 star, justifying each dimension swap
- lower a level by adding a dimension or replacing one with a higher-granularity dimension
- drop a
countfact measure that is all s at Level-0, and refuse to drop asumone - locate the transaction entity in the E/R diagram and test a draft for Level-0
- count the fact tables () and the lattice levels of a multi-hierarchy fact constellation
- stack per-source facts vertically with
union, or horizontally with zero-padded measures an outersum
- W9 β
- match a reportβs shape to its OLAP family:
group by,cube/rollup, ranking, cumulative/moving, drill down - predict a
cube( sets) orrollup( sets) row count, including the partial forms - count rows per grouping set from the combinations that occur, not the product of distinct values
- move a single-valued column outside
cube/rollupto drop its duplicate βAllβ rows - label subtotal rows with
decode(grouping(col), 1, 'All β¦', col) - choose
rank/dense_rank/row_numberby how ties must behave - write Top-N and top-percent as a filter outside an inline view
- rank within groups with
partition by - give each running total its own
partition by, ordered along the other column - write a running total with
sum(sum(m)) over (β¦ rows unbounded preceding)and a -period moving average withrows k-1 preceding - trace both window columns by hand, first rows included
- build a Power BI report: Data β Model (dimension
1β fact*) β Report, with the right default aggregation and filter scope
- match a reportβs shape to its OLAP family:
- W10 β
- explain why association rules and decision trees misfit numerical fact measures
- name the fact-table columns that regression, clustering and classification each consume
- compute slope and intercept by hand and in SQL
- get onto every row by a cross-joined one-row view or
avg(x) over () - contrast time-series with non-time-series regression, and rolling windows with regression
- trace 1-D k-means with midpoint boundaries until no member moves
- normalise non-uniform measures before distance-based clustering
- contrast k-means with DBSCAN on , outliers and chaining
- choose each regression-tree split by lowest SSR over midpoint thresholds, left sub-tree then right
- count grouping sets for partial
cube() and partialrollup(), inside the parentheses
- W11 β
- contrast passive and active warehouses on change, build direction and the need for PKβFK constraints
- choose view or table trigger for each dimension, TempFact and fact
- trace one operational insert up every level of the trigger chain
- maintain a counted fact with a find-or-insert trigger, and decrement it on expiry from
:old - absorb a changed business rule in the TempFact trigger and a history dimension
- predict which levels a schema change reaches by following build dependencies
- meet an operational change by updating the existing stars or by building and merging new ones
- write a PL/SQL block with
%type,if/elsif, loops and a cursorforloop - distinguish procedure, function and trigger, and
IN/OUT/IN OUT - pick trigger timing, level and event; read
:old/:newper event; veto withraise_application_error
- W12 β
- name the exam scope: all chapters except Ch15β17 and Ch19 OLAP
- separate a temporal attribute (value has a life-time) from a temporal dimension (record has a life-time)
- report a Type 4 history with a
to_daterange join, folding overlapping periods withlistagg - explain why Type 6 makes dimensionβfact β, and fix it by surrogate key, fact dates or bridge
- contrast on-premises and cloud warehouses, and justify separating storage from compute
- compare Snowflake, Redshift and BigQuery on architecture, scaling and pricing
- contrast schema-on-write with schema-on-read, and map Temp DB / ETL / warehouse onto Bronze / Silver / Gold
- choose ETL or ELT by where the transform should run; resolve conflicts by latest timestamp, then source priority
- choose batch or stream from acceptable delay, complexity and cost
- list what automation, cloud and AI leave to the designer: modelling, SQL, quality, governance