Source: https://www.ddginc-usa.com/databaseanswers/Free_Chapter_from_Learn_Data_Modelling_by_Example.pdf