First normal form (1NF)


  • A table is in first normal form (1NF) if and only if all columns contain only atomic values, that is, each column can have only one value for each row in the table.
  • First normal form (1NF) is now considered to be part of the formal definition of a relation in the basic (flat) relational model; historically, it was defined to disallow multivalued attributes, composite attributes, and their combinations.
  • It states that the domain of an attribute must include only atomic (simple, indivisible) values and that the value of any attribute in a tuple must be a single value from the domain of that attribute.
  • Hence, 1NF disallows having a set of values, a tuple of values, or a combination of both as an attribute value for a single tuple.
  • In other words, 1NF disallows relations within relations or relations as attribute values within tuples.
  • The only attribute values permitted by 1NF are single atomic (or indivisible) values.
  • To better understand the definition for 1NF, it helps to know the difference between a domain, an attribute, and a column.

  • A domain is the set of all possible values for a particular type of attribute, but may be used for more than one attribute.
  • For example, the domain of people’s names is the underlying set of all possible names that could be used for either customer-name or salesperson-name in the database table
  • Each column in a relational table represents a single attribute, but in some cases more than one column may refer to different attributes from the same domain.
  • When this occurs, the table is still in 1NF because the values in the table are still atomic.
  • In fact, standard SQL assumes only atomic values and a relational table is by default in 1NF.