Source: http://www.dcs.gla.ac.uk/~quintin/courses/db3/N-Tier.pdf