πŸ“˜ 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

SQL revision β€” Week 1 re-teaches FIT2094 SQL; the FIT3003 deltas were merged into the existing notes:

Week 2 β€” Simple Star Schemas (Ch2) & More Complex Facts and Dimensions (Ch3)

Week 3 β€” Data Cleaning (USELOG & ROBCOR case studies)

Week 4 β€” Hierarchies (Ch4), Bridge Tables (Ch5) & Snowflake Schemas

Week 5 β€” Temporal Data Warehousing (Ch6)

Week 6 β€” Determinant Dimensions (Ch7) & self-study Chapters 8–10

Week 7 β€” Multi-Fact Star Schemas (Ch11) & Slicing a Fact (Ch12)

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)

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)

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”)

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)

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)

🧭 Suggested Reading Order

🎯 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 avg as a stored measure; store total count instead
  • W3 βž”
    • predict a 1– join’s row count and reconcile it against the TempFact
    • probe duplicates with group by <key> having count(*) > 1 on both join sides
    • detect the five dirty-data types and write the check-then-repair pair
    • clean with select distinct at 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 LISTAGG in 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 CurrentFlag or 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 sequence and .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 rownum over 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 count fact measure that is all s at Level-0, and refuse to drop a sum one
    • 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 outer sum
  • W9 βž”
    • match a report’s shape to its OLAP family: group by, cube/rollup, ranking, cumulative/moving, drill down
    • predict a cube ( sets) or rollup ( 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/rollup to drop its duplicate β€œAll” rows
    • label subtotal rows with decode(grouping(col), 1, 'All …', col)
    • choose rank / dense_rank / row_number by 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 with rows 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
  • 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 partial rollup (), 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 cursor for loop
    • distinguish procedure, function and trigger, and IN / OUT / IN OUT
    • pick trigger timing, level and event; read :old/:new per event; veto with raise_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_date range join, folding overlapping periods with listagg
    • 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