Suppose that users of the Motors business layer want to produce reports showing the revenue generated by sales, including the showroom location where the products are sold and the address of the clients. The designer adds the tables that provide this information, and creates the joins as shown in the previous example. The designer has also created objects for the Showroom Country, Client Country, and Sales Revenue.
Since joins restrict the data that is returned by the query, in a loop the joins apply more restrictions than the designer intended, and incorrect data is returned.
If the loop were allowed to remain, and a query was run using the Showroom Country, Client Country, and Sales Revenue objects, the report results would be incorrect. The report would suggest that clients bought only products in the same country where they live. However, the report would not show any clients who bought products in a country different from the country where they live.
If a loop exists in the data foundation schema, all objects that are created from the tables that are involved in the loop are incompatible when used in a query. It is absolutely essential to solve loops.