-
2018-07-29 00:11:11
关系模型的完整性规则是对关系的某种约束条件。关系的完整性约束分为三类:
实体完整性:关系必须有主键,且不能为空;
参照完整性:维护实体之间的引用关系,外键可以为空,或者其值为参照关系对应的主键值;
用户定义的完整性:由应用环境决定,针对具体关系数据库的约束条件。
更多相关内容 -
关系模式的完整性约束
2022-04-23 18:25:25关系模式的完整性约束说说我对完整性约束的理解,首先讲一下什么是完整性
书上对完整性约束的概念是指保证数据的正确性、有效性和相容性的措施。其实就是对输入的数据进行了约束和规范,不符合条件的数据无法写入
一、关系的完整性约束条件包括以下四类:
(1)域完整性约束
定义属性的数据类型和范围作为条件。例如:定义 name char(10); 则在插入记录时记录name值不能写int类型也不能超过char(10)范围
(2)实体完整性约束
等同于primary key 约束(not null & unique)。表中主键值唯一,以保证表中所有行的唯一性,即所有记录都可区分
(3)参照(引用)完整性约束
等同于foreign key约束。F是表 R中的一个或一组属性,F不是表R的键,但F是表S的主键,即表R引用了表S的主键值,则称F是表R的外键。F为NULL或者参照表S中的主键值进行填写
(4)用户定义的完整性约束
等同于check约束。指用户对某一具体数据指定的约束条件进行校验。 例如某个属性必须取唯一值,规定某个属性的取值范围等
二、完整性约束又分为列完整性约束和表完整性约束:
列完整性约束
(1)not null 非空 (2)unique 唯一 (3) not null unique 非空且唯一 (4) default 默认值
表完整性约束
(1)primary key 主键 (2) foreign key 外键 (3)check 检查
-
数据库关系模型完整性约束
2019-12-08 20:47:30一、实体完整性(要求有唯一健) ...二、参照完整性(外键的参照)(引用完整性约束) 参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。 例如表sutdent(有i...参考:https://blog.csdn.net/zwc2xm/article/details/72864589
一、实体完整性(要求有唯一健)
实体完整性要求每个表都有唯一标识符,每一个表中的主键字段不能为空或者重复的值
二、参照完整性(外键的参照)(引用完整性约束)
参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。
例如表sutdent(有id,username,password),表sutdent_info(有id,name,age,sex)。其中表sutdent_info参照了表student。id作为外键。那么当student表删除一行时,表student_info对应的id那一列将被删除或者置空(根据设定的规则而定)。同样,表student_info增加一行,其中的id必须等于student表中的id。
三、用户自定义完整性
用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
也就是说:某个表你设置这一列为null,not null,default,check等。包括:非空约束、唯一约束、检查约束、主键约束 、外键约束
-
关系模型中关系的完整性约束【校订版】
2021-03-03 21:38:41数据库中的数据必须是正确的、一致的、完整的和可靠的,为了防止数据库中存在不符合语义规定的数据和防止因...关系数据库,关系模型中三类完整性约束: 1 实体完整性 2 参照完整性 3 用户定义的完整性 附、触发器关系模型中关系的完整性约束
数据库中的数据必须是正确的、一致的、完整的和可靠的,为了防止数据库中存在不符合语义规定的数据和防止因输入错误数据造成的无效操作,有必要实施数据的完整性约束。
关系数据库,关系模型中三类完整性约束:
1 实体完整性
2 参照完整性
3 用户定义的完整性
附、触发器
【注:本文中的分类是比较常见的,也有不同的分类或说法,没有本质的不同】
一、实体完整性(Entity Integrity)
实体:即表中的一行(一条记录)代表一个实体(entity)
实体完整性的作用:标识每一行数据不重复。
约束类型:
主码约束(primary key)
唯一约束(unique)
其中常用的是主码约束。
主码约束
规定关系的主码(Primary Key)不能取空(NULL)值。这个规则称为实体完整性。
空值就是“不知道”或“无意义”的值。若主属性取空值,就说明存在某个不可标识的实体。
说明
实体完整性规则规定关系的主码(Primary Key)唯一标识表中的每行记录。主码约束有如下特点:每个表中只能有一个主码,主码可以是一列,也可以是多列的组合;主码值必须唯一并且不能为空,对于多列组合的主码,某列值可以重复不能取空值,列的组合值必须唯一。例:
选修(学号,课程号,成绩)
选修关系中,“学号、课程号”为主码,则两个属性都不能取空值
主码约束的例子:
CREATE TABLE student(
id int primary key,
name varchar(50)
);
第二种添加主码约束的方式,如果建立 student表时没有使用primary key,可以在其后使用下句建立外主码约束:
ALTER TABLE student ADD PRIMARY KEY (id);
唯一约束(unique)
特点:数据不能重复。
CREATE TABLE student(
Id int primary key,
Name varchar(50) unique
);
二、参照完整性(Referential Integrity)
在参照完整性约束中,如果表1 中的外键引用表2 的主键,则表1 中的外键的每个值必须为空(null)或在表2 中可用,参见下图:
【表2和表1可以是一对多的关系。】
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign Key)。
基本关系R称为参照关系(Referencing Relation)
基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。
说明
(1)关系R和S不一定是不同的关系
(2)被参照关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上
(3)外码并不一定要与相应的主码同名
当外码与相应的主码属于不同关系时,常常取相同的名字,以便于识别。
参照完整性规则
也称为外键约束
若属性(或属性组)F是基本关系R的外码
它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值。
外键约束的例子:
CREATE TABLE student(
sid int pirmary key,
name varchar(50) not null,
sex varchar(2) default ‘男’
);
CREATE TABLE score(
id int,
score int,
sid int ,
CONSTRAINT fk_score_sid FOREIGN KEY(sid) REFERENCES student(id)
);
第二种添加外键方式,如果建立 score表时没有CONSTRAINT一句,可以在其后使用下句建立外键约束:
ALTER TABLE score ADD CONSTRAINT fk_score_sid FOREIGN KEY(sid) REFERENCES student(id)
建立外键约束后,DBMS将如下检查处理:
外键约束对子表如此检查处理:
在子表上进行INSERT、UPDATE操作的限制是,要和主表中的主键值匹配,或为NULL,否则不允许。
外键约束对父表如此检查处理:
在父表上进行UPDATE、DELETE操作的限制,取决于在定义子表的外键时指定的ON UPDATE、ON DELETE子句(不同的DBMS支持的情况不尽相同)。
对此更详细情况可参见:外键约束详解及术语释疑 :https://blog.csdn.net/cnds123/article/details/39827049
三、用户自定义的完整性(User-defined Integrity)
也有人称为域完整性(Domain Integrity)。用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
【域(Domain)是一组具有相同数据类型的值的集合。如 {‘男’,‘女’};某个取值范围等。实际上,字段(列)的数据类型也是一种域约束。】
关系模型应提供定义和检验用户自定义的完整性的机制。
例:
课程(课程号,课程名,学分)
课程关系中
非主属性“课程名”也不能取空值
非主属性“学分”只能取值{1,2,3,4,5}
包括 非空约束(not null)、 默认值约束(default)、check约束
非空约束:not null
CREATE TABLE student(
Id int pirmary key,
Name varchar(50) not null,
Sex varchar(2)
);
默认值约束 default
CREATE TABLE student(
Id int pirmary key,
Name varchar(50) not null,
Sex varchar(2) default ‘男’
);
check约束(mysql不支持)
CREATE TABLE student(
Id int pirmary key,
Name varchar(50) not null,
Sex varchar(2) default ‘男’,
age tinyint CHECK(age>=18 AND age<=65)
);
顺便提示:sql 语句的关键字不区分大小写,大小写对系统来说都是没差别的,为方便人的阅读建议大写关键字,但本文并未严格遵守。
SQL语句不区分大小写,因此SELECT与select、Select是相同的。许多SQL开发人员喜欢对SQL关键字使用大写,而对列名和表名使用小写,这样做代码更易于阅读和调试。不过,一定要明确虽然SQL关键字是不区分大小写的,但是表名、列名和值可能有所不同(这有赖于具体的DBMS及其如何配置)。
附、触发器
触发器(Trigger)是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,触发器经常用于加强数据的完整性约束和业务规则等。
触发器的功能一般比完整性约束要强得多。一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,则仅给出必要提示以通知用户,仅此而已。而触发器的功能则不仅仅起提示作用,它还会引起系统内自动进行某些操作以消除违反完整性约束条件所引起的负面影响。
触发器除了有完整性保护功能外,还有安全性保护功能。
关于 触发器详细情况可见 https://blog.51cto.com/9291927/2095105
-
关系数据模型的三大完整性约束
2021-07-09 12:53:11要想了解这三类完整性约束,先要了解什么是数据完整性。 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据... -
数据库关系模型的三类完整性约束
2019-02-25 10:12:10关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。 它的意思就是说数据表中每一行都应该有办法... -
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性
2019-08-30 09:06:07关系模型中三类完整性约束: – 实体完整性(Entity Integrity) – 参照完整性(Referential Integrity) – 用户定义的完整性(User-defined Integrity) • 实体完整性和参照完整性是关系模型必须满足的完整性... -
数据库系统概论——关系模型(关系完整性约束)
2021-07-23 12:55:29关系模型必须满足的完整性约束条件称为关系的两个[不变性],应该由关系系统自动支持 实体完整性(Entity lntegrity) 1.关系的主属性不能取 空值 2.空值 就是“不知道”或“不存在”或“无意义”的 值 例: 选修... -
关系数据模型要素之关系完整性约束
2020-12-16 08:20:07关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由DBMS自动支持 实体完整性约束(Entity Integrity Constraint) 此约束指关系的主... -
三种关系完整性约束
2020-10-05 21:50:54关系模型组成:关系数据库,关系操作集合,关系完整性约束。 关系的三类完整性约束: (1)实体完整性(必须) 若属性A是基本关系R的主属性,则A不能取空值。 检查和违约处理: 1)检查主码值是否唯一,如果不唯一则... -
关系模型的完整性约束和数据库安全保护
2021-08-25 10:59:42关系模型的完整性约束 1、实体完整性 实体完整性指每个关系都必须具有主码,且主码对应的所有属性值均不可为空。 空(NULL)值指“不知道”或“不存在”的值。 候选码、主码:一个关系中可以有多个候选码,选一个为... -
【数据库考试】关系数据模型由关系数据结构、关系操作和关系完整性约束 三部分组成。
2022-01-06 18:54:541. 关系数据模型由关系数据结构、关系操作和关系完整性约束 三部分组成。 2. 一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个 共有的属性 3. 在Student表的Sname列上建立一个唯一索引的SQL语句为:... -
MySQL基础笔记(二) 完整性约束
2021-01-19 03:41:06我们知道,一种数据模型必须包含三个基本的部分:构造机制(数据结构):主要描述数据的类型、内容、性质以及数据间的联系等。...作为数据库的一种数据模型,关系模型提供了一组完整性规则或限制。完整性... -
数据库技术课程复习2---关系模型,三级模式结构和完整性约束
2020-07-11 17:38:24关系模型,三级模式结构和完整性约束0.学习前言1.关系模型关系模型里的基本概念术语对比用关系模型描述事件或行为关系数据模型的操纵2.数据库系统的三级模式结构3.关系的三类完整性约束外码**实体完整性****参照完整... -
数据库设计的完整性约束表现在哪些方面
2020-09-10 06:48:22数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量...数据库完整性由各式各样的完整性约束来确保,因而可以说数据库完整性规划即是数据库完整性约束的规划。那么,数据库设计的完整性约束表现哪些方面? -
关系完整性约束
2019-06-15 14:25:21除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。 包括检查(CHECK)、默认值(DEFAULT)、不为空(NOT NULL)、外键(FOREIGN KEY)等约束。 实体完整性(Entity integr... -
关系模型中三类完整性约束以及解释
2018-12-09 19:27:111、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值; 比如学生表的主码通常是取学号为主码 2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素... -
关系的三类完整性约束
2018-03-08 10:08:281.实体完整性若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(不知道、不存在、无意义)。2.参照完整性若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(或者说F引用了K),则... -
SQL 完整性约束
2022-01-19 09:37:15SQL 完整性约束 -
MySQL支持关系模型中、和三种不同的完整性约束
2021-01-30 23:37:23MySQL支持关系模型中、和三种不同的完整性约束答:实体完整性;列完整性\n\n\n\n参照完整性;实体完整性\n\n\n\n用户定义的完整性;参考完整性“三农”问题是指( )答:农业问题 农村问题 农民问题关系模式的候选码... -
关系数据库的三个完整性约束是什么?各是什么含义
2021-01-28 00:32:59展开全部可分为三种类型:与表有关的约束e68a84e8a2ad3231313335323631343130323136353331333436316265、域(Domain)约束、断言(Assertion)。...包括列约束(表约束+NOTNULL)和表约束(PRIMARYKEY、... -
数据库的关系运算和完整性约束
2020-03-02 19:19:48本篇主要讲述关系运算和关系的完整性约束,理解关系操作的含义,了解传统的集合运算,掌握关系代数中基本关系运算。通过本篇的学习,读者应该能掌握以下内容: ● 集合的合并、交集、求差、乘积操作 ● 关系运算的... -
第二章 建立数据模型 模型、完整性约束>
2021-02-02 17:40:56本章内容最重要的两件事就是掌握:ER模型的设计和ER模型向关系模型的转化 本章的知识结构 幕布链接 概念模型 稍微区分下概念模型和数据模型,两者本质上都是对现实世界事物的抽象描述,但是概念模型侧重于以简单... -
数据库关系模型有哪三类完整性约束?
2017-06-05 11:17:04参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。 例如表sutdent(有id,username,password),表sutdent_info(有id,name,age,sex)。其中表sutdent_info参照了表... -
Mysql完整性约束
2022-03-28 19:22:25一、完整性约束的定义 完整性约束(或简称“约束”)是数据库的内容必须随时遵守的规则,它们描述了对数据库的哪一次更新是被允许的。一旦定义了完整性约束,Mysql就会负责在每次更新后,测试新的数据内容是否符合... -
关系数据库——关系操作&&关系模型的完整性
2021-04-04 15:40:39文章目录关系数据库关系操作基本关系操作关系数据库...完整性约束 基本关系操作 常用的关系操作 ????查询:选择、投影、连接、除、并、交、差 ????数据更新:插入、删除、修改 ????查询的表达能力是其中最主要的部分 -
完整性约束的SQL定义
2021-03-15 11:01:09SQL把各种完整性约束作为数据库模式定义的一部分,由数据库管理系统维护,这样即可有效防止对数据库的意外破坏,提高了完整性检测的效率,又减轻了编程人员的负担。SQL Server支持三种完整性约束:1、实体完整性2、... -
mysql 完整性约束
2021-02-07 08:59:55完整性约束是数据库系统必须遵守的约束,他限定了根据数据模型所构建的数据库的状态以及状态变化,以便维护数据库中数据的正确性、有效性和相容性,如果数据不正确,那么一开始就不能添加到表中。下面来让我们盘点...