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

数据库的四种类型的完整性约束

数据完整性:是指存储在数据库中的所有数据值均正确的状态。


四种类型的完整性约束:


1、实体完整性约束:

表中的每一行数据都反映不同的实体,不能存在相同的数据行.

通过索引.唯一约束,主键约束或标识列属性,可以用来实现表的实体完整性.


索引:将文献中具有检索意义的事项(可以是人名、地名、词语、概念、或其他事项)按照一定方式有序编排起来,以供检索的工具书。
 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。  例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。

唯一约束:

比如一张表的学生姓名设置了唯一约束,那么学生的姓名就是不能重复的,只能是唯一的
 唯一约束保证在一个字段或者一组字段里地数据与表中其它行的数据相比是 唯一的附上与主键约束的区别,以更好理解创建唯一约束可确保在未参与主键的特定列中不输入重复值。尽管唯一约束和主键都强制唯一性,但如果情况如下,则应向表附加唯一约束而不是主键约束: 希望在某一列或某一组列中强制唯一性。您可以向表附加多个唯一约束,但只能向表附加一个主键约束。希望在允许空值的列中强制唯一性。您可以向允许空值的列附加唯一约束,但只能向不允许空值的列附加主键约束。当向允许空值的列附加唯一约束时,请确保在所约束的列中最多只有一行包含空值。

2、域完整性约束:

指给定列的输入有效性
通过
限制数据类型,
检查约束,
输入格式,
外键约束,
默认值,
非空约束
等多种方法,可以用来实现表的域完整性.
3、参照完整性约束:

在输入或删除数据行时,引用完性约束用来保持表之间已定义的关系
4:、用户定义的完整性约束:

用来定义特定的规则,例如,向用户信息表中插入一个用户记录时,要求通过身份证编号来检查另外一个数据库中是否存在该用户,并且该用户的信誉度是否满足要求等.如果不满足要求则不能够插入,这个时候就需要使用数据库的规则存储过程或者触发器来进行约束

转载于:https://www.cnblogs.com/secbook/archive/2012/07/12/2654873.html

相关文章:

  • 由struct 和class 想到的浅度复制和深度复制 c#
  • 深入理解C#之 参数传递 ref out params
  • Spring表单校验解析
  • flex 学习笔记 动态改变 样式文件
  • CLI配置和编址
  • 【转】解决启动memcached启动时报”memcached:error while load...
  • MySql跨服务器备份数据库
  • 语音提示倒计时小工具
  • Unicode
  • Cisco 路由器硬件信息查询命令
  • LaTeX空白距离
  • switch语句
  • 下了班----你干啥
  • 进位标志位
  • [转载]C++引用浅谈
  • @angular/forms 源码解析之双向绑定
  • 【刷算法】求1+2+3+...+n
  • crontab执行失败的多种原因
  • Java-详解HashMap
  • REST架构的思考
  • text-decoration与color属性
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue脚手架vue-cli
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 分享几个不错的工具
  • 技术胖1-4季视频复习— (看视频笔记)
  • 一个SAP顾问在美国的这些年
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #QT(TCP网络编程-服务端)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $(function(){})与(function($){....})(jQuery)的区别
  • (2)STL算法之元素计数
  • (js)循环条件满足时终止循环
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (TOJ2804)Even? Odd?
  • (八)Spring源码解析:Spring MVC
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计大学生兼职系统
  • (原)Matlab的svmtrain和svmclassify
  • *上位机的定义
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 垃圾回收机制原理(二)
  • .Net 路由处理厉害了
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [BT]BUUCTF刷题第9天(3.27)
  • [C++] sqlite3_get_table 的使用
  • [c++] 自写 MyString 类
  • [C++]Leetcode17电话号码的字母组合
  • [LaTex]arXiv投稿攻略——jpg/png转pdf
  • [Lua实战]整理Lua中忽略的问题
  • [Lucas定理]【学习笔记】