• Good article, Frank.

    But I think you're mistakenly mixing data atomicity into Codd's Information Rule. I didn't check your sources, but decomposition is a function of schema design (first normal form) and not something which can or should be enforced by a DBMS.

    That's not to say that a DBMS can be designed to prevent an unlearned schema designer from breaking the Information Rule. I've seen several designs on these forums that unfortunately do just that by having table names convey data, e.g. otherwise identical tables named CashInvoice and CreditInvoice. This, IMHO, breaks Codd's Information Rule by storing information in the identifier rather than as values in columns, and thereby leads to kludges like UNIONs and dynamic T-SQL.

    An RDBMS can be designed to support one of Codd's rules, but it doesn't necessarily prevent one from ignorantly breaking that rule; e.g. one can also create a table without a primary key in SQL Server, so the database is therefore not relational, but that cannot be blamed on SQL Server.

    --Jonathan



    --Jonathan