当前位置: 首页 > news >正文

【数据库】数据库的完整性

第五章 数据库完整性

数据库完整性

数据库的完整性是指数据的正确性和相容性

  • 数据的正确性是指数据是符合现实世界语义,反映当前实际状况的
  • 数据的相容性是指数据库的同一对象在不同的关系中的数据是符合逻辑的

关系模型中有三类完整性约束:实体完整性,参照完整性和用户定义完整性。

在这里插入图片描述

约束规则

DDL

在这里插入图片描述

约束对象:

  • 域完整性;某一列
  • 关系完整性:整个表/多列

约束来源:

  • 结构约束:唯一,依赖等
  • 内容约束:范围等···

约束状态

  • 静态约束:任何时候都大于某个值等···
    • 列完整性
    • 表完整性
  • 动态约束 :只能增加等···
    • 触发器

静态约束

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

check()括号内可以是任何where 的语句(包含子查询)

修改约束

在这里插入图片描述

断言

在这里插入图片描述

使用较少

动态约束

在这里插入图片描述

触发器Trigger

Trigger是一种过程完整性约束(相比 下,Create Table中定义的都是非过程性约束), 是一段程序,该程序可以在特定的时刻被自动触发执行,比如在一次更新操 作之前执行,或在更新操作之后执行。

在这里插入图片描述
在这里插入图片描述

-- sql server 不支持下面写法
create trigger stu_chgage before update of Sage
on Student
referencing new x, old y
for each row when (x.Sage < y.Sage)
begin
raise_application_error(-20003, 'invalid salary on update'); 
//此条语句为Oracle的错误处理函数
end;

sql server 的触发器语法不一样

CREATE TRIGGER (Transact-SQL) - SQL Server | Microsoft Docs

http://www.lryc.cn/news/20350.html

相关文章:

  • 基因净化车间装修设计方案SICOLAB
  • java 内部类的四种“写法”
  • 【python】main方法教程
  • 公司对不同职级能力抽象要求的具体化
  • Java之MinIO存储桶和对象API使用
  • 如何用java实现同时进行多个请求,可以将它们并行执行,从而减少总共的请求时间。
  • 高端装备的AC主轴头结构
  • 【Proteus仿真】【51单片机】粮仓温湿度控制系统设计
  • 【LINUX】环境变量以及main函数的参数
  • 使用Pyparsing为嵌入式开发定义自己的脚本语言
  • C win32基础学习(二)
  • 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?
  • 读书笔记//《数据分析之道》
  • 1个串口用1根线实现多机半双工通信+开机控制电路
  • KUKA机器人外部自动运行模式的相关信号配置
  • 【RabbitMQ笔记02】消息队列RabbitMQ七种模式之最简单的模式
  • Spring MVC 源码- RequestToViewNameTranslator 组件
  • Linux--TCP编程--0216 17
  • 关于设计模式的记录
  • Lambda-常见的函数式接口
  • P1196 [NOI2002] 银河英雄传说 带权并查集
  • 【项目实战】快来入门Groovy的基础语法吧
  • Mybatis中的动态SQL
  • VUE常用API
  • 25 openEuler管理网络-使用nmcli命令配置ip
  • 如何安装和使用A-ops工具?
  • MySql数据库环境部署
  • 极品笔记,阿里P7爆款《K8s+Jenkins》技术笔记,职场必备
  • 数据结构:各种排序方法的综合比较
  • 【设计模式】 策略模式介绍及C代码实现