数据库学习_数据库系统概述_04
2022/3/19 19:28:37
本文主要是介绍数据库学习_数据库系统概述_04,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
关系的完整性
关系模型的完整性规则是对关系模型的某种约束。主要有实体完整性、参照完整性、用户定义的完整性。
一:实体完整性
定义:若属性A 是基本关系R的主属性,则A不能取空值。
关系模型必须遵守实体完整性规则的原因:
实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。
• 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。
注意①空值就是 “ 不知道 ” 或 “ 不存在 ” 或 “ 无意义 ” 的值。
②关系模型中以主码作为唯一性标识。
举个栗子:学生( 学号 ,姓名,出生年份,性别,学院,专业)
• “ 学号 ” 为候选码
• “ 学号 ” 是主属性,不能取空值
再举个栗子:销售( 商品编码,学号 ,销售时间,数量)
• “ 商品编码,学号 ” 为候选码
• “ 商品编码 ” 和 “ 学号 ” 两个属性是主属性,都不能取空值。
可以得出 实体完整性规则规定基本关系的所有主属性都不能取空值。
二:参照完整性
先来了解一下关系之间的引用。
学生、商品、学生与商品之间的多对多联系可以用下面的三个关系表示。
学生( 学号 ,姓名,出生年份,性别,学院,专业,微信号)
商品( 商品编码 ,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)
销售( 商品编码 , 学号 ,销售时间,数量)
• 销售关系中引用了学生关系的主码“ 学号”和商品关系的 主码“ 商品编码” 这两个就是外码。
外码:定义:设F 是基本关系R的一个或一组属性,但不是关 系R 的码,K 是基本关系S 的主码。如果F 与K相对应,则称F 是R 的 外码,并称基本关系R为 为 参照关系 或 目标关系 。
定义属实难以理解。多看例题就好了。
注意:外码与另一个关系(可能是同一关系)的主码相对应。
• 关系R 和S 不一定是不同的关系。
• 目标关系S 的主码K 和参照关系的外码 和参照关系的外码F 必须定义在同一个( 或一 组)域上。
• 外码并不一定要与相应的主码同名。
• 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。
参照完整性规则:参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S 的主码K相对应(基本关系 R 和S 不一定是不同的关系),
则对于R中每个元 组在 F上的值必须为:
• 或者取空值(F的每个属性值均为空值),
• 或者等于S中某个元组的主码值。
三:用户定义的完整性
用户定义的完整性 :针对某一具体应用环境,给关系数据库的约束条件,这些约束条件就是反映某一具体应用所涉及的数据必须满足的语义要求。
用户定义的完整性约束主要包括:
• 唯一值约束(UNIQUE );
• 非空值约束(NOT NULL );
• 检查约束(CHECK );
• 缺省值约束(DEFAULT
举个栗子
学生(学号,姓名,出生年份,性别,学院,
专业,微信号)
• “ 姓名 ” 属性必须取唯一值( 唯一值约束)
• 非主属性 “ 出生年份 ” 不能取空值( 非空值约束)
• “ 性别 ”属性只能取值 属性只能取值{ 男,女}( ( 检查约束)
• “ 性别 ” 默认取值 “ 男 ”
这篇关于数据库学习_数据库系统概述_04的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南