1. 程式人生 > >OCP-1Z0-052-V8 02-10題

OCP-1Z0-052-V8 02-10題

10. Examine the following statement that is used to modify the constraint on the SALES table:

SQL> ALTER TABLE SALES MODIFY CONSTRAINT pk DISABLE VALIDATE;

Which three statements are true regarding the above command? (Choose three.)

A.The constraint remains valid.

B.The index on the constraint is dropped.

C.It allows the loading of data into the table using SQL *Loader.

D.New data conforms to the constraint, but existing data is not checked

E.It allows the data manipulation on the table using INSERT/UPDATE/DELETE SQL statements.

Answer: ABC

答案解析:

參考:http://blog.csdn.net/rlhua/article/details/12251961

這道題,可用排除法來做,D:屬於ENABLE NOVALIDATE,E,不能對已存在的資料做update

所以,只能選擇ABC

 

簡單來講,DISABLE 和ENABLE 是針對新增的資料是否符合約束,NOVALIDATE 和VALIDATE是針對已經存在的資料是否符合約束。

題中是DISABLE VALIDATE即是針對新增的資料可以不符合約束,但是已經存在的資料要滿足約束。

可以使用排除法,D是屬於.ENABLENOVALIDATE

E,不能修改已經存在資料,錯誤。

C正確,是因為對新增的資料不限制,沒有約束。

A正確,是因為DISABLE VALIDATE對現有的資料還有約束。

B呢?

約束條件狀態

為了更好地處理資料可能暫時違反約束條件的情況,可將約束條件指定為不同的狀態。可以啟用(ENABLE) 或禁用(DISABLE) 完整性約束條件。 如果啟用約束條件,在資料庫中輸入或更新資料時就會檢查資料。此時,禁止輸入不符合約束條件規則的資料。 如果禁用約束條件,則可以在資料庫中輸入不符合規則的資料。 完整性約束條件可處於以下一種狀態: • DISABLE NOVALIDATE • DISABLE VALIDATE • ENABLE NOVALIDATE • ENABLE VALIDATE DISABLE NOVALIDATE:不檢查新資料和現有資料,因此這些資料可能不符合約束條件。 當資料來自驗證過的源,而且表是隻讀表時,通常會使用此狀態。因此,不會將新資料輸入表中。在已清理了資料的資料倉庫環境中使用NOVALIDATE。此時不需要進行驗證,因而可以節省很多時間。 DISABLE VALIDATE:如果約束條件處於此狀態, 則不允許對有約束條件的列進行任何修改。因為如果在驗證現有資料後,又允許將未經檢查的資料輸入表中,就會出現不一致的情況。通常,在必須驗證現有資料但不進行修改時,以及不需要索引來提高效能時,可使用此狀態。 ENABLE NOVALIDATE:新資料符合約束條件,但現有資料處於未知狀態。通常在確信表中只存在純淨資料和符合規則的資料的情況下使用該狀態,此時不需要進行驗證。但是,不允許將違反規則的新資料輸入到系統中。 ENABLE VALIDATE:新資料與現有資料均符合約束條件。這是約束條件的典型狀態和預設狀態。

You can specify that a constraint is enabled (ENABLE) or disabled (DISABLE). If a constraint is enabled, data is checked as it is entered or updated in the database, and data that does not conform to the constraint is prevented from being entered. If a constraint is disabled, then data that does not conform can be allowed to enter the database.

Additionally, you can specify that existing data in the table must conform to the constraint (VALIDATE). Conversely, if you specifyNOVALIDATE, you are not ensured that existing data conforms.

An integrity constraint defined on a table can be in one of the following states:

 
  • ENABLE, VALIDATE

  • ENABLE, NOVALIDATE

  • DISABLE, VALIDATE

  • DISABLE, NOVALIDATE

官方參考: http://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses002.htm#i1002038  

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net