The first paradigm
Paradigm provides the first attribute field can contain only atomic (simple, indivisible) values, and any tuple in the value of the property must be a single field from the attribute value. Therefore, the relationship between a single tuple, 1NF does not allow attribute value is a value set, a tuple value, or a combination of both.
1. If the property value is a value set, there are three ways to make such a relationship to 1NF
1). Removed to the properties of the model against the 1NF. And its relationship with the main code in a separate relationship. This technique is a non-1NF relations into two 1NF.
2). Extension code, so has the value set of attribute values in the properties all have a single tuple. Disadvantage of this solution is the introduction of redundant data.
3). If you know the maximum number of attribute values, the property can be decomposed into several atomic properties. This case, if not most of the element group has all the attributes, will introduce a lot of NULL values. In addition, the order between the values of these positions may also further introduce a parasitic semantics, which we originally did not want. Check this property will become more difficult.
These three solutions, generally considered the first best, because it is not redundant, is very common, and on the value of the maximum number of no limit.
In addition, the first paradigm does not allow their own portfolio of multi-valued attribute, this property is called nesting, since each tuple will be embedded within a relationship.
In order to standardize the 1NF, should the properties of nested relations move to a new relationship, and the master code is also copied to this new relationship, so that the main relationship in this new code is part of the code and the original relationship master code combination.
This process can be applied to a multi-nested recursive relationship to the lifting of nested relations as a set of 1NF relations.