數據庫角色授權和回收
角色的創建:CREATE ROLE 角色名
給角色授權:GRANT 權限 ON 角色 TO 用戶 WITH GRANT OPTION(表示可以將權限授予其他用戶)
角色授權的回收:REVOKE 權限 ON 對象類型 對象名 FROM 角色
屬性上的約束條件
- 列值非空NOT NULL
- 列值唯一UNIQUE
- 檢查列值是否滿足一個條件表達式(CHECK短語)如:CHECK(Ssex IN('男','女'));CHECK(Ssex='女' OR Sname NO LIKE 'MS.%')
完整性約束命名子句
CONSTRAINT 完整性約束條件
完整性約束條件:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGY KEY、CHECK短語
斷言
1.創建斷言語句:CREATE ASSERTION 斷言名 CHECK 子句
2.刪除斷言語句:DROP ASSERTION 斷言名
觸發器
用戶定義在關係表上由事件驅動的特殊過程
定義觸發器
事件-條件-動作規則
CREATE TRIGGER 觸發器名 /*每當觸發事件發生時,觸發器被激活*/
{BEFORE|AFTER} 觸發事件 ON 表名
REFERENCING NEW|OLD ROW AS 變量 /*REFERENCING 指出引用的變量*/
FOR EACH {ROW|STATEMENT}/*定義觸發器的類型,指明動作體執行的頻率*/
WHEN 觸發條件 觸發動作體/*僅當觸發條件爲真時才執行觸發動作體*/
激活觸發器
由觸發事件激活,執行順序如下:
- 執行該表上的BEFORE觸發器
- 激活觸發器的SQL語句
- 執行該表上的AFTER觸發器
刪除觸發器
DROP TRIGGER 觸發器名 ON 表名
關係模式 R(U,D,DOM,F)
關係名R是符號化的元組語義
U爲一組屬性
D爲屬性組U中的屬性域
DOM爲屬性到域的映射
F爲屬性組U上的一組數據依賴
數據依賴最重要的是函數依賴(Function Dependency)和多值依賴(Mutil-Valued Dependency,MVD)
在函數依賴中,X與Y是否存在函數依賴關係,只需考察X,Y的兩組屬性,與別的屬性無關。而在多值依賴中,X與Y是否存在多值依賴還需看屬性Z。
範式
- 1NF:列數據不可分割。
- 2NF:主鍵。表中每一行必須可被唯一地區分。
- 3NF:外鍵,表中不包含已在其他表中包含的非主關鍵字信息。
- 反三範式:有時爲查詢效率可設置重複字段。
- 4NF:消除非平凡且非函數依賴的多值依賴