数据库系统概论04-数据库角色授权和回收&断言&属性上的约束条件&触发器&范式

数据库角色授权和回收

角色的创建: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 触发条件 触发动作体/*仅当触发条件为真时才执行触发动作体*/

激活触发器

由触发事件激活,执行顺序如下:

  1. 执行该表上的BEFORE触发器
  2. 激活触发器的SQL语句
  3. 执行该表上的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:消除非平凡且非函数依赖的多值依赖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章