【数据库】二、关系数据库
文章目录
- 二、关系数据库
- 1 关系
- 2 关系数据库
- 3 完整性约束
- 4 关系运算
二、关系数据库
1 关系
域:一组具有相同数据类型的值的集合。
笛卡尔积:所有域(域可相同)中所有取值的组合
例如:D1={1,2,3},D2={A,b},那么D1与D2的笛卡尔积:
D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}
- 元组:笛卡尔积中的每一个元素称为一个元组
- 分量:笛卡尔积元素的每一个值叫做一个分量
- 基数:两个集合的元素个数乘积
- 注:笛卡尔积不满足交换律,即 D1×D2≠D2×D1
关系:笛卡尔积D1×D2的子集叫做在D1、D2上的关系,表示为R(D1,D2)
- R代表关系名。关系是一个二维表
- 每行对于一个元组,每列对应一个域
- 由于域可以相同,所以每列取一个名字加以区分,称为属性
- 因为有了属性,因而取消了关系元组的有序性,即关系满足交换律(顺序交换了可由列名来区分,而不依赖于顺序来区分)
一般来说,域的笛卡尔积无意义,从中取出有实际意义的元组才能构成关系。
更严格说,关系是笛卡尔积的有限子集,无限关系在数据库中是无意义的。
候选码:能唯一标识关系中一个元组的某一属性组
- 候选码可有多个;选定一个为主码
- 候选码的诸属性称为主属性,不存在于任何候选码的属性称为非主属性
关系的性质:
- 每个属性必须不可区分(基本要求)
- 表中各列取自同一个域。不同列可以来自同一域。
- 列的次序可以交换,不影响实际意义
- 不允许出现完全相同的两行。行的顺序也不重要。
关系模式:关系模式是对关系的描述。
- 关系模式是型,静态。关系是值,动态的。
- 关系模式可以表示为R(U,D,DOM,F)
- R为关系名
- U为组成该关系的属性名集合
- D为属性组U中属性所来自的域
- DOM为属性向域的映像集合
- F为属性间数据的依赖关系集合
关系操作的对象和结果都是集合
2 关系数据库
关系数据库:建立在关系模型基础上的数据库
关系数据库的型:数据库的描述。包括若干域上定义关系模式
关系数据库的值:这些关系模式在某一时刻对应的关系集合
关系数据库的操作:
- 查询:连接、投影、并、差、笛卡尔积
- 数据更新:插入、删除、修改
- 特点:操作的对象和结果都是集合,一次一集合的方式
3 完整性约束
实体完整性:
- 关系模式中以主码作为唯一标识,主码中的属性即所有主属性都不能取空值
参照完整性:
- 实体和实体间的联系用关系来描述,关系和关系间也存在引用
- 外码:是本关系的一个或一组属性,但不是本关系的码,外码是另一个关系的主码。虽然外码不是本关系的码,但多个外码可以组成本关系的主码
- 参照完整性规则:本关系的外码或者取空值,或者等于目标关系的某个主码值。如果多个外码构成本关系的主码,则本关系的外码只能取对应目标关系的主码值。
用户自定义完整性:争对具体的应用环境,给出关系数据库的约束条件,反映具体应用设计数据库必须满足的语句要求
- 包括:
- 唯一值约束(
UNIQUE) - 非空值约束(
NOT NULL) - 检查约束(
CHECK),例如只能取{男,女} - 缺省值约束(
DEFAULT),也就是默认值
4 关系运算
传统的:并,交,差,广义笛卡尔积
注:并交差运算的属性个数必须相同
五种基本的关系运算:并、差、笛卡尔积、投影、选择。其他的是衍生出来的。
几个记号:
-
分量:

-
分量的集合:

-
元组的连串:

-
象集:

