-
2021-01-25 16:07:09
数据库有哪几种完整性
发布时间:2020-06-01 22:20:13
来源:亿速云
阅读:262
作者:鸽子
什么是数据库完整性
数据库完整性可确保输入至数据库中的数据,是准确、有效及一致的。数据库中任何数据改动,都必须乎合所有完整性限制及数据有效性检验。
1、实体完整性
实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键,唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人。
2、域完整性
域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域完整性可以确保不会输入无效的值。
3、参照完整性
参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性。
更多相关内容 -
关系型数据库中,关系的完整性有哪几种
2020-10-14 17:08:36关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。 1.域(列)完整性 也就是用户定义的表字段的完整性 通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系...关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。
1.域(列)完整性
也就是用户定义的表字段的完整性
通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值、规则、约束、是否可以为空,域完整性可以确保不会输入无效的值。比如某个属性的值必须在某个范围内,或者默认为0等,这些就是域(列)完整性,也就是用户定义的完整性。
简单来说就是对表字段的约束。
2.实体(行)完整性
实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键、唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人。
简单来说一个表中的唯一标识列不可为空。主关键字不能取空值或重复的值,如果是多个字段一起组成主键,则这多个字段均不能取空值。
3.参照(引用)完整性
现实世界的实体之间往往存在某种联系,在关系模型中实体与实体见的联系都是用关系来描述的,这样就存在着关系之间的引用。参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。
准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。 参照完整性维护表间数据的有效性、完整性,通常通过建立外键关联另一表的主键,还可以编写2表的触发器来维护参照完整性。
简单来说就是主外键的关系。例如:
这两个表之间存在着属性的引用,即“课程”表引用了“课程类别”表的主键“类型ID”。按照参照完整性规则,“课程”表中每行的“类型ID”属性只能取下面两类值:
1)、空值。表示该课程还未确定类别。
2)、非空值。此时取值必须和“课程类别”表中的“类型ID”值相同,表示这门课程归属该类别。
参照完整性规则规定不能引用不存在的实体。
-
三种关系完整性约束
2020-10-05 21:50:54关系模型组成:关系数据库,关系操作集合,关系完整性约束。 关系的三类完整性约束: (1)实体完整性(必须) 若属性A是基本关系R的主属性,则A不能取空值。 检查和违约处理: 1)检查主码值是否唯一,如果不唯一则...转载博文:https://www.cnblogs.com/cing/p/9253180.html
关系的3种完整性约束+5种范式
关系模型组成:关系数据库,关系操作集合,关系完整性约束。关系的三类完整性约束:
(1)实体完整性(必须)
若属性A是基本关系R的主属性,则A不能取空值。
检查和违约处理:
1)检查主码值是否唯一,如果不唯一则拒绝插入或修改。
2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
(2)参照完整性(必须)
若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值要么为空值,要么等于S中某个元组的主码值。
检查和违约处理:
被参照表 参照表 违约处理
可能破坏参照完整性 插入元组 拒绝
可能破坏参照完整性 修改外码值 拒绝
删除元组 可能破坏参照完整性 拒绝/级连删除/设置为空值
修改主码值 可能破坏参照完整性 拒绝/级连删除/设置为空值(3)用户定义的完整性(可选)
比如唯一性、能否取空值等。
候选码:设K是R<U,F>的属性,若K->U,则K为R的候选码。
主码:从候选码中选择一个。
主属性:包含在任何一个候选码中的属性。
非主属性:不包含在任何码中的属性。
范式:
5NF<4NF<BCNF<3NF<2NF<1NF
第一范式(1NF):每一个分量必须是不可分的数据项。
存在问题:数据冗余太大,更新异常,插入异常,删除异常。
违反例子:F={Sno->Sdept, Sdept->Mname, (Sno, Cno)->Grade}
分解为合格:S(Sno, Sdept, Sno->Sdept), SC(Sno, Cno, Grade, (Sno, Cno)->Grade), DEPT(Sdept, Mname, Sdept->Mname)
第二范式(2NF):若R属于1NF,且每一个非主属性完全函数依赖于码,则R属于2NF。
存在问题:插入异常,删除异常,修改复杂。
违反例子:{(Sno, Cno)->完全函数依赖Grade), Sno->Sdept, (Sno, Cno)->部分函数依赖Sdept, Sno->Sloc, (Sno, Cno)->部分函数依赖Sloc}。
分解为合格:SC(Sno, Cno, Grade, (Sno, Cno)->Grade), SL(Sno, Sdept, Sloc, Sno->Sdept, Sno->Sloc, Sdept->Sloc)
第三范式(3NF):若R属于3NF,则每一个非主属性既不部分依赖于码,也不传递依赖于码。
违反例子:上面的SL是不属于3NF的,因为有传递函数依赖。
分解为合格:SD(Sno, Sdept, Sno->Sdept), DL(Sdept, Sloc, Sdept->Sloc)。
**BCNF:**所有非主属性对每一个码都是完全函数依赖,所有主属性对每一个不包含它的码,也是完全函数依赖,没有任何属性完全函数依赖于非码的任何一组属性。
若R属于BCNF,则一定属于3NF;反过来不成立。
第四范式(4NF):属性之间不允许有非平凡(若多值依赖X->->Y中,Z为空,则称X->->Y为平凡的多值依赖)且非函数依赖(X->Y)的多值依赖。
若R属于4NF,则一定属于BCNF。
-
sql中表达完整性约束的机制主要有哪几种?
2017-04-03 21:38:20sql中表达完整性约束的机制主要有哪几种? 实体完整性 参照完整性 用户定义完整性 删除约束 —实体完整性: 又称行完整性, 要求在表中不能存在完全相同的行, 而且每行都要具有一个非空且又不重复的主键值。 —...sql中表达完整性约束的机制主要有哪几种?
* @ sunRainAmazing *
- 实体完整性
- 参照完整性
- 用户定义完整性
- 删除约束
—实体完整性: 又称行完整性, 要求在表中不能存在完全相同的行, 而且每行都要具有一个非空且又不重复的主键值。 —参照完整性: 又称引用完整性, 指表间的规则,作用于有关联的两个或两个以上的表, 通过使用主键和外键(或唯一键)之间的关系, 使表中的键值在相关表中保持一致。 —用户自定义完整性: 指针对某一具体关系数据库的约束条件, 它反映某一具体应用所涉及的数据必须满足的语义要求。 sql约束性分为实体完整性,参照完整性,用户定义完整性,删除约束 实体完整性:可用主键子句或主键短语来定义。 1.建表时定义主键 Create table 表名 ( Sno int identity(1,1), Sname nvarchar(20), --设置主键 Primary key (Sno) ) 2.添加主键 alter table 表名 add constraint PK_表名_Sno primary key(id) 参照完整性:可用外键子句来定义 1.建表时定义外键 create table 表名 ( sno int identity(1,1) primary key, cno int not null, foreign key(cno) References 表名2(Cno) on Delete cascade --级联删除 on update cascade --级联更新 -- on delete on action 删除管制 ) 2.添加外键 alter table 表名 add constraint FK_表名_表名2 Foreign key(cid) references 表名2(cid) 用户定义完整性:属性值约束 1.非空约束 alter table 表名 alter column name varchar(20) not null 2.唯一约束 alter table 表名 add constraint UQ_表名_列名 unique(列) 3.检查约束 alter table 表名 add constraint CK_表名_列名 check(age>5) 4.默认约束 alter table 表名 add constraint DF_表名_列名 default('男') for gender 删除约束 --删除约束 全局约束:包括基于元组的检查子句(CHECK)和断言 alter table 表名 drop constraint DF_表名_列
-
数据库关系的3种完整性约束+5种范式
2019-09-11 20:45:55关系模型组成:关系数据库,关系操作集合,关系完整性约束。 关系的三类完整性约束: (1)实体完整性(必须) 若属性A是基本关系R的主属性,则A不能取空值。 检查和违约处理: 1)检查主码值是否唯一,如果不唯一... -
数据库中的四种完整性
2020-11-09 21:21:54参照完整性是对关系间引用数据的一种限制。即:若属性组A是基本关系R1的外码,它与基本关系R2的主码K相对应,则R1中每个元组在A上的值必须:要么取空值,要么等于R2中某元组的主码值。 实现方法 外键约束 4.自定义... -
数据库关系模型有哪三类完整性约束?
2017-06-05 11:17:04参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。 例如表sutdent(有id,username,password),表sutdent_info(有id,name,age,sex)。其中表sutdent_info参照了表... -
sql中表达完整性约束的机制主要有哪几种
2015-05-08 09:14:28在SQL中,表达完整性约束的规则有主键约束、外键约束、属性值约束和全局约束等多种形式。 (1)主键约束:可用主键子句或主键短语来定义。 如 PRIMARY KEY (S#) (主键子句) S# CHAR (4) PRIMARY KEY (其中... -
关系数据库的三大完整性!
2017-10-30 21:39:57其中前两个是关系模型必须满足的完整性约束条件,由系统自动支持。用户定义的完整性体现了具体应用领域的要求。二,主食 实体完整性:主码(或主键)非空且唯一。 参照完整性:外码(或外键)null或者在主键中)【注... -
数据库完整性之参照完整性
2022-02-09 22:06:27完整性约束关系模型的参照完整性参照完整性定义参照完整性检查参照完整性违约处理使用navicat设置字段外键/参照完整性约束 关系模型的参照完整性 数据表字段的外键约束属于数据库设计——... -
MySQL数据库——数据完整性(实体完整性、域完整性、参照完整性)
2019-04-10 10:43:25一、 数据完整性 数据完整性是为了保证插入到数据库中的数据是正确的,防止用户可能的错误输入。 数据完整性分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为... -
数据库原理学习笔记(一)关系完整性以及数据库完整性
2018-06-03 23:53:55关系完整性是对关系的某种约束,当关系随着时间变化(增删改等操作改变数据库关系表)时应该满足一定的约束条件,通常这些约束条件都依赖于客观事实 关系完整性包含三个方面,分别是 实体完整性 参照完整性 用户... -
常见的数据库有哪几种?
2020-06-01 10:58:29SQL(StructuredQueryLanguage,结构化查询语言)是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存取数据、查询数据、更新数据等。 SQL是IBM公司于1975—1979年之间开发出来的,在20世纪随着... -
关系模型中三类完整性约束以及解释
2018-12-09 19:27:111、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值; 比如学生表的主码通常是取学号为主码 2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素... -
【SQL】数据库三种完整性
2019-05-22 21:41:56数据库完整性可确保输入至数据库中的数据,是准确、有效及一致的。数据库中任何数据改动,都必须乎合所有完整性限制及... 参照完整性,如两个数据表是有关联的,父数据表中的记录必须存在,子数据表的记录才有存在。 ... -
关系模型的三种完整性【转】
2014-09-03 15:08:00关系模型的完整性 关系模型中的完整性是指数据库中数据的正确性和一致性。 数据完整性由数据完整性规则来维护,包括实体完整性规则和参照完整性规则。 当然任何给定数据库中还要包括与应用有关的完整性规则。这类... -
2.2 《数据库系统概论》之关系操作、关系完整性、关系代数
2020-03-25 22:34:12关系的完整性(1)关系的三类完整性约束(2) 实体完整性(Entity Integrity)(3)参照完整性❶ 关系间的引用❷ 外码(Foreign Key)❸ 参照完整性规则(4)用户定义的完整性3.关系代数(1)关系代数运算符(2)... -
数据库三类完整性规则
2021-09-01 22:57:24为了维护数据库中的数据与现实的一致性,关系数据库的数据与更新操作必须遵守下列三类完整性规则:实体完整性规则,参照完整性规则,用户定义的完整性。 完整实体性规则 这个规则要求关系中元组在组成主键的属性上... -
数据库完整性约束
2017-04-05 09:19:17介绍数据库完整性 -
数据库完整性(实体完整性、参照完整性、用户定义的完整性、完整性约束命名字句、断言、触发器)
2020-05-18 19:51:48数据库完整性:数据的正确性(是指数据是符合现实世界语义,反映了当前实际状况的)、数据的相容性(是指数据库同一对象在不同关系表中的数据是符合逻辑的) 数据的完整性 : 防止数据库中存在不符合语义的数据,... -
数据库中的三种完整性:域、实体、参照完整性
2017-07-27 22:21:49关系的完整性主要包括域完整性、实体完整性和参照完整性三种。 1.域(列)完整性 域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定... -
完整性约束包括哪些?
2019-02-16 12:34:03数据完整性(Data Integrity)是指数据的精确(Accuracy) 和 可靠性(Reliability)。 包括: (1)实体完整性:规定表的每一行在表中是惟一的实体。 (2)域完整性:是指表中的列必须满足某种特定的数据类型约束,... -
关系的候选码、主码、外码以及关系的完整性
2020-05-26 17:34:40关系的候选码、主码、外码 候选码 定义:能惟一标识关系中元组的一个属性或属性集,称为候选码(Candidate Key) “学生关系”中的学号能惟一标识每一个学生 “选课关系”中,只有属性的组合“学号+课程号”才能惟一... -
数据库数据完整性的6个约束
2019-03-23 00:05:45数据库数据完整性default约束check约束null约束unique约束primary key约束foreign key约束总结 前言:数据完整性是指存储在数据库中数据的准确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误... -
用户定义完整性约束
2020-03-31 22:40:152.用户定义完整性约束: 用户定义的完整性规则,包括非空约束、自增约束、默认值约束等、check约束以及触发器约束,本次主要学习非空约束、自增约束、默认值约束,check约束以及触发器约束在这里暂时不做介绍。 ... -
5.0 数据库完整性详解(PRIMARY KEY、REFERENCES、CHECK、CONSTRAINT、DOMAIN、TRIGGER)
2020-04-07 19:27:51实体完整性(1)实体完整性的定义(2)实体完整性检查和违约处理2.参照完整性(1)参照完整性定义(2)参照完整性检查和违约处理 0.思维导图 1.数据库完整性概述 简单介绍: 首先先概述一下数据库完整性指的是什么... -
关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
2018-05-04 00:21:14实体完整性规则是指若属性A是基本关系R的主属性 ,则属性A不能取空值。若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为... -
数据库中的数据完整性约束
2018-06-14 18:43:33这篇文章讲的是数据库中的数据完整性约束,如有错误或不当之处,还望各位大神批评指正。 什么是数据完整性约束? 数据完整性:存储在数据库中的所有数据值均正确的状态。它是应防止数据库中存在不符合语义规定的... -
数据库-数据库完整性
2019-06-29 00:26:10数据库完整性 实体完整性 · 定义实体完整性 · 实体完整性检查和违约处理 参照完整性 · 定义参照完整性 · 参照完整性检查和违约处理 用户定义的完整性 · 属性上的约束条件 · 元祖上的约束条件 完整性...