資源描述:
《數(shù)據(jù)庫(kù)系統(tǒng)概論第五章章數(shù)據(jù)庫(kù)完整性剖析課件.ppt》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第五章數(shù)據(jù)庫(kù)完整性要點(diǎn)和難點(diǎn)數(shù)據(jù)庫(kù)完整性的含義數(shù)據(jù)庫(kù)完整性控制方法SQLServer2000中的完整性控制第五章數(shù)據(jù)庫(kù)完整性數(shù)據(jù)庫(kù)的完整性是指:數(shù)據(jù)的正確性和相容性數(shù)據(jù)庫(kù)的安全性是指:保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但它們又密切相關(guān)完整性防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù)(即垃圾進(jìn)垃圾出),安全性防止惡意破壞和非法存取(即非法用戶(hù)和操作)。密切相關(guān)表現(xiàn)在可采用相同的機(jī)制來(lái)實(shí)現(xiàn)完整性和安全性。第五章數(shù)據(jù)庫(kù)完整性為了維護(hù)數(shù)據(jù)庫(kù)的完整性,DBMS必須能夠:1、提供定義完整性約束條件的機(jī)制2、提供完整性檢查的方法3、
2、違約處理完整性定義與檢查控制由DBMS實(shí)現(xiàn),不必由應(yīng)用程序來(lái)完成,從而減輕了應(yīng)用程序員的負(fù)擔(dān)。目前的關(guān)系系統(tǒng)中對(duì)違反實(shí)體完整性和用戶(hù)自定義完整性一般采用拒絕執(zhí)行方式。第五章數(shù)據(jù)庫(kù)完整性5.1實(shí)體完整性實(shí)體完整性在CREATETABLE中用PRIMARYKEY定義,例如:CREATETABLESC(SnoCHAR(9),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(Sno,Cno))以后每當(dāng)用戶(hù)程序?qū)颈聿迦胍粋€(gè)元組或修改一個(gè)元組的主碼時(shí),DBMS將按照實(shí)體完整性規(guī)則自動(dòng)進(jìn)行檢查,包括:1、檢查主碼值是否唯一,若不唯一則拒絕插入或修改2、檢查
3、各主屬性是否為空,只要有一個(gè)為空就拒絕插入或修改第五章數(shù)據(jù)庫(kù)完整性5.2參照完整性參照完整性在CREATETABLE中用FOREIGNKEY定義外碼,用REFERENCES指明被參照表的主碼。實(shí)現(xiàn)參照完整性時(shí)要考慮的幾個(gè)問(wèn)題1、外碼能否接受空值外碼在本關(guān)系中是主屬性時(shí)不能取空值2、被參照關(guān)系中刪除元組時(shí)的違約處理級(jí)聯(lián)刪除、拒絕刪除、置空刪除(不一定可以)3、被參照關(guān)系中修改元組的主碼時(shí)的違約處理級(jí)聯(lián)修改、拒絕修改、置空修改(不一定可以)4、參照關(guān)系中插入元組時(shí)的違約處理:拒絕插入5、參照關(guān)系中修改元組的外碼時(shí)的違約處理:拒絕修改第十章數(shù)據(jù)庫(kù)安全性10.3SQLServ
4、er2000中完整性一、CREATETABLECREATETABLE[database_name.[owner].
5、owner.]table_name({
6、column_nameAScomputed_column_expression
7、::=[CONSTRAINTconstraint_name]}
8、[{PRIMARYKEY
9、UNIQUE}[,...n])::={column_namedata_type}[COLLATE][[D
10、EFAULTconstant_expression]
11、[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]][ROWGUIDCOL][][...n]第十章數(shù)據(jù)庫(kù)安全性10.3SQLServer2000中完整性::=[CONSTRAINTconstraint_name]{[NULL
12、NOTNULL]
13、[{PRIMARYKEY
14、UNIQUE}[CLUSTERED
15、NONCLUSTERED][WITHFILLFACTOR=fillfactor][ON{fil
16、egroup
17、DEFAULT}]]]
18、[[FOREIGNKEY]REFERENCESref_table[(ref_column)][ONDELETE{CASCADE
19、NOACTION}][ONUPDATE{CASCADE
20、NOACTION}][NOTFORREPLICATION]]
21、CHECK[NOTFORREPLICATION](logical_expression)}第十章數(shù)據(jù)庫(kù)安全性10.3SQLServer2000中完整性::=[CONSTRAINTconstraint_name]{[{PRIMARYKEY
22、UNIQUE}[
23、CLUSTERED
24、NONCLUSTERED]{(column[ASC
25、DESC][,...n])}[WITHFILLFACTOR=fillfactor][ON{filegroup
26、DEFAULT}]]
27、FOREIGNKEY[(column[,...n])]REFERENCESref_table[(ref_column[,...n])][ONDELETE{CASCADE
28、NOACTION}][ONUPDATE{CASCADE
29、NOACTION}][NOTFORREPLICATION]
30、CHECK[NOTFORREPLICATION](search_c