1. 选择运算:
实质是从关系从选择满足条件的元组。
例子:查询信息管理专业的女生: σ M a j o r = ′ m i s ′ ∧ G e n d e r = ′ 女 ′ ( S t u d e n t ) \sigma_{Major='mis' ∧Gender='女'}(Student) σMajor=′mis′∧Gender=′女′(Student)
2. 投影运算:
从关系中选择出若干属性列组成新的关系
例子:查询商品的价格和名称: π G o o d s N a m e , S a l e P r i c e ( G o o d s ) \pi _{GoodsName,SalePrice}(Goods) πGoodsName,SalePrice(Goods)
3. 连接运算:
θ θ θ连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B满足条件的元组组成新的关系
A和B是关系R和S中度数相等且可比 的 属性组

等值连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B相等的元组组成新的关系

自然连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B相等的元组组成新的关系
- 在新关系中去掉重复的属性列
其实就是特殊的等值连接

4. 除运算(表达查询)
R ÷ S R÷S R÷S得P(X),由R中某些X属性构成,这些属性满足:
元组在X上分量值x得象集 Y x Y_x Yx包含S在Y上投影的集合。
(看不懂,直接看例子好了)

实例:

理解:“某个属性对应的另一个属性的象级,这个象级和另一个关系的在某个属性上的投影相等”。
看到题目中出现“全部”时用除运算。找出含某个属性所有可能取值的元素
相关文章:
【数据库】二、关系数据库
文章目录 二、关系数据库1 关系2 关系数据库3 完整性约束4 关系运算 二、关系数据库 1 关系 域:一组具有相同数据类型的值的集合。 笛卡尔积:所有域(域可相同)中所有取值的组合 例如:D1{1,2,3},D2{A,b}&…...
C#类型转换
C#是静态类型的语言,变量一旦声明就无法重新声明或者存储其他类型的数据,除非进行类型转换。本章的主要任务就是学习类型转换的知识。类型转换有显式的,也有隐式的。所谓显式,就是我们必须明确地告知编译器,我们要把变…...
【Vue】Vue组件--上
目录 一、组件基础 二、组件的嵌套关系 1. 基础架构 2. 嵌套 三、组件注册方式 1. 局部注册: 2. 全局注册: 四、组件传递数据 1. 基础架构 2. 传递多值 3. 动态传递数据 五、组件传递多种数据类型 1. Number 2. Array 3. Object 六、组…...
21、Transformer Masked loss原理精讲及其PyTorch逐行实现
1. Transformer结构图 2. python import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0batch_size 2seq_length 3vocab_size 4logits torch.randn(batch…...
构建高性能网络服务:从 Socket 原理到 Netty 应用实践
1. 引言 在 Java 网络编程中,Socket 是实现网络通信的基础(可以查看我的上一篇博客)。它封装了 TCP/IP 协议栈,提供了底层通信的核心能力。而 Netty 是在 Socket 和 NIO 的基础上,进一步封装的高性能、异步事件驱动的…...
Spring Boot教程之五十六:用 Apache Kafka 消费 JSON 消息
Spring Boot | 如何使用 Apache Kafka 消费 JSON 消息 Apache Kafka 是一个流处理系统,可让您在进程、应用程序和服务器之间发送消息。在本文中,我们将了解如何使用 Apache Kafka 在 Spring Boot 应用程序的控制台上发布 JSON 消息。 为了了解如何创建 …...
Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图
可以根据地理空间数据连接两个索引。在本教程中,我将向你展示如何通过混合邻里多边形和 GPS 犯罪事件坐标来创建纽约市的犯罪地图。 安装 如果你还没有安装好自己的 Elasticsearch 及 Kibana 的话,请参考如下的链接来进行安装。 如何在 Linux࿰…...
csp-j知识点:联合(Union)的基本概念
一、联合(Union)的基本概念 联合是C/C语言中一种特殊的数据结构,它的主要特点是所有成员共享同一块内存空间。这意味着在任何给定时刻,联合中只有一个成员是有效的,因为它们都占用相同的物理内存位置。联合的大小取决…...
docker-compose 方式安装部署confluence
一、confluence简介 Confluence是一款由澳大利亚软件公司Atlassian开发的企业协作工具。它是一个基于web的团队协作平台,用于帮助团队成员共享和协同工作的知识、文档、想法和项目。 Confluence提供了一个集中管理和共享文档、知识库和项目信息的平台。团队成员可…...
深入理解计算机系统阅读笔记-第十二章
第12章 网络编程 12.1 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型的。根据这个模型,一个应用时由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。例如…...
网络原理(九):数据链路层 - 以太网协议 应用层 - DNS 协议
目录 1. 数据链路层 1.1 以太网协议 1.1.1 以太网帧格式 1.2 mac 地址 1.2.1 IP 地址和 mac 地址的区别 1.3 帧中的类型字段 1.3.1 MTU - 最长载荷长度 1.3.2 ARP 协议 2. DNS 协议 1. 数据链路层 数据链路层, 是一个底层的层次, 主要用于交换机开发, 对于 Java 开发…...
rtthread学习笔记系列(4/5/6/7/15/16)
文章目录 4. 杂项4.1 检查是否否是2的幂 5. 预编译命令void类型和rt_noreturn类型的区别 6.map文件分析7.汇编.s文件7.1 汇编指令7.1.1 BX7.1.2 LR链接寄存器7.1.4 []的作用7.1.4 简单的指令 7.2 MSR7.3 PRIMASK寄存器7.4.中断启用禁用7.3 HardFault_Handler 15 ARM指针寄存器1…...
【拒绝算法PUA】3065. 超过阈值的最少操作数 I
系列文章目录 【拒绝算法PUA】0x00-位运算 【拒绝算法PUA】0x01- 区间比较技巧 【拒绝算法PUA】0x02- 区间合并技巧 【拒绝算法PUA】0x03 - LeetCode 排序类型刷题 【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中 C刷题技巧总结: [温习C/C]0x04 刷…...
今日总结 2025-01-14
学习目标 掌握运用 VSCode 开发 uni - app 的配置流程。学会将配置完善的项目作为模板上传至 Git,实现复用。项目启动 创建项目:借助 Vue - Cli 方式创建项目,推荐从国内地址 https://gitee.com/dcloud/uni - preset - vue/repository/archiv…...
关于扫描模型 拓扑 和 传递贴图工作流笔记
关于MAYA拓扑和传递贴图的操作笔记 一、拓扑低模: 1、拓扑工作区位置: 1、准备出 目标 高模。 (高模的状态如上 ↑ )。 2、打开顶点吸附,和建模工具区,选择四边形绘制. 2、拓扑快捷键使…...
C#知识|泛型Generic概念与方法
哈喽,你好啊,我是雷工! 关于泛型在前面学习记录过 《泛型集合List相关方法》、《Dictionary泛型集合的使用总结》; 其中泛型集合 List<T>、Dictionary<k,v>所在的命名空间为:System.Collection.Generic…...
centos 8 中安装Docker
注:本次样式安装使用的是centos8 操作系统。 1、镜像下载 具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可! 1、CentOS官方下载地址:https://vault.centos.org/ 2、阿里云开源镜像站下载:centos安装包…...
vscode vue 自动格式化
vscode vue 自动格式化 安装Prettier和Vetur插件 选择设置,并且转到编辑文件。增加如下内容。 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","[vue]": {"editor.defaultFor…...
Webpack 5 混淆插件terser-webpack-plugin生命周期作用时机和使用注意事项
参考案例代码 海南酷森科技有限公司/webpack-simple-demo Terser(简要的/简短的) 混淆依据 混淆是发生在代码已经 bundle 之后的事情 变量或者函数在被引用或赋值时才能被混淆 孤立的函数或者变量可能会被移除,但不会被混淆,要…...
MQTT(Message Queuing Telemetry Transport)协议
文章目录 一、MQTT 的原理1. 通信模型2. 核心概念3. 工作流程 二、MQTT 的优势1. 轻量级2. 异步通信3. 可靠性4. 实时性5. 支持断线重连6. 跨平台支持7. 安全性 三、MQTT 的典型应用场景四、与其他协议的对比 MQTT(Message Queuing Telemetry Transport)…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
