《數(shù)據(jù)庫原理及應(yīng)用》PPT課件
《《數(shù)據(jù)庫原理及應(yīng)用》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫原理及應(yīng)用》PPT課件(112頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 仲 愷 數(shù) 據(jù) 庫 原 理 及 應(yīng) 用Principles and Applications of the Database 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性仲 愷 農(nóng) 業(yè) 工 程 學(xué) 院 計 算 機 科 學(xué) 與 工 程 學(xué) 院 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性 v本 章 導(dǎo) 讀 本 章 主 要 介 紹 數(shù) 據(jù) 庫 的 安 全 性 和 完 整 性 , 包 括數(shù) 據(jù) 庫 安 全 性 的 定 義 , 數(shù) 據(jù) 庫 安 全 性 控 制 采 取的 一 些 措 施 , 數(shù) 據(jù) 庫 完 整 性 的 定 義 , 完 整 性 約束 條 件 的 類 型 , 完 整 性 控 制 機
2、 制 , 并 用 SQL語句 給 出 了 如 何 描 述 授 權(quán) 、 角 色 、 建 立 視 圖 、 約束 以 及 觸 發(fā) 器 的 方 式 等 。 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性v重 點 : 1 安 全 性 的 基 本 概 念 2 完 整 性 的 基 本 概 念v難 點 : 1 域 完 整 性 控 制 方 法 2 實 體 完 整 性 控 制 方 法 3. 參 照 完 整 性 控 制 方 法 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性v本 章 要 點 安 全 性 和 完 整 性 的 基 本 概 念 數(shù) 據(jù) 庫 系 統(tǒng) 的 6種 安 全 性 技 術(shù) 域 完 整 性 控 制
3、方 法 實 體 完 整 性 控 制 方 法 參 照 完 整 性 控 制 方 法 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性6.1 概 述6.2 數(shù) 據(jù) 庫 的 安 全 性6.3 數(shù) 據(jù) 庫 的 完 整 性6.4 SQL的 完 整 性 控 制本 章 小 結(jié) 6.1 概 述 數(shù) 據(jù) 庫 的 數(shù) 據(jù) 保 護 主 要 包 括 數(shù) 據(jù) 庫 的 安 全 性 和 完整 性 保 護 機 制 。 安 全 性 : 就 是 要 保 證 數(shù) 據(jù) 庫 中 數(shù) 據(jù) 的 安 全 , 防 止未 授 權(quán) 用 戶 隨 意 修 改 數(shù) 據(jù) 庫 中 的 數(shù) 據(jù) , 確 保 數(shù) 據(jù)的 安 全 。完 整 性 : 是 數(shù) 據(jù) 庫 的
4、 一 個 重 要 特 征 , 也 是 保 證 數(shù)據(jù) 庫 中 的 數(shù) 據(jù) 切 實 有 效 、 防 止 錯 誤 、 實 現(xiàn) 商 業(yè) 規(guī)則 的 一 種 重 要 機 制 。 6.1 概 述防 范 對 象 :安 全 性 的 防 范 對 象 :非 法 用 戶 和 非 法 操 作完 整 性 的 防 范 對 象 :是 不 合 法 的 語 義 數(shù) 據(jù) 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性6.1 概 述6.2 數(shù) 據(jù) 庫 的 安 全 性6.3 數(shù) 據(jù) 庫 的 完 整 性6.4 SQL的 完 整 性 控 制本 章 小 結(jié) 6.2 數(shù) 據(jù) 庫 的 安 全 性 安 全 性 問 題 是 計 算 機 系 統(tǒng) 中
5、 普 遍 存 在 的 一 個 問 題 ,而 在 數(shù) 據(jù) 庫 系 統(tǒng) 中 顯 得 尤 為 突 出 。 原 因 : 數(shù) 據(jù) 庫 系 統(tǒng) 中 大 量 數(shù) 據(jù) 集 中 存 放 , 而 且 為 許多 最 終 用 戶 直 接 共 享 。 數(shù) 據(jù) 庫 系 統(tǒng) 建 立 在 操 作 系 統(tǒng) 之上 , 而 操 作 系 統(tǒng) 是 計 算 機 系 統(tǒng) 的 核 心 , 因 此 數(shù) 據(jù) 庫 系統(tǒng) 的 安 全 性 與 計 算 機 系 統(tǒng) 的 安 全 性 息 息 相 關(guān) 。 6.2 數(shù) 據(jù) 庫 的 安 全 性 在 一 般 計 算 機 系 統(tǒng) 中 , 安 全 措 施 是 一 層 一 層 設(shè) 置 的 ,下 圖 是 常 見 的 計
6、算 機 系 統(tǒng) 安 全 模 型 。 用 戶 DBMS OS DB用 戶 標(biāo) 識和 鑒 別 存 取 控 制 操 作 系 統(tǒng)安 全 保 護 密 碼 存 儲 6.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.1 用 戶 標(biāo) 識 與 鑒 別 用 戶 標(biāo) 識 與 鑒 別 是 系 統(tǒng) 提 供 的 最 外 層 安 全 保 護措 施 。 當(dāng) 用 戶 進 入 數(shù) 據(jù) 庫 系 統(tǒng) 時 , 需 要 提 供 用 戶 的 標(biāo)識 , 系 統(tǒng)
7、根 據(jù) 標(biāo) 識 鑒 別 此 用 戶 是 不 是 合 法 用 戶 :v對 于 合 法 的 用 戶 , 進 一 步 開 放 數(shù) 據(jù) 庫 的 訪 問 權(quán) 限 ;v對 于 非 法 用 戶 , 則 拒 絕 該 用 戶 對 數(shù) 據(jù) 庫 進 行 存 取 操作 。 6.2.1 用 戶 標(biāo) 識 與 鑒 別用 戶 標(biāo) 識 與 鑒 別 的 方 法 比 較 多 , 常 用 的 有 下 幾 種 : 1 輸 入 用 戶 名 標(biāo) 識 合 法 身 份2 回 答 用 戶 口 令 標(biāo) 識 身 份3 通 過 回 答 隨 機 數(shù) 的 運 算 結(jié) 果 標(biāo) 識 合 法 身 份4 通 過 個 人 特 征 鑒 別 標(biāo) 識 合 法 身 份 6
8、.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.2 存 取 控 制 數(shù) 據(jù) 庫 安 全 性 所 關(guān) 心 的 主 要 是 DBMS的 存 取控 制 機 制 。 存 取 控 制 是 確 保 具 有 授 權(quán) 資 格 的 用 戶訪 問 數(shù) 據(jù) 庫 的 權(quán) 限 , 同 時 使 得 所 有 未 被 授 權(quán) 的 人員 無 法 訪 問 數(shù) 據(jù) 庫 的 機 制 。 1 存 取 控 制 機 制 的 構(gòu) 成 部 分( 1) 定 義 用
9、戶 權(quán) 限 : 用 戶 權(quán) 限 是 指 用 戶 對 于 數(shù) 據(jù) 對 象能 夠 執(zhí) 行 的 操 作 種 類 。 進 行 用 戶 權(quán) 限 定 義 , 系 統(tǒng) 必 須 提 供有 關(guān) 用 戶 定 義 權(quán) 限 的 語 言 。( 2) 系 統(tǒng) 進 行 權(quán) 限 檢 查 : 每 當(dāng) 用 戶 發(fā) 出 存 取 數(shù) 據(jù) 庫的 操 作 請 求 后 , DBMS首 先 查 找 數(shù) 據(jù) 字 典 , 進 行 合 法 權(quán) 限 檢查 , 如 果 用 戶 的 操 作 請 求 沒 有 超 出 其 數(shù) 據(jù) 操 作 權(quán) 限 , 則 準(zhǔn) 予 執(zhí) 行 其 數(shù) 據(jù) 操 作 ; 否 則 , 拒 絕 其 執(zhí) 行 此 操 作 。 6.2.2 存
10、取 控 制2 存 取 機 制 的 類 別( 1) 自 主 存 取 控 制 : 在 自 主 存 取 控 制 方 法 中 , 用 戶 對于 不 同 的 對 象 有 不 同 的 存 取 權(quán) 限 ; 不 同 的 用 戶 對 同 一 對 象的 存 取 權(quán) 限 也 不 同 ; 用 戶 也 可 以 將 自 己 擁 有 的 權(quán) 限 傳 授 給其 他 用 戶 。( 2) 強 制 存 取 控 制 : 在 強 制 存 取 控 制 中 , 每 一 個 數(shù)據(jù) 對 象 被 標(biāo) 以 一 定 的 密 級 ; 每 一 個 用 戶 也 被 授 予 某 個 級 別的 訪 問 許 可 證 ; 對 于 任 意 一 個 對 象 , 只
11、有 具 有 合 法 許 可 證的 用 戶 才 可 以 存 取 。 與 自 主 存 取 控 制 相 比 , 強 制 存 取 控 制比 較 嚴(yán) 格 。 6.2.2 存 取 控 制3. 自 主 訪 問 控 制 方 法( 1) 用 戶 分 類 與 權(quán) 限 對 于 一 個 數(shù) 據(jù) 庫 , 不 同 的 用 戶 有 不 同 的 訪 問 要 求 和使 用 權(quán) 限 。 一 般 可 以 將 數(shù) 據(jù) 庫 的 用 戶 分 為 四 類 :數(shù) 據(jù) 庫 管 理 員數(shù) 據(jù) 庫 對 象 的 屬 主一 般 數(shù) 據(jù) 庫 用 戶公 共 用 戶 6.2.2 存 取 控 制 數(shù) 據(jù) 庫 管 理 員 (Database Administr
12、ator, DBA) 擁 有 支 配 整 個 數(shù) 據(jù) 庫 資 源 的 特 權(quán) , 對 數(shù) 據(jù) 庫擁 有 最 大 的 特 權(quán) , 因 而 也 對 數(shù) 據(jù) 庫 負(fù) 有 特 別 的 責(zé)任 。 DBA特 權(quán) 命 令 包 括 給 各 個 獨 立 的 帳 戶 、 用 戶 或者 用 戶 組 授 予 特 權(quán) 和 回 收 特 權(quán) , 以 及 把 某 個 適 當(dāng)?shù)?安 全 分 類 級 別 指 派 給 某 個 用 戶 帳 戶 。 6.2.2 存 取 控 制數(shù) 據(jù) 庫 對 象 的 屬 主 是 數(shù) 據(jù) 庫 的 創(chuàng) 建 者 , 他 除 了 一 般 數(shù) 據(jù) 庫 用 戶 擁有 的 權(quán) 力 外 , 還 可 以 授 予 或 收
13、回 其 他 用 戶 對 其 所 創(chuàng)建 的 數(shù) 據(jù) 庫 的 存 取 權(quán) 。一 般 數(shù) 據(jù) 庫 用 戶 就 是 通 過 授 權(quán) 可 對 數(shù) 據(jù) 庫 進 行 操 作 的 用 戶 。 6.2.2 存 取 控 制公 共 用 戶 是 為 了 方 便 共 享 數(shù) 據(jù) 操 作 而 設(shè) 置 的 , 它 代 表 全體 數(shù) 據(jù) 庫 用 戶 , 如 果 把 某 個 數(shù) 據(jù) 對 象 的 某 項 操 作 授權(quán) 給 公 共 用 戶 , 則 一 個 合 法 的 數(shù) 據(jù) 庫 用 戶 都 能 進 行該 項 數(shù) 據(jù) 操 作 。 6.2.2 存 取 控 制 用 戶 使 用 數(shù) 據(jù) 庫 的 方 式 稱 為 權(quán) 限 。 使 用 數(shù) 據(jù)庫
14、 的 權(quán) 限 分 為 二 類 : 訪 問 數(shù) 據(jù) 特 權(quán) 和 修 改 數(shù) 據(jù) 庫模 式 的 特 權(quán) 。訪 問 數(shù) 據(jù) 特 權(quán) 包 括 :讀 數(shù) 據(jù) 權(quán) 限 、 插 入 數(shù) 據(jù) 權(quán) 限 、 修 改 數(shù) 據(jù) 權(quán) 限 和 刪 除 數(shù)據(jù) 權(quán) 限 。修 改 數(shù) 據(jù) 庫 模 式 的 特 權(quán) 包 括 :創(chuàng) 建 和 刪 除 索 引 的 索 引 權(quán) 限 , 創(chuàng) 建 新 表 的 資 源 權(quán) 限 ,允 許 修 改 表 結(jié) 構(gòu) 的 修 改 權(quán) 限 , 允 許 撤 銷 關(guān) 系 表 的 撤 銷權(quán) 限 等 。 6.2.2 存 取 控 制( 2) SQL的 數(shù) 據(jù) 控 制 功 能 SQL對 自 主 存 取 控 制 提 供 了
15、 支 持 , 其 DCL主 要 是GRANT( 授 權(quán) ) 語 句 和 REVOKE( 收 權(quán) ) 語 句 。 授 權(quán) 由 于 不 同 的 用 戶 對 數(shù) 據(jù) 庫 具 有 不 同 的 存 取 權(quán) , 因此 為 了 保 證 用 戶 只 能 訪 問 他 有 權(quán) 存 取 的 數(shù) 據(jù) , 必 須 對每 個 用 戶 授 予 不 同 的 數(shù) 據(jù) 庫 存 取 權(quán) 。 授 權(quán) 在 SQL中 , 授 權(quán) 語 句 有 兩 種 : 授 予 權(quán) 限 語 句和 授 予 角 色 語 句 。 一 個 角 色 是 一 組 被 命 名 的 零 個 或 多 個 特 權(quán) 。 授 權(quán)一 個 角 色 給 一 個 用 戶 , 則 允 許
16、 該 用 戶 使 用 被 授 權(quán) 的 角色 所 擁 有 的 每 一 個 特 權(quán) 。 用 戶 與 角 色 之 間 存 在 多 對 多的 聯(lián) 系 ; 一 個 用 戶 允 許 被 授 予 多 個 角 色 使 用 , 同 一 個角 色 的 使 用 被 授 權(quán) 予 多 個 用 戶 。 一 個 角 色 的 使 用 也 可以 被 授 權(quán) 予 另 一 個 角 色 。 授 予 權(quán) 限 語 句語 句 基 本 形 式 為 : GRANT 權(quán) 限 ON 數(shù) 據(jù) 對 象 TO 受 權(quán) 者 WITH GRANT OPTION 數(shù) 據(jù) 對 象 : : = 基 表 視 圖 屬 性 受 權(quán) 者 : : = PUBLIC 授 權(quán)
17、 ID 語 義 : 將 某 作 用 在 指 定 操 作 對 象 上 的 操 作 權(quán) 限 , 限 授予 指 定 的 用 戶 。 ( 即 數(shù) 據(jù) 庫 對 象 的 訪 問 權(quán) 限 的 管 理 ) 如 果 指 定 WITH GRANT OPTION子 句 , 則 獲 得 某 種 權(quán) 限的 用 戶 可 以 把 這 種 權(quán) 限 在 授 予 其 他 用 戶 。 如 沒 有 指 定該 子 句 , 獲 得 授 權(quán) 的 用 戶 將 不 能 傳 播 權(quán) 限 (轉(zhuǎn) 授 )。 授 予 權(quán) 限 語 句【 例 6-1】 在 數(shù) 據(jù) 庫 XSBOOK中 , 將 表 STUDENT的SELECT操 作 權(quán) 限 授 予 所 有
18、的 用 戶 。注 意 : PUBLIC是 一 個 特 殊 的 保 留 字 , 代 替 該 數(shù) 據(jù) 庫 系統(tǒng) 的 全 體 用 戶 。 對 于 大 部 分 可 以 公 開 的 數(shù) 據(jù) , 可 以 一次 性 地 授 權(quán) 給 PUBLIC, 而 不 必 對 每 個 用 戶 逐 個 授 權(quán) 。GRANT SELECT ON TABLE STUDENT TO PUBLIC; 授 予 權(quán) 限 語 句【 例 6-2】 在 數(shù) 據(jù) 庫 XSBOOK中 , 將 表 STUDENT的 借 書 證號 、 姓 名 字 段 的 UPDATE權(quán) 限 授 予 給 liu。【 例 6-3】 將 對 表 STUDENT的 所 有
19、 操 作 特 權(quán) 授 予 liu。GRANT UPDATE( 借 書 證 號 , 姓 名 )ON STUDENT TO liu;GRANT ALL PRIVILEGES ON TABLE STUDENT TO liu; 授 予 權(quán) 限 語 句【 例 6-4】 將 對 表 STUDENT中 借 書 證 號 和 專 業(yè) 名 的INSERT特 權(quán) 授 予 liu, 并 允 許 他 將 此 特 權(quán) 轉(zhuǎn) 授 給其 他 用 戶 。GRANT INSERT( 借 書 證 號 , 專 業(yè) 名 )ON STUDENT TO liu WITH GRANT OPTION; 授 予 角 色 語 句該 語 句 基 本
20、形 式 為 (oracle)GRANT 角 色 ID , 角 色 ID TO 受 權(quán) 者 WITH ADMIN OPTION該 語 句 將 一 個 或 多 個 角 色 的 使 用 授 予 ,若 有 WITH ADMIN OPTION, 則 受 權(quán) 者 可 將 此角 色 轉(zhuǎn) 授 給 其 他 。 授 予 角 色 語 句 在 下 列 語 句 中 , Accounting_role, Import_role都 是己 建 立 的 角 色 ?!?例 6-5】 將 角 色 Accounting _role和 Import _role授 予所 有 的 用 戶 。GRANT Accounting _role,
21、Import_role TO PUBLIC; 授 予 角 色 語 句【 例 6-6】 將 角 色 Accounting _role授 予 用 戶 zhang,并 允 許 他 將 此 角 色 轉(zhuǎn) 授 給 其 他 人 。GRANT Accounting _role TO zhang WITH ADMIN OPTION; v將 用 戶 test加 入 至 角 色 managervExec sp_addrolemember manager,test v 用 戶 Jean 擁 有 表 Plan_Data。 Jean 將 表 Plan_Data 的 SELECT 權(quán) 限 授 予 Accounting 角
22、色 ( 指 定 WITH GRANT OPTION 子 句 ) 。 用 戶 Jill 是 Accounting 的 成 員 , 他 要 將 表 Plan_Data 上 的 SELECT 權(quán) 限 授 予 用 戶 Jack, Jack 不 是 Accounting 的 成 員 。因 為 對 表 Plan_Data 用 GRANT 語 句 授 予 其 他 用 戶 SELECT 權(quán)限 的 權(quán) 限 是 授 予 Accounting 角 色 而 不 是 顯 式 地 授 予 Jill, 不 能 因為 已 授 予 Accounting 角 色 中 成 員 該 權(quán) 限 , 而 使 Jill 能 夠 授 予 表的
23、 權(quán) 限 。 Jill 必 須 用 AS 子 句 來 獲 得 Accounting 角 色 的 授 予 權(quán) 限 。/* User Jean */GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION/* User Jill */GRANT SELECT ON Plan_Data TO Jack AS Accounting 6.2.2 存 取 控 制 當(dāng) 用 戶 將 某 些 權(quán) 限 授 給 其 他 用 戶 后 , 有 時 還 需要 把 權(quán) 限 收 回 。 收 權(quán) 需 要 使 用 REVOKE語 句 。 收 回 權(quán) 限 的 REVOKE語
24、 句 : 收 回 角 色 的 REVOKE語 句 : 收 回 權(quán) 限REVOKE 權(quán) 限 ON 數(shù) 據(jù) 對 象 FROM 受 權(quán) 者 , 受 權(quán) 者 REVOKE 角 色 ID FROM 受 權(quán) 者 , 受 權(quán) 者 6.2.2 存 取 控 制【 例 6-7】 將 liu對 STUDENT表 的 INSERT權(quán) 限 收 回 。 REVOKE INSERT ON STUDENT FROM liu 6.2.2 存 取 控 制 ( 3) 自 主 存 取 控 制 的 不 足 之 處 自 主 存 取 控 制 能 夠 通 過 授 權(quán) 機 制 有 效 地 控 制 用 戶對 敏 感 數(shù) 據(jù) 的 存 取 , 但
25、也 存 在 著 一 定 的 缺 陷 , 其 主 要問 題 是 系 統(tǒng) 對 權(quán) 限 的 授 予 狀 況 無 法 進 行 有 效 的 控 制 ,因 而 可 能 造 成 數(shù) 據(jù) 的 無 意 泄 漏 。 但 是 , 強 制 存 取 控 制 方 法 可 以 有 效 地 解 決 這 一 問 題 。 6.2.2 存 取 控 制 所 謂 MAC是 指 系 統(tǒng) 為 保 證 更 高 程 度 的 安 全 性 ,它 不 是 用 戶 能 直 接 感 知 或 進 行 控 制 的 。 MAC適 用 于那 些 對 數(shù) 據(jù) 有 嚴(yán) 格 而 固 定 密 級 分 類 的 部 門 , 例 如 軍事 部 門 或 政 府 部 門 。4
26、強 制 存 取 控 制 方 法 ( MAC) 在 MAC中 , DBMS所 管 理 的 全 部 實 體 被 分 為 主 體和 客 體 兩 大 類 。 6.2.2 存 取 控 制 主 體 系 統(tǒng) 中 的 活 動 實 體 , 既 包 括 DBMS所 管 理的 實 際 用 戶 , 也 包 括 代 表 用 戶 的 各 進 程 。 客 體 系 統(tǒng) 中 的 被 動 實 體 , 是 受 主 體 操 縱 的 , 包括 文 件 、 基 表 、 索 引 、 視 圖 等 等 。 6.2.2 存 取 控 制 當(dāng) 某 一 用 戶 ( 或 一 主 體 ) 以 標(biāo) 記 label注 冊入 系 統(tǒng) 時 , 系 統(tǒng) 要 求 他
27、 對 任 何 客 體 的 存 取 必 須 遵循 如 下 規(guī) 則 : ( 1) 僅 當(dāng) 主 體 的 許 可 證 級 別 大 于 或 等 于 客 體 的 密 級時 , 該 主 體 才 能 讀 取 相 應(yīng) 的 客 體 ; ( 2) 僅 當(dāng) 主 體 的 許 可 證 級 別 等 于 客 體 的 密 級 時 , 該主 體 才 能 寫 相 應(yīng) 的 客 體 。 6.2.2 存 取 控 制一 般 強 制 存 取 控 制 采 用 以 下 幾 種 方 法 實 現(xiàn) :( 1) 限 制 訪 問 控 制( 2) 過 程 控 制( 3) 系 統(tǒng) 限 制 6.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒
28、 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.3 視 圖 視 圖 技 術(shù) 是 當(dāng) 前 數(shù) 據(jù) 庫 技 術(shù) 中 保 持 數(shù) 據(jù) 庫 安 全 性的 重 要 手 段 之 一 。 通 過 為 不 同 的 用 戶 定 義 不 同 的 視 圖 ,可 以 將 要 保 密 的 數(shù) 據(jù) 對 無 權(quán) 存 取 的 用 戶 隱 藏 起 來 , 從而 自 動 地 給 數(shù) 據(jù) 提 供 一 定 程 度 的 安 全 保 護 。 例 如 , 給某 用 戶 定 義 了 一 個 只 讀 視 圖 , 并 且 這 個 視
29、 圖 的 數(shù) 據(jù) 來源 于 關(guān) 系 R, 則 此 用 戶 只 能 讀 R中 的 有 關(guān) 信 息 , 數(shù) 據(jù) 庫中 一 切 其 他 信 息 對 他 都 是 隱 藏 的 。 6.2.3 視 圖【 例 6-8】 允 許 一 個 用 戶 查 詢 學(xué) 生 表 STUDENT的 記錄 , 但 是 只 允 許 他 查 詢 計 算 機 專 業(yè) 學(xué) 生 的 情 況 。CREATE VIEW STUDENT_SUBJECT AS SELECT 借 書 證 號 , 姓 名 , 專 業(yè) 名 , 性 別 , 出 生 時間 , 借 書 數(shù) FROM STUDENT WHERE 專 業(yè) 名 計 算 機 使 用 這 個 視
30、圖 STUDENT_SUBJECT的 用 戶 看 到 的 只 是 基本 表 STUDENT的 一 個 “ 水 平 子 集 ” , 或 稱 行 子 集 。 6.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.4 數(shù) 據(jù) 加 密 數(shù) 據(jù) 加 密 技 術(shù) 是 防 止 數(shù) 據(jù) 庫 中 數(shù) 據(jù) 在 存 儲 或者 傳 輸 中 失 密 的 有 效 手 段 。 加 密 的 基 本 思 想 是 根 據(jù) 一 定 的 算 法 將 原 始
31、數(shù)據(jù) ( 明 文 ) 變 換 成 不 可 直 接 識 別 的 格 式 ( 密 文 ) ,從 而 使 得 不 知 道 解 密 算 法 的 人 無 法 獲 知 數(shù) 據(jù) 的 內(nèi)容 。 這 樣 可 以 保 證 只 有 掌 握 了 密 鑰 的 用 戶 才 能 訪問 數(shù) 據(jù) , 而 且 即 使 數(shù) 據(jù) 被 非 法 地 從 數(shù) 據(jù) 庫 中 竊 取 ,或 者 在 數(shù) 據(jù) 傳 輸 過 程 中 被 截 取 , 竊 取 者 都 無 法 知道 密 碼 數(shù) 據(jù) 的 含 義 。 6.2.4 數(shù) 據(jù) 加 密 數(shù) 據(jù) 加 密 的 主 要 方 法 有 兩 種 :1 替 換 方 法該 方 法 使 用 密 鑰 ( Encrypti
32、on Key) 將 明 文 中 的 每一 個 字 符 轉(zhuǎn) 換 為 密 文 中 的 字 符 。2 置 換 方 法該 方 法 僅 將 明 文 的 字 符 按 不 同 的 順 序 重 新 排 列 。 6.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.5 跟 蹤 審 計 跟 蹤 審 計 ( Audit Trial) 是 一 種 監(jiān) 視 措 施 , 數(shù)據(jù) 庫 運 行 中 , DBMS跟 蹤 用 戶 對 一 些 敏 感 數(shù) 據(jù)
33、 的 存取 活 動 , 把 用 戶 對 數(shù) 據(jù) 庫 的 操 作 自 動 記 錄 下 來 放 入審 計 日 志 ( Audit Log) 中 , 有 許 多 DBMS的 跟 蹤審 計 記 錄 文 件 與 系 統(tǒng) 的 運 行 日 志 合 在 一 起 。 系 統(tǒng) 能利 用 這 些 審 計 跟 蹤 的 信 息 , 重 現(xiàn) 導(dǎo) 致 數(shù) 據(jù) 庫 現(xiàn) 狀 的一 系 列 事 件 。 6.2.5 跟 蹤 審 計 跟 蹤 審 計 的 記 錄 一 般 包 括 以 下 內(nèi) 容 : 請 求 ( 源文 本 ) 、 操 作 類 型 ( 如 修 改 、 查 詢 等 ) 、 操 作 終端 標(biāo) 識 與 操 作 者 標(biāo) 識 、 操
34、 作 日 期 和 時 間 、 操 作 所涉 及 的 對 象 ( 表 、 視 圖 、 記 錄 、 屬 性 等 ) 、 數(shù) 據(jù)的 前 映 象 和 后 映 象 。 DBMS提 供 相 應(yīng) 的 語 句 供 施 加和 撤 銷 跟 蹤 審 計 之 用 。 6.2 數(shù) 據(jù) 庫 的 安 全 性 6.2.1 用 戶 標(biāo) 識 與 鑒 別 6.2.2 存 取 控 制 6.2.3 視 圖 6.2.4 數(shù) 據(jù) 加 密 6.2.5 跟 蹤 審 計 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 統(tǒng) 計 數(shù) 據(jù) 庫 是 一 種 特 殊 類 型 的 數(shù) 據(jù) 庫 , 它 和一 般 的 數(shù)
35、 據(jù) 庫 相 比 , 有 很 多 共 同 點 , 但 是 也 有 許多 獨 特 之 處 。 統(tǒng) 計 數(shù) 據(jù) 庫 , 它 回 答 給 用 戶 的 只 能 是 統(tǒng) 計 信息 。 如 國 家 的 人 口 統(tǒng) 計 數(shù) 據(jù) 庫 、 經(jīng) 濟 統(tǒng) 計 數(shù) 據(jù) 庫等 。 統(tǒng) 計 數(shù) 據(jù) 庫 存 儲 了 大 量 敏 感 的 數(shù) 據(jù) , 但 只 給用 戶 提 供 這 些 原 始 數(shù) 據(jù) 的 統(tǒng) 計 數(shù) 據(jù) ( 如 平 均 值 、總 計 等 ) , 而 不 允 許 用 戶 查 看 單 個 的 原 始 數(shù) 據(jù) 。 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 用 戶 使 用 合 法 的 統(tǒng) 計 查 詢 可 以 推 斷
36、出 他 不 應(yīng) 了 解的 數(shù) 據(jù) 。例 如 , 一 個 學(xué) 生 想 要 知 道 另 一 個 學(xué) 生 A的 成 績 , 他可 以 通 過 查 詢 包 含 A在 內(nèi) 的 一 些 學(xué) 生 的 平 均 成 績 ,然 后 對 于 上 述 學(xué) 生 集 合 P, 他 可 用 自 己 的 學(xué) 號 取 代 A后 得 集 合 P 的 平 均 成 績 。 通 過 這 樣 兩 次 查 詢 得 到的 平 均 成 績 的 差 和 自 己 的 成 績 , 就 可 以 推 斷 出 學(xué) 生A的 成 績 。 6.2.6 統(tǒng) 計 數(shù) 據(jù) 庫 的 安 全 為 了 堵 塞 這 類 漏 洞 , 必 須 對 數(shù) 據(jù) 庫 的 訪 問 進行
37、推 斷 控 制 。 現(xiàn) 在 常 用 的 方 法 有 數(shù) 據(jù) 擾 動 、 查 詢控 制 和 歷 史 相 關(guān) 控 制 等 。 這 些 方 法 雖 然 都 獲 得 了應(yīng) 用 , 取 得 了 很 好 的 效 果 , 但 是 迄 今 為 止 , 統(tǒng) 計數(shù) 據(jù) 庫 的 安 全 問 題 尚 未 徹 底 解 決 。 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性6.1 概 述6.2 數(shù) 據(jù) 庫 的 安 全 性6.3 數(shù) 據(jù) 庫 的 完 整 性6.4 SQL的 完 整 性 控 制本 章 小 結(jié) 6.3 數(shù) 據(jù) 庫 的 完 整 性 。 數(shù) 據(jù) 庫 的 完 整 性 是 指 數(shù) 據(jù) 庫 中 數(shù) 據(jù) 的 正 確 性
38、和相 容 性 , 即 為 了 防 止 數(shù) 據(jù) 庫 中 存 在 不 符 合 語 義 的 數(shù)據(jù) , 防 止 錯 誤 信 息 的 輸 入 和 輸 出 。例 如 :學(xué) 生 的 學(xué) 號 一 定 是 唯 一 的 , 學(xué) 號 的 長 度 是 13至 15個字 符 串 ; 學(xué) 生 的 年 齡 是 整 數(shù) , 取 值 范 圍 為 11 45;當(dāng) 一 個 用 戶 向 數(shù) 據(jù) 庫 插 入 一 個 新 的 學(xué) 生 記 錄 或 修 改一 個 學(xué) 生 的 數(shù) 據(jù) 時 必 須 滿 足 這 些 條 件 。 6.3 數(shù) 據(jù) 庫 的 完 整 性 數(shù) 據(jù) 庫 的 完 整 性 保 證 了 真 實 反 映 現(xiàn) 實 世 界 , 凡是 已
39、 經(jīng) 失 真 的 數(shù) 據(jù) 都 可 以 說 其 完 整 性 受 到 了 破 壞 ,這 種 情 況 下 就 不 能 再 使 用 數(shù) 據(jù) 庫 , 否 則 可 能 造 成 嚴(yán)重 的 后 果 。完 整 性 受 破 壞 的 常 見 原 因 :1 錯 誤 的 數(shù) 據(jù)2 錯 誤 的 更 新 操 作3 并 發(fā) 訪 問4 各 種 硬 件 故 障5 人 為 的 破 壞 6.3 數(shù) 據(jù) 庫 的 完 整 性 6.3.1 完 整 性 的 語 義 約 束 6.3.2 完 整 性 語 義 檢 查 6.3.1 完 整 性 的 語 義 約 束 。 完 整 性 約 束 條 件 作 用 的 對 象 可 以 是 列 、 元 組 、 關(guān)
40、 系三 種 。 列 約 束 : 主 要 是 列 類 型 、 取 值 范 圍 、 精 度 、 排 序等 約 束 條 件元 組 約 束 : 是 元 組 中 各 個 字 段 間 的 聯(lián) 系 的 約 束 。 關(guān) 系 的 約 束 : 是 若 干 元 組 間 、 關(guān) 系 集 合 上 以 及 關(guān) 系間 的 聯(lián) 系 的 約 束 。 6.3.1 完 整 性 的 語 義 約 束 完 整 性 約 束 條 件 的 類 型 可 以 分 為 兩 大 類 型 : 靜 態(tài) 約 束 和 動 態(tài) 約 束 。 1 靜 態(tài) 約 束 靜 態(tài) 約 束 是 指 數(shù) 據(jù) 庫 每 一 確 定 狀 態(tài) 時 的 數(shù) 據(jù) 對象 所 應(yīng) 滿 足 的
41、約 束 條 件 , 它 是 反 映 數(shù) 據(jù) 庫 狀 態(tài) 合 理性 的 約 束 , 這 是 最 重 要 的 一 類 完 整 性 約 束 。 6.3.1 完 整 性 的 語 義 約 束根 據(jù) 約 束 作 用 的 對 象 的 不 同 , 又 可 分 為 下 面 三 種 : (1)靜 態(tài) 列 約 束 對 一 個 列 的 取 值 域 等 的 說 明 或 限 制 , 這 是 最 常見 、 最 容 易 實 現(xiàn) 的 一 類 完 整 性 約 束 , 它 包 括 以 下 幾 個方 面 : 對 數(shù) 據(jù) 類 型 的 約 束 , 例 如 , 數(shù) 據(jù) 的 類 型 、 長 度 、單 位 、 精 度 等 。 對 數(shù) 據(jù) 格
42、式 的 約 束 , 例 如 , 學(xué) 生 的 學(xué) 號 的 格 式 中前 四 位 表 示 入 學(xué) 年 份 , 中 間 三 位 為 院 號 +系 號 , 后 三位 為 班 級 號 +順 序 編 號 。 6.3.1 完 整 性 的 語 義 約 束 對 取 值 范 圍 或 取 值 集 合 的 約 束 , 例 如 , 大 學(xué) 本 科 學(xué)生 年 齡 范 圍 的 取 值 范 圍 為 11 45。 對 空 值 的 約 束 , 空 值 表 示 未 定 義 或 未 知 的 值 , 與 零值 和 空 格 不 同 。 有 的 列 允 許 空 值 , 有 的 不 允 許 ,例 如 , 規(guī) 定 學(xué) 生 的 姓 名 不 允
43、許 取 空 值 ; 學(xué) 號 成 績可 以 為 空 值 。 其 他 約 束 , 例 如 , 關(guān) 于 列 的 排 序 說 明 、 組 合 列 等 。 6.3.1 完 整 性 的 語 義 約 束(2) 靜 態(tài) 元 組 約 束 一 個 元 組 是 由 若 干 列 值 組 成 的 , 靜 態(tài) 元 組 約 束 規(guī)定 組 成 一 個 元 組 的 各 個 列 之 間 的 約 束 關(guān) 系 。 例 如 , 一 個 學(xué) 生 的 科 目 成 績 列 , 規(guī) 定 每 科 成 績 取值 不 得 低 于 0, 也 不 得 高 于 100。(3) 靜 態(tài) 關(guān) 系 約 束靜 態(tài) 關(guān) 系 約 束 反 映 了 一 個 關(guān) 系 中
44、各 個 元 組 之 間或 者 若 干 關(guān) 系 之 間 存 在 的 聯(lián) 系 或 約 束 。 它 包 括 : 6.3.1 完 整 性 的 語 義 約 束 實 體 完 整 性 約 束 。 即 關(guān) 鍵 字 段 的 值 不 為 空 。 參 照 完 整 性 約 束 。 即 一 個 關(guān) 系 的 外 碼 的 取 值 與 另一 個 關(guān) 系 的 關(guān) 鍵 字 的 值 有 關(guān) 。 函 數(shù) 依 賴 約 束 。 大 部 分 函 數(shù) 依 賴 約 束 都 在 關(guān) 系 模式 中 定 義 。 統(tǒng) 計 約 束 。 即 某 個 字 段 值 與 一 個 關(guān) 系 多 個 元 組 的統(tǒng) 計 值 之 間 的 約 束 關(guān) 系 。 例 如 對
45、學(xué) 生 平 均 成 績 的約 束 等 , 這 里 的 平 均 成 績 就 是 統(tǒng) 計 值 。 6.3.1 完 整 性 的 語 義 約 束 動 態(tài) 約 束 是 指 數(shù) 據(jù) 庫 從 一 種 狀 態(tài) 轉(zhuǎn) 變 為 另 一 種狀 態(tài) 時 , 新 、 舊 值 之 間 滿 足 的 約 束 條 件 , 它 反 映 了數(shù) 據(jù) 庫 狀 態(tài) 改 變 時 應(yīng) 遵 守 的 約 束 。 按 照 約 束 對 象 不同 , 它 又 分 為 下 面 三 種 。1 動 態(tài) 約 束(1) 動 態(tài) 列 約 束(2) 動 態(tài) 元 組 約 束(3) 動 態(tài) 關(guān) 系 約 束 6.3.1 完 整 性 的 語 義 約 束 動 態(tài) 列 約 束
46、規(guī) 定 修 改 列 定 義 或 列 值 時 應(yīng) 滿 足的 約 束 條 件 , 它 包 括 : 修 改 列 定 義 時 的 約 束 。 例 如 , 將 允 許 空 值 的 列改 為 不 允 許 空 值 時 , 如 果 該 列 目 前 已 存 在 空 值 ,則 拒 絕 這 種 修 改 。 修 改 列 值 時 的 約 束 。 修 改 列 值 時 需 要 參 照 其 舊值 , 并 且 新 舊 值 之 間 需 要 滿 足 某 種 約 束 條 件 。 例如 , 學(xué) 生 的 年 齡 只 能 增 長 。(1) 動 態(tài) 列 約 束 6.3.1 完 整 性 的 語 義 約 束 動 態(tài) 元 組 約 束 是 指 修
47、改 某 個 元 組 的 值 時 元 組中 的 各 個 字 段 之 間 要 滿 足 某 種 約 束 條 件 。 例 如 ,職 工 津 貼 不 得 高 于 個 人 基 本 工 資 的 20%等 。 (2) 動 態(tài) 元 組 約 束(3) 動 態(tài) 關(guān) 系 約 束 動 態(tài) 關(guān) 系 約 束 是 加 在 關(guān) 系 變 化 時 的 限 制 條 件 ,例 如 , 事 務(wù) 一 致 性 、 原 子 性 等 約 束 條 件 。 6.3 數(shù) 據(jù) 庫 的 完 整 性 6.3.1 完 整 性 的 語 義 約 束 6.3.2 完 整 性 語 義 檢 查 6.3.2 完 整 性 語 義 檢 查 現(xiàn) 代 數(shù) 據(jù) 庫 技 術(shù) 采 用
48、 對 數(shù) 據(jù) 完 整 性 的 語義 約 束 和 檢 查 來 保 護 數(shù) 據(jù) 庫 的 完 整 性 , 實 現(xiàn) 方 式 有 兩 種 : 一 種 是 通 過 定 義 和 使用 完 整 性 約 束 規(guī) 則 , 另 一 種 是 通 過 觸 發(fā) 器 和存 儲 過 程 來 實 現(xiàn) 。 第 6章 數(shù) 據(jù) 庫 安 全 性 和 完 整 性6.1 概 述6.2 數(shù) 據(jù) 庫 的 安 全 性6.3 數(shù) 據(jù) 庫 的 完 整 性6.4 SQL的 完 整 性 控 制本 章 小 結(jié) 6.4 SQL的 完 整 性 控 制 SQL中 的 完 整 性 約 束 主 要 分 為 三 類 : 域 完 整 性 、實 體 完 整 性 和 參
49、照 完 整 性 。 但 是 , SQL尚 不 支 持 動 態(tài)完 整 性 約 束 。 6.4.1 域 完 整 性 6.4.2 實 體 完 整 性 6.4.3 參 照 完 整 性 6.4.1 域 完 整 性 域 完 整 性 又 稱 為 列 完 整 性 , 指 列 數(shù) 據(jù) 輸 入 的 有效 性 。 實 現(xiàn) 域 完 整 性 的 方 法 可 通 過 定 義 相 應(yīng) 的 約束 、 規(guī) 則 等 方 法 實 現(xiàn) 。1 列 約 束 定 義 列 約 束 規(guī) 定 某 個 屬 性 的 值 必 須 符 合 某 種 數(shù)據(jù) 類 型 并 且 取 自 某 個 數(shù) 據(jù) 定 義 域 。 域 完 整 性 約 束施 加 于 單 個 數(shù)
50、 據(jù) 上 。( 1) 長 途 電 話 號 碼 格 式 為 : 999 9999999;( 2) 倉 庫 庫 存 量 0;( 3) 圖 書 管 理 系 統(tǒng) 中 允 許 讀 者 當(dāng) 前 在 借 圖 書 量 最 多 為 20本 。 6.4.1 域 完 整 性 域 完 整 性 可 以 使 用 CHECK約 束 、 NOT NULL約束 、 UNIQUE約 束 在 表 定 義 的 時 候 實 現(xiàn) 。CHECK約 束 : 是 字 段 輸 入 時 的 驗 證 規(guī) 則 , 表 示 一 個字 段 的 輸 入 內(nèi) 容 必 須 滿 足 CHECK約 束 的 條 件 , 若 不滿 足 , 則 數(shù) 據(jù) 無 法 正 常
51、輸 入 。NOT NULL約 束 : 約 束 表 示 列 值 的 非 空 性 , 此 列 不允 許 為 空 ;UNIQUE約 束 : 表 示 列 值 唯 一 性 。 6.4.1 域 完 整 性【 例 6-9】 定 義 表 STUDENT的 同 時 , 定 義 字 段 的 非空 性 和 借 書 數(shù) 字 段 的 約 束 條 件 。CREATE TABLE STUDENT( 借 書 證 號 char(8) NOT NULL, 姓 名 char(8) NOT NULL, 專 業(yè) 名 char(12) NOT NULL, 性 別 bit NOT NULL, 借 書 數(shù) tinyint CHECK(借 書
52、 數(shù) =0 and 借 書 數(shù)=20) NULL )NOT NULL約 束 限 定 了 借 書 證 號 、 姓 名 、 專 用 名 、 性別 不 能 為 空 值 ; CHECK約 束 限 定 限 定 了 借 書 數(shù) 的 取 值范 圍 。 6.4.1 域 完 整 性【 例 6-10】 建 立 一 個 貨 物 表 GOODS, 要 求 貨 品 編 號 Gno列 取 值 唯 一 , 貨 品 名 稱 Gname列 不 允 許 為 空 。CREATE TABLE GOODS( Gno char(7) UNIQUE, Gname char(8) NOT NULL,Nums int ) 6.4.1 域 完
53、整 性2 規(guī) 則規(guī) 則 對 象 的 使 用 步 驟 如 下 :( 1) 定 義 規(guī) 則 對 象 語 法 格 式 :CREATE RULE rule AS condition_expression參 數(shù) 含 義 : 參 數(shù) rule為 定 義 的 新 規(guī) 則 名 , 規(guī) 則 名 必 須符 合 標(biāo) 識 符 規(guī) 則 ; 參 數(shù) condition _expression為 規(guī) 則的 條 件 表 達(dá) 式 , 該 條 件 表 達(dá) 式 可 為 WHERE子 句 中 任 何 有效 的 表 達(dá) 式 , 但 規(guī) 則 表 達(dá) 式 中 不 能 包 含 列 或 其 他 數(shù) 據(jù)庫 對 象 , 可 以 包 含 不 引 用
54、 數(shù) 據(jù) 庫 對 象 的 內(nèi) 置 函 數(shù) 。 6.4.1 域 完 整 性( 2) 將 規(guī) 則 對 象 綁 定 到 列 或 用 戶 自 定 義 類 型規(guī) 則 對 象 的 綁 定 , 使 用 的 是 系 統(tǒng) 存 儲 過 程sp_bindrule, 語 法 格 式 如 下 :sp_bindrule rulename = rule , objname = object_name , futureonly = futureonly_flag 6.4.1 域 完 整 性 參 數(shù) 含 義 : 參 數(shù) rule為 CREATE RULE語 句 創(chuàng) 建 的 規(guī)則 名 , 要 用 單 引 號 括 起 來 。 參
55、數(shù) object_name為 綁 定 到規(guī) 則 的 列 或 用 戶 定 義 的 數(shù) 據(jù) 類 型 , 如 果 object_name采用 “ 表 名 .字 段 名 ” 格 式 , 則 認(rèn) 為 綁 定 到 表 的 列 , 否 則綁 定 到 用 戶 定 義 的 數(shù) 據(jù) 類 型 ; 參 數(shù) futureonly_flag僅 當(dāng)將 規(guī) 則 綁 定 到 用 戶 定 義 的 數(shù) 據(jù) 類 型 時 才 使 用 , 如 果futureonly_flag設(shè) 置 為 futureonly, 用 戶 定 義 數(shù) 據(jù) 類 型的 現(xiàn) 有 列 不 繼 承 新 規(guī) 則 。 如 果 futureonly_flag為 NULL,當(dāng)
56、 被 綁 定 的 數(shù) 據(jù) 類 型 當(dāng) 前 無 規(guī) 則 時 , 新 規(guī) 則 將 綁 定 到用 戶 定 義 數(shù) 據(jù) 類 型 的 每 一 列 。 6.4.1 域 完 整 性【 例 6-11】 創(chuàng) 建 一 個 規(guī) 則 , 并 綁 定 到 STUDENT表 的 借 書 證 號 字 段 。CREATE RULE num_rule AS num like 1-61-61-9 1-9 1-9 1-9 0-9 0-9 0-9GOEXEC sp_bindrule num_rule, STUDENT.借 書 證 號 6.4.1 域 完 整 性( 3) 規(guī) 則 對 象 的 刪 除刪 除 規(guī) 則 對 象 前 , 首 先
57、 應(yīng) 使 用 系 統(tǒng) 存 儲 過 程sp_unbindrule, 解 除 被 綁 定 對 象 與 規(guī) 則 對 象 之 間的 綁 定 關(guān) 系 。語 法 格 式 :sp_unbindrule object_name = object_name , futureonly = futureonly_flag 6.4.1 域 完 整 性 在 解 除 列 或 自 定 義 類 型 與 規(guī) 則 對 象 之 間 的 綁 定關(guān) 系 后 , 就 可 以 刪 除 規(guī) 則 對 象 了 。 語 法 格 式 : 參 數(shù) 含 義 : 參 數(shù) rule指 定 刪 除 的 規(guī) 則 名 , 可 以 包 含規(guī) 則 所 有 者 名 ;
58、 參 數(shù) n表 示 可 以 指 定 多 個 規(guī) 則 同 時 刪除 。 DROP RULE rule,n 6.4.1 域 完 整 性【 例 6-12】 解 除 num_rule規(guī) 則 對 象 與 STUDENT表 的 借書 證 號 的 綁 定 關(guān) 系 , 然 后 刪 除 規(guī) 則 對 象 num_rule。EXEC sp_unbindrule num_ruleDROP RULE num_rule 6.4.1 域 完 整 性 3 觸 發(fā) 器 觸 發(fā) 器 就 是 一 類 靠 事 件 驅(qū) 動 的 特 殊 過 程 , 一 旦由 某 個 用 戶 定 義 , 任 何 用 戶 對 該 數(shù) 據(jù) 的 增 、 刪 、
59、 改操 作 均 由 服 務(wù) 器 自 動 激 活 相 應(yīng) 的 觸 發(fā) 器 , 在 核 心 層進 行 集 中 的 完 整 性 控 制 。 一 個 觸 發(fā) 器 應(yīng) 包 括 下 面 兩 個 功 能 : ( 1) 指 明 什 么 條 件 下 觸 發(fā) 器 被 執(zhí) 行 。 ( 2) 指 明 觸 發(fā) 器 執(zhí) 行 什 么 動 作 。 6.4.1 域 完 整 性:=CREATE TRIGGER ON WITH ENCRYPTION /*說 明 是 否 采 用 加 密 方 式 */ FOR| AFTER|INSTEAD OF /*定 義 觸 發(fā) 器 的 類 型 */ ASIF UPDATE(column)AND|O
60、RUPDATE(column) n| IF(COLUMNS_UPDATED()bitwise_operatorupdated_bitmask) /*兩 個 IF子 句 用 于 說 明 觸 發(fā) 器 執(zhí) 行 的 條 件 */ Sql_statements /*T-SQL語 句 序 列 */ 6.4.1 域 完 整 性【 例 6-13】 在 數(shù) 據(jù) 庫 XSBOOK中 創(chuàng) 建 一 觸 發(fā) 器 , 當(dāng)向 BORROW表 插 入 一 記 錄 時 , 檢 查 該 記 錄 的 借 書證 號 在 STUDENT表 是 否 存 在 , 檢 查 圖 書 的 ISBN號 在 BOOK表 中 是 否 存 在 , 及
61、圖 書 的 庫 存 量 是 否大 于 0, 若 有 一 項 為 否 , 則 不 允 許 插 入 。 6.4.1 域 完 整 性CREATE TRIGGER jy_insert ON BORROW FOR INSERT ASIF EXISTS( select * from inserted a where a.借 書 證 號 not in ( select b.借 書 證 號 from STUDENT b) or a.ISBN not in(select c.ISBN from BOOK c)OR EXISTS(select * from book where 庫 存 量 =0) BEGIN R
62、AISERROR(違 背 數(shù) 據(jù) 一 致 性 ,16,1) ROLLBACK TRANSACTION END 6.4.1 域 完 整 性ELSEBEGIN UPDATE STUDENT SET 借 書 數(shù) =借 書 數(shù) +1 WHERE STUDENT.借 書 證 號 IN (select inserted.借 書 證 號 from inserted) UPDATE BOOK SET 庫 存 量 =庫 存 量 -1 WHERE book.ISBN IN (select inserted.ISBN from inserted)END 6.4.1 域 完 整 性 inserted 邏 輯 表 :
63、當(dāng) 向 表 中 插 入 數(shù) 據(jù) 時 ,INSERT觸 發(fā) 器 觸 發(fā) 執(zhí) 行 , 新 的 記 錄 插 入 到 觸 發(fā) 器 表和 inserted表 中 。 觸 發(fā) 器 中 使 用 的 特 殊 表 執(zhí) 行 觸 發(fā) 器 時 , 系 統(tǒng) 創(chuàng) 建 了 兩 個 特 殊 的 邏 輯 表Inserted表 和 deleted表 。 6.4.1 域 完 整 性 deleted邏 輯 表 : 用 于 保 存 已 從 表 中 刪 除 的 記 錄 ,當(dāng) 觸 發(fā) 一 個 DELETE觸 發(fā) 器 時 , 被 刪 除 的 記 錄 存 放 到deleted邏 輯 表 中 。 修 改 一 條 記 錄 等 于 插 入 一 新
64、記 錄 , 同 時 刪 除 舊 記錄 。 當(dāng) 對 定 義 了 UPDATE觸 發(fā) 器 的 表 記 錄 修 改 時 , 表中 原 記 錄 移 動 到 DELETE表 中 , 修 改 過 的 記 錄 插 入 到inserted表 中 。 觸 發(fā) 器 可 檢 查 deleted表 、 inserted表及 被 修 改 的 表 。 觸 發(fā) 器 中 使 用 的 特 殊 表 6.4 SQL的 完 整 性 控 制 6.4.1 域 完 整 性 6.4.2 實 體 完 整 性 6.4.3 參 照 完 整 性 6.4.2 實 體 完 整 性 實 體 完 整 性 又 稱 為 行 的 完 整 性 , 要 求表 中 有
65、 一 個 主 鍵 , 其 值 不 能 為 空 且 唯 一 地標(biāo) 識 對 應(yīng) 的 記 錄 。 SQL在 CREATE TABLE語 句 中 提 供 PRIMARY KEY創(chuàng) 建 主 碼 列 ,實 現(xiàn) 數(shù) 據(jù) 的 實 體 完 整 性 。 6.4.2 實 體 完 整 性 一 個 表 只 能 有 一 個 PRIMARY KEY約 束 , 而 且PRIMARY KEY約 束 中 的 列 不 能 取 空 值 。 當(dāng) 為 表 定義 PRIMARY KEY約 束 時 , SQL為 主 鍵 創(chuàng) 建 唯 一 索引 , 實 現(xiàn) 主 鍵 數(shù) 據(jù) 的 唯 一 性 , 在 查 詢 中 , 該 索 引 可 用來 對 數(shù) 據(jù)
66、 進 行 快 速 訪 問 。 如 果 PRIMARY KEY約 束是 由 多 列 組 合 定 義 的 , 則 某 一 列 的 值 可 以 重 復(fù) , 但PRIMARY KEY約 束 定 義 中 所 有 列 的 組 合 值 必 須 唯一 。 6.4.2 實 體 完 整 性用 PRIMARY KEY約 束 定 義 了 關(guān) 系 的 主 碼 后 ,每 當(dāng) 用 戶 程 序 對 主 碼 列 進 行 更 新 操 作 時 , 系 統(tǒng) 自動 進 行 完 整 性 檢 查 , 凡 操 作 使 主 碼 值 為 空 值 或 使主 碼 值 在 表 中 不 唯 一 , 系 統(tǒng) 拒 絕 此 操 作 , 從 而 保證 了 實 體 完 整 性 。 6.4 SQL的 完 整 性 控 制 6.4.1 域 完 整 性 6.4.2 實 體 完 整 性 6.4.3 參 照 完 整 性 6.4.3 參 照 完 整 性 參 照 完 整 性 是 關(guān) 系 模 式 的 另 一 種 重 要 約 束 , 又稱 為 引 用 完 整 性 。 參 照 完 整 性 保 證 主 表 中 的 數(shù) 據(jù) 與從 表 中 數(shù) 據(jù) 的 一 致 性 , 通 過 定 義
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責(zé)述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個個會應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案