These ideas are not original with me. I first learned them as part of my education in Oracle's CASE*Method, and implemented in Oracle's old product, Oracle Designer. The data modeling tools, like Oracle SQL Developer Data Modeler, that can show Barker notation for ERDs are also drawing from this way of thinking about data modeling. Richard Barker was the creator of CASE*Method and lead the team that created Oracle Designer.
But I am especially indebted to Mike Lynott, formerly a consultant to Oracle, and currently Customer Solutions Architect at eprentise (according to LinkedIn). It was his white paper, Why Do We Say "Each"? that inspired my thinking on the subject. I finally located my copy of this paper. I wish I could give you a link to go read it yourself. It is a little old, but still very relevant to what RDBMS designers do every day.