The problem with this query is that to answer it, it is necessary to navigate via four relationship types. Using the first relationship type 'made', all the customer orders are accessed. For each order, 'Contains' is used to access every order line. For each order line, the customer invoice (if any; an invoice might not yet have been sent. This is shown using an 'optional' circle at the left-hand end of the relationship type) is accessed and the payment is retrieved and then listed. The pseudo-code for this could be written as shown in Fig. 3.19.