【数据库】二、关系数据库
文章目录
- 二、关系数据库
- 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)…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
