关系数据库

  • 概念
  • 在关系数据模型中,把记录类型称为关系模式
  • 闭包:键的闭包应当包含R的所有属性
  • 完整性约束
  • 实体完整性
  • 参照完整性
  • 用户自定义的完整性:可以用触发器实现
  • 注意:视图不能实现完整性约束
  • 主键
  • 全码:全部属性组为关系模式的候选键
  • 候选码:排除没有出度,从剩余的看能不能推出来全部,能则为候选码
  • 断言是为了保证数据的完整性
  • 触发器
  • 是SQL语句的集合
  • 不能传递参数
  • 通过事件来触发,可以实现比check更复杂的约束
  • 举例:
  • 级别增加一级,工资增加500元


  • 关系代数运算
  • 不自动去重复列,需要进行选择
  • 集合运算符
  • 笛卡尔积:
  • 相乘,共有m+n列
  • 自然连接
  • 去除重复列

  • 比较运算符
  • 逻辑运算符
  • 关系运算符(连接、除)
  • 差的选择等于选择的差
  • 除:只除有的
  • 表连接
  • 左外连接:有共同字段找悬浮数据
  • 带条件的自然连接与笛卡尔积后选择条件等价
  • 没有公共属性的自然连接会转换为笛卡尔积操作
  • 分类
  • 左外连接:舍弃右边没有的
  • 右外连接:舍弃右边没有的
  • 完全外连接:所有舍弃的都放入
  • 查询优化
  • 按条件选择后,自然连接,再按条件查询


  • 规范化
  • 关系定义
  • 关系不可以嵌套定义,其属性必须是原子的、不可再分的
  • 关系模式:表的列
  • 函数依赖:列之间的关系
  • 范式
  • 1NF:属性不可分,存在部分函数依赖(学号,课程号)
  • 2NF:消除部分函数依赖
  • 3NF:消除非主属性对码的传递函数依赖【主属性存在部分函数依赖】
  • BCNF:消除主属性的部分函数依赖
  • 4NF:多值属性构成的(如工号、手机号)
  • 最小函数依赖集
  • 不含传递依赖
  • 不含部分依赖
  • 每个函数依赖的右部都是单属性!
  • 函数依赖集等价
  • 蕴含的属性间的依赖信息等价
  • 即函数依赖的闭包相等
  • A+=B+
  • E-R图
  • 双线椭圆表示多值属性
  • 依赖关系
  • 部分函数依赖:Y不完全依赖于X
  • 传递函数依赖:(学号,学院,学院领导)

  • Armstrong公理
  • 传递率
  • 合并规则
  • 伪传递率:间接推导
  • 增广率
  • 模式分解
  • 类型
  • 无损连接分解:
  • 保持原有的分解:看元素是否全
  • 表示
  • (候选码)+

  • 查询优化
  • 原则:提早执行选择
  • 其他:投影和其他运算同时进行,避免重复扫描关系
  • 索引改进
  • 当查询是性能瓶颈时,在关系上建立索引
  • 当更新是性能瓶颈时,考虑删除某些索引(索引会引起更新操作的效率降低)
  • 有利于大多数数据查询的索引设置为聚簇索引
  • 性能优化
  • 减少多表查询
  • 减少物化视图
  • 使用带UNION的条件子句等价替换OR子句


作者:​​哥们要飞​​​