Normalization to
first normal form requires the initial data to be viewed as
relations. In database systems relations are represented as tables. The relation view implies some constraints on the tables: • No duplicate rows. In practice, this is ensured by defining one or more columns as
primary keys. • Rows do not have an intrinsic order. While tables have to be stored and presented in
some order, this is unstable and implementation dependent. If a specific ordering needs to be represented, it has to be in the form of data, e.g. a "number" column. • Columns have unique names within the same table. • Each column has a domain (or data type) which defines the allowed values in the column. • All rows in a table have the same set of columns. This definition does not preclude columns having sets or relations as values, e.g. nested tables. This is the major difference to
first normal form.
NoSQL databases like
document databases typically does not conform to the relational view. For example, an
JSON or
XML database might support duplicate records and intrinsic ordering. Such database can be described as non-relational. But there are also database models which support the relational view, but does not embrace
first normal form. Such models are called
non-first normal form relations (abbreviated
NFR,
N1NF or
NF2). == Example with a table valued column ==