Exercise: Santa’s list

I gave this problem as an exam question in December a few years ago. It admittedly has a cultural bias, but no one from any cultural background who has ever visited a shopping mall in the United States during the holiday season could be unaware of the story of Santa Claus.

• You are designing a database to help Santa Claus and his elves to keep track of the toys he gives to children. He obviously needs to know the name and address of each child on his list, and when they were born. Every year, each child will give Santa a list of the toys that he/she wants. Santa will record whether that child has been naughty or nice that year, then pick which toys to actually deliver. A child won’t get more than one of each toy, probably won’t get everything that he/she asked for, and might get something that wasn’t asked for (like a lump of coal if he’s been naughty). Of course, Santa doesn’t want to give a child any of the same toys this year as he gave them last year.

• Hint: the solution is much easier than you might think the first time you read through this exercise.

• Describe each class in English.

• Draw the class diagram, including association classes if required.

• Describe each association in English (both directions).

• Draw the relation scheme.

The solution to this exercise will be discussed in class or posted online at a later date.