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

时间:2009-09-03 17:53:35

标签: sql oracle rdbms

最近我正在阅读关于Codd's 12 Rules的内容,我理解除了第12号以外的所有内容,即“非颠覆”规则。如果有人能够解释我的规则(最好使用一个例子),这将非常有帮助。

感谢。

2 个答案:

答案 0 :(得分:10)

  

规则12:非转换规则:

     

如果系统提供低级别(一次记录)接口,那么   该接口不能用于   颠覆系统,例如,   绕过关系安全或   诚信约束。

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

答案 1 :(得分:5)

Michael说的是什么,也适用于散装装载机。

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

其他DBMS产品都有批量加载器,其中一些允许颠覆,以加快批量加载。

规则12禁止这样做。