Since the database needs to represent two related but very distinct types of data: 1) house
fundamental components—parts including both room tiles and walls, and 2) Houses —
collections of parts in their particular positions and orientations. Two types of tables are
created in the house database. One is the type of base tables that store the data for the
fundamental non-positioned house components and houses. The other is the type of
materialized tables that store the computed data of positioned house parts from the base
tables. The existence of materialized table is for fast access to “manipulated” data of
positioned house parts.