最近我正在阅读关于Codd's 12 Rules的内容,我理解除了第12号以外的所有内容,即“非颠覆”规则。如果有人能够解释我的规则(最好使用一个例子),这将非常有帮助。
感谢。
答案 0 :(得分:10)
规则12:非转换规则:
如果系统提供低级别(一次记录)接口,那么 该接口不能用于 颠覆系统,例如, 绕过关系安全或 诚信约束。
假设您在列上定义了非空约束。您是否可以绕过RDBMS(例如,使用Oracle提供的低级实用程序API)在该列中插入null?如果是这样,你违反了这条规则。
答案 1 :(得分:5)
Michael说的是什么,也适用于散装装载机。
假设SQL * Loader允许您将行批量加载到表中,而不检查行是否复制了表中已有的行,这违反了唯一约束。这相当于颠覆了模式中表达的规则。
其他DBMS产品都有批量加载器,其中一些允许颠覆,以加快批量加载。
规则12禁止这样做。