当前位置: 首页 > news >正文

【数据库】第二章 关系数据库

第二章 关系数据库

2.1关系数据结构及形式化定义

关系

域(domain) :域是一组具有相同数据类型的值的集合,可以取值的个数叫基数

笛卡尔积 :一个记录叫做一个元组(tuple),元组中每一个属性值,叫一个分量

基数: 域的元素个数

笛卡尔乘积是指在数学中,两个集合XY的笛卡尔积,表示为X×Y,所有有序对

假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

基数为2 x 3=6

在这里插入图片描述

关系: 关系是笛卡尔积的子集,每一行对应一个元组,每一列对应一个域,列名叫做属性(attribute)

R是表的名字,n是属性个数,叫做关系的目或度(degree)

在这里插入图片描述

候选码(candidate key): 某一属性组的值能唯一标识一个元组,而他的子集不能,则称该属性组为候选码。

主码(primary key): 若一个关系有多个候选码,则选定其中一个为主码。

主属性: 属于候选码的属性叫主属性。其他属性叫非主属性或非码属性

全码: 若关系模式的所有属性都是这个关系模式的候选码,称为全码。

外码:依赖于另一个关系的主码

关系的三种类型

  • 基本关系(基本表/基表):实际存在的表
  • 查询表:查询结果对应的表
  • 视图表:是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

基本关系的6条性质:

  1. 列是同质的。(同一数据类型)
  2. 不同的列可以出自同一个域,不同的属性要有不同的属性名
  3. 列的顺序无所谓。
  4. 任意两个元组的候选码不能取相同的值。
  5. 行的顺序无所谓。
  6. 分量必须取原子值,每一个分量都不可分。

关系模式

在这里插入图片描述

或者表示为R(U,D,DOM,F)

R:关系名。

U:组成该关系的属性名的集合。

D: U中的属性所来自的域。

DOM:属性向域的映像集合。

F:属性见数据的依赖关系集合。

关系是关系模式在某一时刻的状态或内容

关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的。

关系数据库

关系数据库的型就是关系数据库模式

关系数据库的值就是关系数据库模式在某一时刻对应的关系的集合

2.2关系操作

特点:集合操作方式,操作对象和结果都是集合

也称为一次一集合的方式,非关系数据库模型的操作方式则成为一次记录的方式

关系数据语言的分类

  • 代数方式:关系代数,用关系的运算来表达查询要求
  • 逻辑方式:关系演算,用谓词来表达查询要求
    • 元组关系演算
    • 域关系演算

以上三种方式在表达能力上是等价的,都具有完备的表达能力;它们是抽象的查询语言。与实际的查询语言并不完全一样,但它们能用作评估实际系统中查询语言能力的标准或基础

  • 具有关系代数和关系演算双重特点的语言:SQL(Structured Query Language)

SQL是集查询(DQL),数据定义语言(DDL),数据操纵语言(DML)和数据控制语言(DCL)于一体的关系 数据语言

2.3关系的完整性

关系模型中有三类完整性约束:实体完整性,参照完整性和用户定义完整性。

前两个是关系模型必须满足的

实体完整性

若属性A是基本关系R的主属性,那么A不能取空值。

参照完整性

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

  1. 或者等于空值(F的每个属性均为空)。
  2. 或者等于S中某个元组的主码值。

用户定义完整性

用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 主要包括非空约束、唯一约束、检查约束、主键约束、外键约束。

2.4 关系代数

关系代数是一种抽象的查询语言,他用对关系的运算来表达查询

三要素: 运算对象(一种关系),运算符,运算结果(一种关系)

在这里插入图片描述

传统的集合运算

并(Union)

R和S
具有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域

R∪S
仍为n目关系,由属于R或属于S的元组组成
R∪S={t∣t∈R∨t∈S}R∪S = \{ t|t \in R∨t \in S \} RS={ttRtS}

差(difference)

R和S
具有相同的目n
相应的属性取自同一个域

R - S
仍为n目关系,由属于R而不属于S的所有元组组成
R−S={t∣t∈R∧t∉S}R -S = \{ t|t\in R∧t \notin S \} RS={ttRt/S}

交(intersection)

R和S
具有相同的目n
相应的属性取自同一个域

