简体   繁体   中英

What does Codd's 'non-subversion rule' mean?

Recently I was reading about Codd's 12 Rules , and I understood all except number 12, the 'non-subversion' rule. If anyone can explain me the rule (using an example, preferably), that would be very helpful.

Thanks.

Rule 12: The nonsubversion 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.

Let's say you define a non-null constraint on a column. Can you bypass the RDBMS (by, say, using a low-level Oracle-provided utility API) to insert a null in that column? If so, you've violated that rule.

What Michael said, and also it applies to bulk loaders.

Let's say that SQL*Loader allowed you to bulk load rows into a table, without checking to see whether the rows duplicate rows already in the table, in violation of a unique constraint. This would amount to subversion of the rules expressed in the schema.

Other DBMS products have bulk loaders, and some of them permit subversion, in order to speed up bulk loading.

Rule 12 prohibits this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM