2009-09-03 30 views
5

最近我在讀關於Codd's 12 Rules,我瞭解除12號以外的所有「非顛覆」規則。如果任何人都可以解釋我的規則(最好使用一個例子),那會很有幫助。科德的「非顛覆規則」是什麼意思?

謝謝。

+0

該死!有一段時間,我對Codd和Subversion的關係感到困惑。在這個問題上的上層「Subversion」是責備:)有人可以編輯它嗎? (以避免進一步混淆像我這樣的人) – 2009-09-03 18:29:32

+0

@Vijay:是的,我也很困惑。編輯。 – 2009-09-03 18:39:57

回答

10

規則12:本nonsubversion規則:

如果系統提供了一個低電平(記錄在一次一個)接口,然後 該接口不能用來 顛覆系統中,用於例如,繞過關係安全性或 完整性約束的 。

比方說,您定義列上的非空約束。您可以繞過RDBMS(通過使用低級別Oracle提供的實用程序API)在該列中插入空值?如果是這樣,你違反了這條規則。

5

邁克爾說的,也適用於散裝裝載機。

讓我們假設SQL * Loader允許您將行批量加載到表中,而不檢查行是否重複表中的行,違反了唯一約束。這相當於顛覆了模式中表達的規則。

其他DBMS產品有散裝裝載機,其中一些允許顛覆,以加快散裝裝載。

規則12禁止這一點。