Fourth and fifth normal forms send us down a pretty, yellow brick road leaving behind functional dependencies to gather up join dependencies and their special child, multi-valued dependencies.
Functional programming techniques can be used in conjunction with lazy binding to rather easily and compactly express the complex multi-valued dependencies we require. As an example, let’s consider ...