数据完整性约束是对数据描述的某种约束的条件,在关系型数据库中一般有:完整性约束,实体完整性约束,参照完整性约束和用户自定义完整性约束。

  实体完整性约束

    在数据库中一张表一般对应一个现实生活中的实体,比如学生信息表一般对应学生的集合。我们所知道世界上没有完全相同的两片树叶,那么同样的道理表中的数据肯定也是不一样的,所以我们要有某种标识去进行分辨。在关系模型的数据库总我们用主键作为唯一的标识进行区分。在这里需要提醒主键不能为空值,空值就是没有意义的值。如果主键为空那就说明某个实体不可标识,这与现实是自相矛盾的,所以这个实体就不是完整的。因此实体完整性约束就是规定表中的每一行数据都是唯一的实体。

  参照完整性约束

    我们知道在现实的生活中实体之间会有这一定的关系,在关系型数据库中实体与实体之间都是通过关系来进行描述的。

    比如现在有两张表:部门信息表(部门的主键FID, 部门的名称FName,部门的级别FLevel),员工信息表(工号FNumber,姓名FName, 所属部门FDepartmentId).为了表示部门信息和员工信息之间的关联关系,我们在员工信息表中保存着部门信息表中的主键(FDepartmentId - FID),这里告诉你这个 FDepartmentId 就是员工信息表的外键。因此参照完整性约束就是指两个表中的主键和外键的数据必须一致,这样就保证了表之间的数据一致性,防止数据丢失或者有脏数据的进入。

  用户定义的完整性约束

     上面提到的实体完整性和参照完整性适用于任何的关系型数据库。但是当应用环境不同的时候我们需要定义自己的约束条件。比如:员工的年龄不能为负数等。

    用户定义的完整性就是针对某一个具体的关系型数据库的条件约束,它反映了某一具体应用所满足的语义条件。在关系型数据库中提供了定义和检查这类约束的机制,以便用户用统一的方法去进行管理。

orcale 之 数据完整性约束的更多相关文章

  1. Oracle数据库四种数据完整性约束

     Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...

  2. 【oracle入门】数据完整性约束

    数据的完整性约束是对数据描述的某种约束条件,关系型数据模型中可以有三类完整性约束:实体完整性.参照完整性和用户定义的完整性. 实体完整性Entity Integrity 一个基本关系通过对应显示世界的 ...

  3. orcale 之数据操作

    SQL 语句的数据操作功能是通过数据操作语言实现的,用于改变数据库中的数据.数据更新包括插入.删除和修改三种操作,与之对应的就是 INSERT. UPDATE 和 DELETE. 数据准备 创建两张表 ...

  4. MySQL数据完整性约束

    主键约束 主键可以是表中的某一列,也可以是表中的多个列所构成的一个组合:其中,由多个列组合而成的主键也称为复合主键.在MySQL中,主键列必须遵守以下规则. (1)每一个表只能定义一个主键. (2)唯 ...

  5. orcale删除重复数据

    1.删除orcale重复数据, delete from da_door awhere (a.dt,a.key1) in (select dt,key1 from da_door group by dt ...

  6. 整理课堂笔记 pl/sql orcale异常

      1>>>>>异常错误处理 1 >预定义的异常处理 预定义说明的部分 ORACLE 异常错误对这种异常情况的处理,只需在PL/SQL块的异常处理部分,直接引用相应 ...

  7. Python开发【笔记】:为什么pymysql重连后才能查到新添加的数据

    PyMysql操控 问题描述: 之前做数据库模块的时候用到了pymysql,测试中发现了一个问题,创建两个程序,select.py从数据库中不断的读取,insert.py在数据库中插入多条数据,但是s ...

  8. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle

    Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3.  ...

  9. 解决pymysql不能实时查询最新的数据

    #在网上查询到的原因为: InnoDB 的默认隔离级别.它可以防止任何被查询的行被其他事务更改,从而阻止不可重复的读取,而不是 幻读取.它使用中度严格的锁定策略,以便事务内的所有查询都会查看同一快照中 ...

随机推荐

  1. CodeForces 122G Lucky Array(一脸懵逼的树状数组)

    Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal re ...

  2. scvmm应答文件 无人值守安装系统

    我们可以通过这种windows配置文件实现winpe.光盘等无人职守安装配置操作系统,在scvmm虚拟化平台中这种文件叫做应答文件. 下面为一个windows server 2008 r2的一个完整应 ...

  3. 关于dm-file-uploader(dmUploader)上传时传参

    官网:https://github.com/danielm/uploaderDemo Online https://danielmg.org/demo/java-script/uploader/bas ...

  4. docker swarm 命令

    初始化swarm manager并制定网卡地址 docker swarm init --advertise-addr 192.168.10.117 强制删除集群,如果是manager,需要加–forc ...

  5. 清北学堂2019NOIP提高储备营DAY3

    今天是钟神讲课,讲台上照旧摆满了冰红茶 目录时间到: $1. 动态规划 $2. 数位dp $3. 树形dp $4. 区间dp $5. 状压dp $6. 其它dp $1. 动态规划: ·以斐波那契数列为 ...

  6. 深入了解java虚拟机(JVM) 第二章 内存区域---栈空间

    一.栈的含义 用于描述方法执行的动态内存模型,简单来说就是代码中的方法模块.主要用于局部变量表.栈的大小在编译器中就已经分配了空间,在进入一个方法时,这个方法需要栈帧分配多少内存是固定的,运行期间是不 ...

  7. 关于react的一些疑问点

    参考转载:链接:http://www.jianshu.com/p/83bda9cd8c67 1.refs <input type="text" ref="input ...

  8. Eclipse右键增加在浏览器打开

    https://github.com/samsonw/OpenExplorer/downloads 放在  \eclipse\plugins 下,右键项目就多一个 以后打开项目文件夹就方便了.

  9. Luogu P1886 滑动窗口

    P1886 滑动窗口 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: The a ...

  10. A: Absolutely Simple---巴什博弈

    A: Absolutely Simple 时间限制: 1 s      内存限制: 128 MB        题目描述 Ocean暑假去海边玩,海边有许多好看的贝壳.并且Ocean捡了好多回来. 回 ...