Codd's Twelve Rules - Rule 12 - Non-Subversion Rule
| 
Rule 12 | 
Non-Subversion Rule | 
| 
Rule | 
If
  the system provides a low-level (record-at-a-time) interface, then that
  interface cannot be used to subvert the system, for example, bypassing a
  relational security or integrity constraint. | 
| 
Description | 
“This
  rule states that if a Relational Database Management System has an interface
  that provides access to low level records, this interface then must not be
  able to subvert the system and bypass security and integrity constraints.” 
“The
  system must not have features that allow you to subvert database structure
  integrity. Basically, the system must not include back doors that let you
  cheat the system for features such as administrative privileges or data
  constraints.” 
“There
  should be no way to modify the database structure other than through the
  multiple row database language (like SQL).” 
Overall, there should not
  be a way in any form to violate the integrity constraints defined on a
  database. Only the language/sublanguage which was used to define those constraints
  can be able to redefine them. If we would say that a low level language is
  supported by a RDBMS, then it should not be possible for that low level
  language to bypass any integrity constraints defined in a high level language. | 
| 
Example violations of this rule | 
SQL Server
  2008 violates this through Bulk copy and Disabling constraints and triggers options. | 
| 
Some DBMS that fulfills this property | 
SQL Server, Oracle | 
