一、实体完整性
–关系的主码中的属性值不能为空值
–空值:不知道或无意义
–意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的
二、参照完整性(Referential Integrity)

在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用

如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值
意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在
例如关系S在D#上的取值有两种可能
–空值,表示该学生尚未分到任何系中
–若非空值,则必须是DEPT关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中

也就是说外码与主码的一个不同是可以为null
测试一下:
create table aa
(
a int not null primary key,
b int unique
)
create table bb
(
c int not null primary key,
d int,
constraint aa_bb_fk foreign key(d) references aa(a)
)
insert into bb values(1,null)
OK!

转载于:https://www.cnblogs.com/deepblueme/p/4938949.html

[Database] 数据库完整性相关推荐

  1. Database:Database数据库的简介、类型及其区别(关系数据库VS非关系型数据库)、案例应用之详细攻略

    Database:Database数据库的简介.类型及其区别(关系数据库VS非关系型数据库).案例应用之详细攻略 目录 Database数据库的简介 1.掌握数据库的方法-学会sql语言进而学会增.删 ...

  2. 实验五 数据库完整性技术

    [实验目的] 1.掌握完整性的概念: 2.熟悉SQL SERVER 的完整性技术. 3.了解SQL SERVER 的违反完整性处理措施. [实验性质] 综合性实验 [实验导读] 1.完整性概述 数据库 ...

  3. LncRNADisease database数据库使用方法

    LncRNADisese database 数据库概览 进入LncRNADisease database主页(见文末),该数据库收录来自实验结果支持的lncRNA与disease关联数据,以及蛋白.m ...

  4. mysql数据传输完整性_mysql – 处理数据库完整性

    我正在使用innodb约束在我的应用程序的下一个版本中引入数据库完整性.一切顺利,但我的一些表有记录与删除的引用(死记录),因为他们我不能添加约束到表. 我在尝试: ALTER TABLE `arti ...

  5. 『数据库』这篇数据库的文章真没人看--数据库完整性

    『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 实体完整性 参照完整性 用户定义的完整性 完整性约束命名子句 域中的完整性限制 触发器 激活触发器 删除触发器 小结 ...

  6. 重温《数据库系统概论》【第一篇 基础篇】【第5章 数据库完整性】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P32-P36,属教材"[第一篇 基础篇]"的&qu ...

  7. 第12章 数据库完整性

    一.数据库完整性概念 数据库完整性防止合法用户使用数据库时向数据库加入不符合语义的数据.防止错误的数据进入数据库. 完整性规则 触发条件 约束条件 违约响应 二.完整性约束分类 按约束的粒度 表级约束 ...

  8. mysql 命令删库名,MySQL控制台删除数据库命令 drop database 数据库名

    MySQL控制台删除数据库命令 drop database 数据库名 分类:数据库| 发布:佚名| 查看: | 发表时间:2014/4/30 命令:drop database 例如:删除名为 camn ...

  9. SQL关于数据库完整性

    SQL语句关于数据库完整性 数据的正确性和相容性 5.1实体完整性 5.1.1 定义实体完整性 例5.1 将Student表中的Sno属性定义为码. CREATE TABLE Student (Sno ...

最新文章

  1. 艾伟_转载:学习 ASP.NET MVC (第五回)理论篇
  2. C++知识点60——非类型模板参数
  3. ajax(Tibco) 与 SQL server 2005(5)
  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)
  5. 【Laravel Cache】 配置redis 存储缓存,通俗易懂,一次就掌握
  6. 【收藏】maven跳过单元测试-maven.test.skip和skipTests的区别
  7. 机器学习入门-Knn算法
  8. LeetCode 1138. 字母板上的路径
  9. pb 怎么判断是 小数_考试90分以上的孩子是怎么学数学的?听听老师怎么说?
  10. 函数的返回值可以不用赋值_C语言学习|函数的应用《一》
  11. Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么
  12. 通过异常处理错误-2
  13. 将你的blog变成英文版
  14. ol2 和 bootstrap样式冲突的问题
  15. 16进制颜色码转化rgba
  16. 视频 | 直升机如何转弯,为什么能悬停在空中,它的飞行原理是什么?
  17. c++ primer kindle_开箱测评掌阅iReader Ligtht悦享版阅读器,电纸书不止有kindle
  18. Webview下载apk
  19. 基于netty实现gps jtt808协议接入
  20. spssfisher判别分析步骤_在SPSS中进行Fisher判别分析的具体操作及研究意义——【杏花开医学统计】...

热门文章

  1. jQuery-H5-css3转盘抽奖-遁地龙卷风
  2. 浏览器开发调试工具的秘密 - Secrets of the Browser Developer Tools
  3. fedora 16 mysql远程连接
  4. 聊聊flink的Execution Plan Visualization
  5. [转]linux awk命令详解
  6. C与C++的内存机制的比较
  7. SVN 常用命令笔记
  8. Apache2.4x版本的403问题
  9. 我使用过的Linux命令之curl - 强大的网络传输工具
  10. Android RecyclerView详解