I cannot think of a way to model not-nullable attributes. All I can think of is a trigger on a child table that checks whether all the parent table records have got a valid attribute value. Caveat is that the load on the child table always needs to be such that all data of a load corresponding to the load of the parent table is commited in one transaction. Did I write gobblegog?
Are there best practices?