-
2019-06-26 15:19:04
前言
今天用EF做更新操作时,抛出了System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。”的异常。经过调试之后发现了问题所在。
报错代码:
public void Update(HouseDTO house) { using (ZMZDBEntities ctx = new ZMZDBEntities()) { var bs = new BaseService<HouseEntity>(ctx); var entity = bs.GetById(house.Id); if (entity != null) { entity.Address = house.Address; entity.Area = house.Area; entity.HouseAttachments.Clear();//先删再加 foreach (var aid in house.AttachmentIds) { entity.HouseAttachments.Add(new HouseAttachmentEntity { AttachmentId = aid, HouseId = house.Id }); } entity.CheckInDateTime = house.CheckInDateTime; entity.CommunityId = house.CommunityId; entity.DecorateStatuesId = house.DecorateStatusId; entity.Description = house.Description; entity.Direction = house.Direction; entity.FloorIndex = house.FloorIndex; entity.LookableDateTime = house.LookableDateTime; entity.MonthRent = house.MonthRent; entity.OwnerName = house.OwnerName; entity.OwnerPhoneNum = house.OwnerPhoneNum; entity.RoomTypeId = house.RoomTypeId; entity.StatusId = house.StatusId; entity.TotalFloorCount = house.TotalFloorCount; entity.TypeId = house.TypeId; entity.Address = house.Address; entity.Area = house.Area; ctx.SaveChanges(); } } }
当执行到
ctx.SaveChanges()
是就抛出了异常,而引起问题的代码实际在这里:entity.HouseAttachments.Clear();//先删再加 foreach (var aid in house.AttachmentIds) { entity.HouseAttachments.Add(new HouseAttachmentEntity { AttachmentId = aid, HouseId = house.Id }); }
这里涉及了三个表House、Attachment和HouseAttachment(中间表,只有Id主键,HouseId外键,AttachmentId外键三个字段)。当Clear掉House对应的Attachement时,HouseAttachment就和House脱离了关系(注意:当执行Clear时EF认为我们是要二者脱离关系,而我们的想法是删除House对应的HouseAttachments)。因为是脱离关系,所以HouseAttachment中House对应的外键字段就会被设置为null,以可被其它House所继续关联。而由于HouseAttachment表的HouseId(外键)为非空类型,所以SaveChanges时就报了应为非null的异常。至于EF为什么要这么做,就要理解下EF的 复合(Composition)和聚集(Aggregation)。
分析
对于复合:当父对象创建时子对象也会一并创建,当父对象销毁时子对象也一并销毁,父对象控制着子对象的生命周期。举个例子:你发布了一篇博客,并在博客里上传了一些附件,当你删除这篇博客时对应的附件也应该要一起删掉。
对于聚集:父对象和子对象是独立存在的,当父对象销毁时,子对象仍然可以存在(因为可能会被用到其它父对象中)。举个例子:一个歌单里包括了好几首歌,当这个歌单删除时,它对应的歌曲不应该被删除,因为还可以被加入到其它歌单里。
对于上述例子我们认为它应该是复合,但实际上EF认为是聚集。
EF则根据以下两点来区分复合还是聚集:
- 复合:如果EF在子对象中发现了复合主键(ParentId,ChildId),则认为是复合关系。对于此例来说如果HouseAttachment的Id和HouseId同时为主键,那么就不会报错了,然而我们的主键并不包括HouseId。
- 聚集:如果EF在子对象中发现了外键且不是复合主键,则认为是聚集关系。
所以走到这里问题也就明了了,解决方式有三种:
- 让EF认为我们这是复合关系,Clear时就删除对应的HouseAttachment:就需要将HouseAttachment的Id和HouseId同时设置为主键。
- 仍旧保持聚集关系:将HouseAttachment的HouseId字段设置为可空类型。
- 仍旧保持聚集关系:手动将house下的HouseAttachment删除,将出错代码改为
ctx.HouseAttachments.RemoveRange(entity.HouseAttachments); foreach(var aid in house.AttachmentIds) { ctx.HouseAttachments.Add(new HouseAttachmentEntity { AttachmentId = aid, HouseId = house.Id }); }
Inspired by
The relationship could not be changed because one or more of the foreign-key properties is non-nullable更多相关内容 -
【集合论】二元关系 ( 特殊关系类型 | 空关系 | 恒等关系 | 全域关系 | 整除关系 | 大小关系 )
2020-10-02 19:16:26一、 特殊关系 、 二、 集合上的特殊关系 、 三、 整除关系 、 四、 大小关系 、
一、 特殊关系
特殊二元关系 :
- 空关系
- 恒等关系
- 全域关系
- 整除关系
- 小于等于关系
- 包含关系
- 真包含关系
二、 集合上的特殊关系
集合 A A A 是任意集合 , 集合 A A A 中可以定义以下关系 :
空关系 : ∅ \varnothing ∅ , 空关系中没有关系 ;
恒等关系 : I A = { < x , x > ∣ x ∈ A } I_A = \{ <x, x> | x \in A \} IA={<x,x>∣x∈A}
全域关系 : E A = A × A = { < x , y > ∣ x ∈ A ∧ y ∈ A } E_A = A \times A = \{ <x,y> | x \in A \land y \in A \} EA=A×A={<x,y>∣x∈A∧y∈A} , 任何两个元素之间都有关系 ;
上述三种关系是最基本的关系 , 任意集合都能定义上述三种关系 ;
全域关系 是 最大的关系 , 其中包含所有可能的有序对 ;
空关系 是 最小的关系 , 其中没有任何有序对 ;
恒等关系 有特殊意义 , 关系运算中不起到任何作用 ;
三、 整除关系
A ⊆ Z A \subseteq Z A⊆Z , A A A 集合是整数集的子集 , 定义 A A A 集合上的整除关系 :
D A = { < x , y > ∣ x ∈ A ∧ y ∈ A ∧ x ∣ y } D_A = \{ <x, y> | x \in A \land y \in A \land x|y \} DA={<x,y>∣x∈A∧y∈A∧x∣y}
其中的 x ∣ y x|y x∣y 中的 ∣ | ∣ 符号是整除的意思 , x x x 整除 y y y ;
x x x 整除 y y y , x x x 是除数 (分母) , y y y 是被除数 (分子) ; y x \dfrac{y}{x} xy
y y y 能被 x x x 整除 , x x x 是除数 (分母) , y y y 是被除数 (分子) ; y x \dfrac{y}{x} xy
整除关系示例 :
A = { 1 , 2 , 3 , 4 } A = \{ 1, 2, 3, 4 \} A={1,2,3,4}
D A = { < 1 , 1 > , < 1 , 2 > , < 1 , 3 > , < 1 , 4 > , < 2 , 2 > , < 2 , 4 > , < 3 , 3 > , < 4 , 4 > } D_A = \{ <1, 1> , <1, 2> , <1, 3> , <1, 4> , <2, 2> , <2, 4> , <3, 3> , <4,4> \} DA={<1,1>,<1,2>,<1,3>,<1,4>,<2,2>,<2,4>,<3,3>,<4,4>}
四、 大小关系
A ⊆ R A \subseteq R A⊆R , 集合 A A A 是实数集子集 , 在集合 A A A 上有以下二元关系 :
大于关系 ( Great Than ) :
G A = { < x , y > ∣ x ∈ A ∧ y ∈ A ∧ x > y } G_A = \{ <x,y> | x \in A \land y \in A \land x > y \} GA={<x,y>∣x∈A∧y∈A∧x>y}
大于等于关系 ( Great Than Or Equal To ) :
G E A = { < x , y > ∣ x ∈ A ∧ y ∈ A ∧ x ≥ y } GE_A = \{ <x,y> | x \in A \land y \in A \land x \geq y \} GEA={<x,y>∣x∈A∧y∈A∧x≥y}
小于关系 ( Less Than ) :
L A = { < x , y > ∣ x ∈ A ∧ y ∈ A ∧ x < y } L_A = \{ <x,y> | x \in A \land y \in A \land x < y \} LA={<x,y>∣x∈A∧y∈A∧x<y}
小于等于关系 ( Less Than Or Equal To ) :
L E A = { < x , y > ∣ x ∈ A ∧ y ∈ A ∧ x ≤ y } LE_A = \{ <x,y> | x \in A \land y \in A \land x \leq y \} LEA={<x,y>∣x∈A∧y∈A∧x≤y}
如果 A A A 集合是有限集 , 则 A A A 上的关系是有限个 ;
如果 A A A 集合是无限集 , 则 A A A 上的关系是无限个 ;
-
mysql where中如何判断不为空
2022-03-28 08:38:36mysql where中如何判断不为空 mysql是开源免费的关系型数据库,由于其是免费的,所以使用也是比较广泛的。 mysql数据库的空分为两种:Null、空字符串 本文将针对这些空演示如何判断是否为空,以及如何写sql过滤,...mysql where中如何判断不为空
mysql是开源免费的关系型数据库,由于其是免费的,所以使用也是比较广泛的。
mysql数据库的空分为两种:Null、空字符串
本文将针对这些空演示如何判断是否为空,以及如何写sql过滤,包括使用判空函数
方法/步骤
-
在数据库test的表table1中插入测试记录,包括空字符串、空对象的记录
-
查询 空对象(NULL) 记录,演示如下
-
查询 非空对象(NOT NULL)记录,演示如下
-
查询 空字符串 记录,演示如下
-
查询 非空字符串 记录,演示如下
-
查询空字符串、空对象的记录(使用ifnull()函数)
-
查询不是空字符串、不是空对象的记录(使用ifnull()函数)
-
-
关系数据库——关系操作&&关系模型的完整性
2021-04-04 15:40:39文章目录关系数据库关系操作基本关系操作关系数据库语言的分类关系模型的完整性实体完整性(Entity Integrity)参照完整性(Referential Integrity)用户定义完整性(User-defined Integrity)E-R图向关系模型的转换...本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。文章目录
关系数据库
关系操作
数据模型的三个方面:
- 数据结构
- 数据操作
- 完整性约束
基本关系操作
-
常用的关系操作
👊查询:选择、投影、连接、除、并、交、差
👊数据更新:插入、删除、修改
👊查询的表达能力是其中最主要的部分
👊选择、投影、并、差、笛卡尔积是5种基本操作 -
关系操作的特点
集合操做方式:操作的对象和结果都是集合,一次一集合的方式
关系数据库语言的分类
- 关系代数语言
用对关系的运算来表达查询要求
代表:ISBL - 关系演算语言:用谓词来表达查询要求
元组关系演算语言:
🔸 谓词变元的基本对象是元组变量
🔸 代表:APLHA,QUEL
域关系演算语言:
🔸 谓词变元的基本对象是域变量
🔸 代表:QBE - 具有关系代数和关系演算双重特点的语言
代表:SQL(Structured Query Language)
🔹 SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL(data definition language)、DML(data manipulation language)和DCL(Data Control Language)于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言
🔹 SQL特点:完备的表达能力、非过程化的集合操作、功能强、能嵌入高级语言使用
关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的
关系模型的完整性
为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:
- 实体完整性
- 参照完整性
- 用户定义的完整性
实体完整性(Entity Integrity)
- 实体完整性是指主键的值不能为空或者部分为空
- 关系模型中的一个元组对应一个实体,一个关系则对应一个实体集
例如,一条学生记录对应着一个学生,学生关系对应着学生的集合 - 现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主关系键来唯一标识元组
例如,学生关系中的属性“学号”可以唯一标识一个元组,也可以唯一标识学生实体 - 如果主键中的值为空或部分为空,即主属性为空,则不符合键的定义条件,不能唯一标识元组及其相对应的实体。这就说明存在不可区分的实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此主键的值不能为空或部分为空。
例如,学生关系中的主键“学号”不能为空;选课关系中的主键“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空
参照完整性(Referential Integrity)
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。
例1: 学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)例2: 学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选课(学号,课程号,成绩)-
定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)
-
关系R和S不一定是不同的关系
-
参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
①或者取空值(F的每个属性值均为空值);
②或者等于S中某个元组的主码值。 -
如下图,学生关系中某个学生(如s1或s2)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。
如果某个学生(如s11)“系别”取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值
-
例如:
学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选课(学号,课程号,成绩)如果按照参照完整性规则,选课关系中的外部关系键“学号”和“课程号”可以取空值或者取被参照关系中已经存在的值。但由于“学号”和“课程号”是选课关系中主属性,根据实体完整性规则,两个属性都不能为空。所以选课关系中的外部关系键“学号”和“课程号”中只能取被参照关系中已经存在的值
-
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性
-
除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户定义完整性
用户定义完整性(User-defined Integrity)
- 用户定义完整性是针对某一具体关系数据库的约束条件
- 它反映某一具体应用所涉及的数据必须满足的语义要求
例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等;工资不能低于“地区最低工资” - 关系模型应该提供定义和检验这类完整性的机制,以便使用统一的、系统的方法处理它们,而不要由应用程序承担这一功能
E-R图向关系模型的转换
-
E-R图向关系模型的转换要解决的问题
①如何将实体型和实体间的联系转换为关系模式
②如何确定这些关系模式的属性和码 -
转换内容
将E-R图转换为关系模型:将实体、实体属性和实体之间的联系转换为关系模式。实体型间的联系有以下不同情况:
(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
(2)一个1:n联系可以转换为一个独立的关系模型,也可以与n端对应的关系模式合并
(3)一个m:n联系转换为一个关系模型。例如:“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码 👉选修(学号,课程号,成绩)
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。例如:“讲授”联系是一个三元联系,,可以将它转换为如下关系模式,其中课程号、教工号和书号为关系的组合码👉讲授(课程号,教工号,书号)
综合练习 E-R图
用E-R图表示某个工厂物资管理的概念模型
- 实体
仓库:仓库号、面积、电话号码
零件:零件号、名称、规格、单价、描述
供应商:供应商号、姓名、地址、电话号码、账号
项目:项目号、预算、开工日期
职工:职工号、姓名、年龄、职称 - 实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量;
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系;
(3)职工之间具有领导与被领导关系。及仓库主任领导若干保管员;
(4)供应商、项目和零件三者之间具有多对多的联系
将E-R图转换为关系模式,并说明外键和主键的对应关系
供应(供应商号,项目号,零件号,…)
🔹 (供应商号,项目号,零件号)为主键
🔹 供应商号是外键与供应商的供应商号对应
🔹 项目号是外键与项目的主键项目号对应
🔹 零件号是外键与零件的主键零件号对应
库存(仓库号,零件号,…)
🔹 (仓库号,零件号)为主键
🔹 仓库号是外键与仓库的主键仓库号对应
🔹 零件号是外键与零件的主键零件号对应
工作(仓库号,职工号,领导职工号,…)
🔹 (仓库号,职工号,领导职工号)为主键
🔹 仓库号是外键与仓库的主键仓库号对应
🔹 职工号是外键与职工的主键职工号对应
🔹 领导职工号是外键与职工的主键职工号对应
关系数据库——关系数据结构及形式化定义
关系数据库——关系代数
-
在参照完整性中,为什么外键的属性值也可以为空,什么时候可以为空?
2019-05-09 14:48:20实体完整性规则是指若属性A是基本关系R的主属性 ,则属性A不能取空值。若外键不是主属性,则可以取空值,反之不可以取空值。 -
ID不能为空
2019-07-18 09:58:56新增的一对多关系,连接其他表的ID,新增的同时也要新增其他表的ID数据,不然就不能显示出来的,ID就是连接其他表的路径,也是新增他的表的ID数据,新增不能为空,id为空就是显示不出来。 1,图,下面后面的ID都是... -
【集合论】序关系 ( 偏序关系 | 偏序集 | 偏序集示例 )
2020-10-12 11:17:02一、偏序关系 、 二、偏序集 、 三、偏序集示例 ( 大于等于、小于等于、整除 | 有序对元素是单个数值 ) 、 四、偏序集示例 2 ( 包含关系 | 有序对元素是集合 ) 、 五、偏序集示例 3 ( 加细关系 | 有序对元素是集族 ) -
【集合论】序关系 ( 全序关系 | 全序集 | 全序关系示例 | 拟序关系 | 拟序关系定理 | 三歧性 | 拟线序关系 ...
2020-10-14 11:17:21一、全序关系 ( 线序关系 ) 、 二、全序关系示例 、 三、拟序关系 、 四、拟序关系定理 1 、 四、拟序关系定理 2 、 五、三歧性、拟线序 、 -
【无人机 学习笔记 7】 真实空速、指示空速、标准空速、当量空速之间的关系
2018-12-07 13:35:19真实空速 真实空速(True Air Speed...飞机相对于空气的运动速度也可等价地视为飞机不动而空气以大小相等方向相反的流速流过飞机。根据流体的贝努利方程,流速可以折算成压力,即动压(近似地等于冲压)。根据空气... -
【集合论】序关系 : 总结 ( 偏序关系 | 偏序集 | 可比 | 严格小于 | 覆盖 | 哈斯图 | 全序关系 | 拟序关系 ...
2020-10-27 14:23:30一、偏序关系、 二、偏序集、 三、可比、 四、严格小于、 五、覆盖、 六、哈斯图、 七、全序关系 ( 线序关系 )、 八、拟序关系、 九、拟序关系相关定理、 十、偏序关系八种特殊元素、 十一、链、 十二、反链、 十三... -
避免踩坑,数据库主键字段不能为空
2020-07-02 20:59:27老规矩,翻译+百度了一下,是我的SQL语句有关系,我都快把我的SQL语句看烂了,一个字母一个字母对比,结果没有问题,后来想起来这个表比较特殊,我设定了两个主键,在eclipse控制台输出了一下,对照nativecat的... -
【集合论】等价关系 ( 等价关系概念 | 等价关系示例 | 等价关系与闭包 )
2020-10-08 23:29:20一、等价关系 、 二、等价关系示例 、 三、等价关系与闭包示例 、 -
数据库外键可以为空
2016-01-09 14:12:06一、 关于数据库的外键,以前我一直以为不允许为空的,今天看到一个项目中使用了空的数据库外键,很惊讶,后来才发现...如果不为空,刚必须为主键相同。举个例子:有两张表,系信息表,学生信息表,学生信息表 -
【集合论】关系性质 ( 常见的关系的性质 | 关系性质示例 | 关系运算性质 )
2020-10-07 22:07:02一、常见的关系的性质 、 二、关系的性质示例 、 三、关系运算性质 、 -
neo4j 关系属性_Neo4j:特定关系与一般关系+属性
2020-06-25 01:35:52neo4j 关系属性 ... 我需要决定如何为成员和事件之间的“ RSVP”关系建模。 一个人可以对某个事件表示“是”或“否”,我想同时捕获这两个响应。 即我们可以选择: 和: 在确定模型时,我们主要需... -
关系数据库——关系数据语言
2019-10-22 19:52:51结果为一个集合,集合的每一个元素是一个元组,元组的每一个分量来自不同的域。 基数:一个域允许的不同取值个数。 笛卡尔积的基数:每个域不同取值的个数的乘积,或者说元组的个数 关系:域的笛卡尔... -
【集合论】等价关系个数计算问题 ( 有序对个数计算 | 二元关系个数计算 | 划分 | 等价关系 )
2019-07-17 19:20:17等价关系与划分对应问题 第二类斯特林数计算公式 4元集等价关系计算 6元集等价关系计算 -
等价关系习题 -
2020-12-28 22:03:17R不一定是等价关系。2.试问由4个元素组成的有限集上所有的等价关系的个数为多少? 3.给定集合S={1,2,3,4,5},找出S上的等价关系R,此关系R能够产生划分{{1,2},{3},{4,5}}并画出关系图。 4.设R... -
JS 判断字符串是否为空
2021-01-27 14:34:40从 ES6 开始,JS 共有 7 种数据类型,...typeof 运算符返回变量或表达式的类型,通过 typeof 运算符可以粗略确定 JavaScript 变量的类型。 typeof '' // "string" typeof 'Bill Gates' // "string" typeof . -
long类型判断是否为空
2021-02-12 14:22:52展开全部long不能为空,因为它是简单数据类型,如果是Long就可以e5a48de588b662616964757a686964616f31333366303831为空。定义long的时候除非是类或是结构体中的属性,否则会要求你先赋初值的。如long a=0;作为属性... -
关系数据库-关系代数-数据库习题
2021-07-12 22:40:07关系代数是一种抽象的查询语言,关系代数运算的特点是( )。 A. 运算对象和结果都是元组 B. 运算对象是元组,运算结果是关系 C. 运算对象和结果都是关系 D. 运算对象是关系,运算结果是元组 正确答案: C 关系操作... -
关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
2018-05-04 00:21:14若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值... -
集合及二元关系
2019-06-06 15:47:28集合及关系 关系的运算 AxB:笛卡尔乘积。A中的元素作为第一元素,B中的元素作为第二元素,构成所有的序偶构成的集合作为结果。 domR:R的定义域。R中所有序偶第一元素构成的集合 ranR:R的值域。R中所有序偶... -
北风客户关系管理源码 CRM
2013-01-16 14:16:11如果您能够完整的学好这个项目(自己能够理解业务等),走进企业,您完全不需要去考虑工作是否可以胜任,只要您告诉您的面试官,您所了解CRM方面的业务实现之类的! 2.流行趋势 该项目使用流行的Struts 2 + Hibernate ... -
关系操作及alpha语言学习
2019-06-27 17:20:14文章目录前备知识关系代数传统的集合运算并交差笛卡尔积专门的关系运算选择投影连接除运算alpha语言检索简单检索(不带条件的检索)限定的检索(带条件的检索)带排序的查询指定返回的结果的条数用元组变量的检索用存在... -
关系的候选码、主码、外码以及关系的完整性
2020-05-26 17:34:40关系的候选码、主码、外码 候选码 定义:能惟一标识关系中元组的一个属性或属性集,称为候选码(Candidate Key) ...非主属性:不包含在任何候选码中的属性称为非主属性(或非码属性) 全码 :所有属性 -
数据库 试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
2020-03-07 14:50:41试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值? -
数据库-——关系代数的除法运算最白话解析
2019-10-24 16:53:34数据库-——关系代数的除法运算及易错示例 ...除法//话不多说,直接举例 撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + ... -
关系型数据库中,关系的完整性有哪几种
2020-10-14 17:08:36限制数据类型,缺省值、规则、约束、是否可以为空,域完整性可以确保不会输入无效的值。比如某个属性的值必须在某个范围内,或者默认为0等,这些就是域(列)完整性,也就是用户定义的完整性。 简单来说就是对表...