关系模型知识点总结(2)—— 关系完整性约束&关系操作基础

简介: 关系模型应提供定义和检验这类完整性机制,以便用统一的系统方法处理他们,而不需要由应用程序承担

一、前言


本文将总结有关关系完整性约束和关系操作的知识点


二、概述


83732d63c7e244df93673ebc6281d46a.png


  • 关系模型的完整性规则是对关系的某种约束条件
  • 目的:保证数据库中数据的正确性和相容性
  • 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性


三、实体完整性


1.定义


  • 主码的值不能为空或者部分为空
  • 空:不知道/不存在/无意义的值


列如:


1.学生(学号,姓名,性别,专业号)这个关系中学号是主码,那么学号就不能为空

2.学生课程(学号,课程号,成绩)这个关系中学号+课程号是主码,那么学号和课程号都不能为空


2.说明


  • 实体完整性规则是针对基本关系而言的
  • 现实世界中实体是可区分的
  • 关系模型中以主码为唯一性标识
  • 主码中属性不能取空值


四、参照完整性


1.定义


如果属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须:


  • 或取空值(F中每个属性都为空值)
  • 或等于S中某个元组的主码值


2.说明


例如:给出如下两种关系


专业信息表


专业号 专业名称
zy01 软件工程
zy02 物联网工程
zy03 计算机科学与技术
zy04 信息系统与信息管理


学生信息表


学号 姓名 专业号
001 张三 zy03
002 李四
003 王五


从上一篇文章【关系模型知识点总结(1)—— 关系数据结构】中的有关【外码】的知识点可以知道:专业号是学生关系中的外码,所以在学生关系中的专业号这个属性的值要么为空:没有专业,要么不为空:填入专业关系中的专业号的值(zy01/zy02/zy03/zy04)


五、用户定义完整性


  • 针对某一具体关系数据库的约束条件,反应某一具体应用所设计数据必须满足的语义要求
  • 关系模型应提供定义和检验这类完整性机制,以便用统一的系统方法处理他们,而不需要由应用程序承担


六、关系操作


1.基本关系操作


  • 查询
  • 插入
  • 删除
  • 修改


2.特点


  • 操作的对象和结构都是集合


3.关系数据语言


1️⃣关系代数语言


  • 用对关系的运算来表达查询要求


2️⃣关系演算语言


  • 用谓词来表达查询要求
  • 元组关系演算语言:谓词变元基本对象是元组变量(APLHA、QUEL)
  • 域关系演算语言:谓词变元的基本对象是域变量(QBE)


3️⃣具有关系代数和关系演算双重特点的语言


  • SQL


七、结语


下一篇文章会讲述有关关系操作中的关系代数部分知识点

相关文章
|
6月前
|
Java 程序员 C#
程序员必知:UML关联聚合组合关系
程序员必知:UML关联聚合组合关系
66 0
|
6月前
|
SQL 数据库 数据库管理
数据库关系运算理论:关系数据操作与关系完整性概念解析
数据库关系运算理论:关系数据操作与关系完整性概念解析
118 0
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
3756 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
JavaScript 数据库
关系数据库——关系数据结构及形式化定义
关系数据库——关系数据结构及形式化定义
156 0
|
SQL 数据库
关系数据库——关系操作和关系完整性
关系数据库——关系操作和关系完整性
266 0
|
存储 JavaScript 数据库
第2章 关系数据库——2.1关系数据结构及形式化定义
第2章 关系数据库——2.1关系数据结构及形式化定义
|
SQL 存储 数据库
第2章 关系数据库——2.2关系操作
第2章 关系数据库——2.2关系操作
|
uml C++ 容器
「软件设计」UML中关联,聚合和组合区别
「软件设计」UML中关联,聚合和组合区别
|
人工智能 vr&ar
关系模型知识点总结(3)—— 关系操作中的关系代数(含题目及详细分析)
我们设R是n目关系,有K1个元组,S是m目关系,有K2个元组,那么他们的笛卡儿积其实就是排列组合,如果将R关系中的每一行看作是abc,S关系中的每一行看作是xyz,那么他们两两组合的方式一共有9种,故 当R有K1个元组,S有K2个元组时,R和S的笛卡儿积行一共有K1×K2个元组;而由于每个关系里都有各自属性,所以R和S的笛卡儿积列一共有(m+n)个元组
535 0
关系模型知识点总结(3)—— 关系操作中的关系代数(含题目及详细分析)
|
JavaScript 数据库
关系模型知识点总结(1)—— 关系数据结构
关系是动态的、随时间不断变化的,关系是关系模式在某一时刻的状态或内容,是因为关系的各种操作引起了数据库中的数据不断更新
479 0
关系模型知识点总结(1)—— 关系数据结构