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
|