We have assumed here that every customer on the database has purchased at least one product; hence the mandatory optionality of `purchased'. If this were not true in the situation under study then a zero would appear instead. The zero optionality of 'was_purchased_by' is due to our assumption that a product type might as yet have had no purchases at all.