R∩S
仍为n目关系,由既属于R又属于S的元组组成
R∩S={t∣t∈R∧t∈S}R∩S=R–(R−S)R∩S = \{ t|t \in R∧t \in S \} \\ R∩S = R –(R-S) RS={ttRtS}RS=R(RS

笛卡尔积

严格地讲应该是广义的笛卡尔积(Extended Cartesian Product)
R: n目关系,k 1 个元组
S: m目关系,k2 个元组

R×S
列:(n+m)列元组的集合
元组的前n列是关系R的一个元组
后m列是关系S的一个元组
行:k1 × k2 个元组
R×S={trts^∣tr∈R∧ts∈S}R×S = \{\widehat{tr \ ts} |tr \in R ∧ ts \in S \} R×S={tr tstrRtsS}

专门的关系符运算

选择(selection)

在这里插入图片描述

关系代数中<> 表示不等于

投影(project)

在这里插入图片描述

如果有重复的,要去掉

连接(join)

也称为θ-连接

在这里插入图片描述

DBMS在进行连接操作的时候,不会先生成笛卡尔积,因此效率更高

对自身的连接,要用到更名

在这里插入图片描述

等值连接

当θ为“=” 时,称为等值连接

自然连接

自然连接是一种特殊的等值连接
在这里插入图片描述

在自然连接中被舍弃的元组被称为悬浮元组

外连接

如果把悬浮元组保留在结果关系中,而在其他属性上填空值null,那么这种链接就叫做外连接
在这里插入图片描述

除(divide)

在这里插入图片描述

S 可以有R没有的属性
在这里插入图片描述

R ÷ S 和 S 的笛卡尔积 是 R 和S 自然连接 的子集

2.5关系演算

关系元组演算

在这里插入图片描述

在这里插入图片描述

关系域演算

在这里插入图片描述

在这里插入图片描述

相关文章:

【数据库】第二章 关系数据库

第二章 关系数据库 2.1关系数据结构及形式化定义 关系 域&#xff08;domain) :域是一组具有相同数据类型的值的集合&#xff0c;可以取值的个数叫基数 笛卡尔积 &#xff1a;一个记录叫做一个元组&#xff08;tuple),元组中每一个属性值&#xff0c;叫一个分量 基数&…...

oracle和mysql的分页

oracle的分页&#xff1a;rownum 注意:&#xff1a; 对 ROWNUM 只能使用 < 或 <, 用 、 >、 > 都不能返回任何数据。 rownum是对结果集的编序排列&#xff0c;始终是从1开始&#xff0c;所以rownum直接使用时不允许使用>、> 所以当查询中间部分的信息时&…...

深拷贝与浅拷贝的理解

浅拷贝的理解浅拷贝的话只会拷贝基本数据类型&#xff0c;例如像string、Number等这些&#xff0c;类似&#xff1a;Object、Array 这类的话拷贝的就是对象的一个指针(通俗来讲就是拷贝一个引用地址&#xff0c;指向的是一个内存同一份数据)&#xff0c;也就是说当拷贝的对象数…...

Shell变量

一、变量分类 根据作用域分三种 &#xff08;一&#xff09;只在函数内有效&#xff0c;叫局部变量 &#xff08;二&#xff09;只在当前shell进程中有效&#xff0c;叫做全局变量 &#xff08;三&#xff09;在当前shell进程与子进程中都有效&#xff0c;叫做环境变量 shell进…...

Android 8请求权限时弹窗BUG

弹窗BUG 应用使用requestPermissions申请权限时&#xff0c;系统会弹出一个选择窗口&#xff0c;可进行允许或拒绝&#xff0c; 此窗口中有一个”不再询问“的选择框&#xff0c; ”拒绝”及“允许”的按钮。 遇到一个Bug,单点击“不再询问”&#xff0c;“允许”这个按钮会变…...

路漫漫:网络空间的监管趋势

网络空间是“以相互依存的网络基础设施为基本架构&#xff0c;以代码、信息与数据的流动为环境&#xff0c;人类利用信息通讯技术与应用开展活动&#xff0c;并与其他空间高度融合与互动的空间”。随着信息化技术的发展&#xff0c;网络空间日益演绎成为与现实人类生存空间并存…...

洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

最后水一篇水题题解&#xff08;实在太水了&#xff09; # [USACO1.3]混合牛奶 Mixing Milk ## 题目描述 由于乳制品产业利润很低&#xff0c;所以降低原材料&#xff08;牛奶&#xff09;价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。 Marry 乳业从一些奶农手…...

数据库的基本查询

注意&#xff1a;LIMIT的两个参数&#xff0c;第一个是起始位置&#xff0c;第二个是一次查询到多少页。注意&#xff1a;什么类型的数字都是可以排序的。日期的降序是从现在到以前&#xff0c;MySQL ENUM值如何排序&#xff1f;在MYSQL中&#xff0c;我们知道每个ENUM值都与一…...

10 分钟把你的 Web 应用转为桌面端应用

在桌面端应用上&#xff0c;Electron 也早已做大做强&#xff0c;GitHub桌面端、VSCode、Figma、Notion、飞书、剪映、得物都基于此。但最近后起之秀的 Tauri 也引人注目&#xff0c;它解决了 Electron 一个大的痛点——打包产物特别大。 我们知道 Electron 基于谷歌内核 Chro…...

Delphi RSA加解密(二)

dll开发环境: Delphi XE 10.1 Berlin exe开发环境: Delphi 6 前提文章: Delphi RSA加解密(一) 目录 1. 概述 2. 准备工作 2.1 下载DEMO程序 2.2 字符编码说明 3. Cryption.dll封装 3.1 接口概况 3.2 uPub.pas单元代码 3.3 uInterface.pas单元代码 3.4 特别注意 4. 主程序…...

pytorch 深度学习早停设置

当你设置早停的时候你需要注意的是你可能得在几个epoch后才开始判断早停。 早停参数设置 早停&#xff08;Early Stopping&#xff09;是一种常用的防止深度学习模型过拟合的方法。早停的设置需要根据具体情况进行调整&#xff0c;常见的做法是在模型训练过程中使用验证集&am…...

【Vue学习】Vue高级特性

1. 自定义v-model Vue中的自定义v-model指的是在自定义组件中使用v-model语法糖来实现双向绑定。在Vue中&#xff0c;通过v-model指令可以将表单元素的值与组件实例的数据进行双向绑定。但是对于自定义组件&#xff0c;如果要实现v-model的双向绑定&#xff0c;就需要自定义v-…...

Android 12.0 系统Settings去掉开发者模式功能

1.概述 在12.0的系统rom产品定制化开发中,在系统Settings中的关于手机的选项中,系统默认点击版本号5次会自动打开开发者模式,但是在某些产品开发过程中,禁止打开开发者模式,需要去掉开发者模式的功能,所以需要在系统Settings中查看开发者模式的相关流程代码,然后禁用掉开…...

buu [NCTF2019]babyRSA 1

题目描述&#xff1a; 题目分析&#xff1a; 首先明确两个公式&#xff1a; e*d 1 mod (p-1)(q-1) ed1 e*d - 1 k(p-1)(q-1)想要解出此题&#xff0c;我们必须知道n,而要知道n,我们要知道p和q的值通过 e*d 的计算&#xff0c;我们知道其长度为2066位&#xff0c;而生成p的…...

Java:如何选择一个Java API框架

Java编程语言是一种高级的、面向对象的语言&#xff0c;它使开发人员能够创建健壮的、可重用的代码。Java以其可移植性和平台独立性而闻名&#xff0c;这意味着Java代码可以在任何支持Java运行时环境(JRE)的系统上运行。Java和Node js一样&#xff0c;是一种功能强大的通用编程…...

mt6735 MIC 音量的调整及原理介绍

[DESCRIPTION] MIC 音量的调整及原理介绍[SOLUTION] audio_ver1_volume_custom_default.h#define VER1_AUD_VOLUME_MIC \ 64,112,192,144,192,192,184,184,184,184,184,0,0,0,0,\ 255,192,192,180,192,192,196,184,184,184,184,0,0,0,0,\ 255,208,208,180,255,208,196,0,0,0,0,…...

【深度学习】什么是线性回归逻辑回归单层神经元的缺陷

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录逻辑回归&线性回归单层神经元的缺陷单层神经元的缺陷逻辑回归&线性回归 线性回归预测的是一个连续值&#xff0c; 逻辑回归给出的”是”和“否”的回答. 等…...

Spring拦截器

SpringMVC提供了拦截器机制&#xff0c;允许运行目标方法之前进行一些拦截工作或者目标方法运行之后进行一下其他相关的处理。自定义的拦截器必须实现HandlerInterceptor接口。preHandle()&#xff1a;这个方法在业务处理器处理请求之前被调用&#xff0c;在该方法中对用户请求…...

8个可能降低网站搜索引擎信任度的错误

如果觉得文章对你有用请点赞与关注&#xff0c;每一份支持都是我坚持更新更优质内容的动力&#xff01;&#xff01;&#xff01;例如&#xff0c;发布一段质量差的网站内容不会完全破坏您的排名机会&#xff0c;只要您的内容策略的其余部分井井有条。但是本地SEO中存在一些错误…...

弱监督论文阅读:P2BNet算法笔记

标题&#xff1a;Point-to-Box Network for Accurate Object Detection via Single Point Supervision 会议&#xff1a;ECCV2022 论文地址&#xff1a;https://link.springer.com/10.1007/978-3-031-20077-9_4 官方代码&#xff1a;http://www.github.com/ucas-vg/P2BNet 作者…...

深度解析Windows设备指纹伪装技术:EASY-HWID-SPOOFER内核级硬件隐私保护实现

深度解析Windows设备指纹伪装技术&#xff1a;EASY-HWID-SPOOFER内核级硬件隐私保护实现 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER 在数字化时代&#xff0c;硬件隐私保护已成…...

Linux网络命名空间实战:5分钟搞定veth pair跨命名空间通信

Linux网络命名空间实战&#xff1a;5分钟搭建隔离通信环境 在云计算和容器化技术蓬勃发展的今天&#xff0c;Linux网络命名空间已经成为系统管理员和开发者的必备技能。想象一下&#xff0c;当你需要在单台物理机上同时运行多个需要独立网络环境的服务时&#xff0c;传统方式可…...

解锁JSON Viewer 3大效率黑科技:从数据解析到开发提效的全流程解决方案

解锁JSON Viewer 3大效率黑科技&#xff1a;从数据解析到开发提效的全流程解决方案 【免费下载链接】json-viewer It is a Chrome extension for printing JSON and JSONP. 项目地址: https://gitcode.com/gh_mirrors/js/json-viewer JSON Viewer是一款专为开发者打造的…...

Qwen3-Embedding-4B入门必看:Embedding模型vs LLM生成模型的核心差异

Qwen3-Embedding-4B入门必看&#xff1a;Embedding模型vs LLM生成模型的核心差异 1. 引言&#xff1a;从关键词搜索到语义理解 你是否曾经遇到过这样的困扰&#xff1a;在搜索引擎中输入"苹果"&#xff0c;结果既出现了水果苹果的信息&#xff0c;又出现了苹果公司…...

高效开源输入法词库转换实战指南:30+格式无缝互转技巧

高效开源输入法词库转换实战指南&#xff1a;30格式无缝互转技巧 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 深蓝词库转换是一款功能强大的开源输入法词库转换工…...

DanKoe 视频笔记:每日60分钟改变生活:引言与概述

在本教程中&#xff0c;我们将学习如何通过每天投入60分钟来系统地改变生活。我们将探讨常规的重要性&#xff0c;并介绍三个核心习惯&#xff0c;帮助你重新掌控精力、提升财务状况、改善健康以及获得内心的清晰。 每日60分钟改变生活&#xff1a;2&#xff1a;常规的必要性 …...

Kimi-VL-A3B-Thinking图文问答实操手册:从镜像拉取到Chainlit交互验证

Kimi-VL-A3B-Thinking图文问答实操手册&#xff1a;从镜像拉取到Chainlit交互验证 1. 引言&#xff1a;为什么你需要关注这个图文对话模型&#xff1f; 想象一下&#xff0c;你手头有一张复杂的图表&#xff0c;或者一份满是文字的截图&#xff0c;你想快速知道里面的关键信息…...

如何用Tool-SQL解决Text2SQL中的条件不匹配问题?实战案例分享

实战解析&#xff1a;用Tool-SQL攻克Text2SQL条件不匹配难题 当数据工程师面对"帮我找出上季度华东区销售额超50万但退货率低于5%的客户"这类业务查询时&#xff0c;传统Text2SQL方案常陷入条件错配的泥潭——系统生成的SQL要么遗漏关键约束&#xff0c;要么将"…...

Java后端如何通过异步非阻塞方式提高美团外卖API并发调用能力

Java后端如何通过异步非阻塞方式提高美团外卖API并发调用能力 在“外卖霸王餐”等高并发业务场景中&#xff0c;系统往往需要同时调用美团、饿了么等多个第三方API。传统的同步阻塞IO模型&#xff08;如使用RestTemplate或HttpClient直接调用&#xff09;会导致Tomcat工作线程在…...

BilibiliDown终极指南:三步搞定B站视频下载,支持批量收藏夹与UP主作品

BilibiliDown终极指南&#xff1a;三步搞定B站视频下载&#xff0c;支持批量收藏夹与UP主作品 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https:…...