Codd的"非颠覆规则"是什么意思?

Chi*_*hah 5 sql oracle rdbms

最近我读到了Codd的12条规则,除了12号之外,我理解了所有的"非颠覆"规则.如果有人能解释我的规则(最好使用一个例子),那将非常有帮助.

谢谢.

Mic*_*tta 10

规则12:非转换规则:

如果系统提供低级别(一次一个记录)接口,则该接口不能用于破坏系统,例如,绕过关系安全性或完整性约束.

假设您在列上定义了非空约束.您是否可以绕过RDBMS(例如,使用Oracle提供的低级实用程序API)在该列中插入null?如果是这样,你就违反了这条规则.


Wal*_*tty 5

迈克尔说的,也适用于散装装载机.

假设SQL*Loader允许您将行批量加载到表中,而不检查行是否复制了表中已有的行,这违反了唯一约束.这相当于颠覆了模式中表达的规则.

其他DBMS产品有批量装载机,其中一些允许颠覆,以加快批量装载.

规则12禁止这样做.