thunder_sword's blog thunder_sword's blog
来看漫画丫~
首页
分类
标签
归档
GitHub

thunder-sword

网安界的小菜鸡
来看漫画丫~
首页
分类
标签
归档
GitHub
  • 1数据库系统概述

  • 2数据模型

  • 3数据库系统结构

  • sql语法标准

  • 关系数据库基础

    • 1重要的数学基础概念
    • 2关系的三类完整性
      • 1.候选码、主码、主属性
      • 一、实体完整性
        • 1.实体完整性的说明
        • 2.定义方式primary key
        • 3.实体完整性检查和违约处理
      • 二、参照完整性
        • 1.外码
        • 2.参照完整性规则
        • 3.定义方式foreign key\
        • 4.参照完整性检查和违约处理
      • 三、用户自定义的完整性
        • 0.概念:
        • 1.属性上的约束条件
        • 2.元组上的约束条件的定义
        • x.属性上的约束条件检查和违约处理
      • 1.定义触发器
      • 2.激活触发器
      • 3.删除触发器
    • 4关系代数
  • 数据库安全

  • 数据库设计

  • 设计与应用开发篇

  • 数据库
  • 关系数据库基础
thunder-sword
2021-06-13

2关系的三类完整性

# 0x0.前置知识

# 1.候选码、主码、主属性

image-20210419200025968

image-20210419200053033

# 0x1.三类完整性

image-20210315150738345

# 一、实体完整性

简单来说:主属性不能为空。

image-20210315150814486

# 1.实体完整性的说明

image-20210419195931901

image-20210315150938560

# 2.定义方式primary key

image-20210419200357930

2-1.定义为列级约束条件:

image-20210419200438530

2-2.定义为表级约束条件:

image-20210419200559530

# 3.实体完整性检查和违约处理

image-20210419200629409

检测方法:

# 3-1.全表扫描

image-20210419200722971

# 3-2.索引建树

image-20210419200729585

# 二、参照完整性

简单来说:引用不能不存在,有则必须指向一个系的主码。

例子:

image-20210315151215439

如下:外码可为空,但是不能不存在。

image-20210315151858591

# 1.外码

注意:理论上外码不可以作为关系R的码!考试中也是不可以,但是实际上运用时可以这样使用来提高效率

image-20210419200053033

image-20210315152113326

# 2.参照完整性规则

image-20210315152143128

# 3.定义方式foreign key<references>

image-20210419201002178

例子:

image-20210419201032826

# 4.参照完整性检查和违约处理

# 4-1.汇总

image-20210419201132920

# 4-2.违约处理说明

  • 拒绝(NO ACTION)执行
    • 默认策略
  • 级联(CASCADE)操作,即多表一起被联系修改,需要如下4-3显式说明:
  • 设置为空值(SET-NULL)
    • 对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值

# 4-3.建表时显式说明级联操作

image-20210419201520321

# 三、用户自定义的完整性

比较杂乱,千奇百怪。

# 0.概念:

image-20210315152807149

image-20210419201621738

比如:

性别在建立DBMS系统时就规定只有男女两种选择,还如:

image-20210315152953262

# 1.属性上的约束条件

# 1-1.列值非空(NOT NULL)

image-20210419201832180

# 1-2.列值唯一(UNIQUE)

image-20210419201842566

# 1-3.检查列值是否满足一个布尔表达式(CHECK)

image-20210419201853311image-20210419201932041

# 2.元组上的约束条件的定义

image-20210419202130907

例子:

image-20210419202207817

# x.属性上的约束条件检查和违约处理

image-20210419202050360

# 0x2.完整性约束命名子句(constraint)

image-20210419202306526

例子:

image-20210419202334985

# 0x3.修改表中的完整性限制(alter)

image-20210419202502197

例子:

image-20210419202516716

# 0x4.域中的完整性限制(domain)

image-20210419202742391

删除条件和增加条件:

image-20210419202848283

# 0x5.对整体进行约束:断言(assertion)

image-20210419202914157

例子:

image-20210419202936100image-20210419203006039image-20210419203022937

删除断言:

image-20210419203154808

# 0x6.触发器(trigger)

image-20210419203215690

# 1.定义触发器

image-20210419203243625

语法说明:

image-20210419203409159

行级触发器(FOR EACH ROW)和语句级触发器(FOR EACH STATEMENT)区别:

image-20210419203457614

image-20210419203446479

触发条件和触发动作体:

image-20210419204212657

例子:

image-20210419204351354image-20210419204359295image-20210419204410172image-20210419204424372image-20210419204431115image-20210419204437538

# 2.激活触发器

image-20210419203759251

例子:

image-20210419203808267

# 3.删除触发器

image-20210419203846365

# 0x7.小结

image-20210419203835815

1重要的数学基础概念
4关系代数

← 1重要的数学基础概念 4关系代数→

最近更新
01
计算机系统的硬件结构
10-12
02
计算机系统概论
10-12
03
进程
10-12
更多文章>
Theme by Vdoing | Copyright © 2019-2021 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×