• Nice summary! Of course we all know that the database WILL be expected to parse pieces of data that are allowed to be combined in one column. (Just witness the number of articles devoted to separating comma-separated strings!) Among the ways that MS-SQL helps us accept this situation and be productive anyway: full-text indexing, XML and spatial datatypes, and column sets.

    If whether the combined data violates 1NF depends on how the client app uses it, what about the primary key rule? That is, does it still count as 1NF if the table has a primary key, but the application ignores it (never requests a row based on it)?