Referential integrity and its role in data warehousing: part two