【数据库】二、关系数据库

news2025/1/14 4:19:22

文章目录

  • 二、关系数据库
    • 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代表关系名。关系是一个二维表
  • 每行对于一个元组,每列对应一个域
  • 由于域可以相同,所以每列取一个名字加以区分,称为属性
  • 因为有了属性,因而取消了关系元组的有序性,即关系满足交换律(顺序交换了可由列名来区分,而不依赖于顺序来区分)

一般来说,域的笛卡尔积无意义,从中取出有实际意义的元组才能构成关系。

更严格说,关系是笛卡尔积的有限子集,无限关系在数据库中是无意义的。

候选码:能唯一标识关系中一个元组的某一属性组

  • 候选码可有多个;选定一个为主码
  • 候选码的诸属性称为主属性,不存在于任何候选码的属性称为非主属性

关系的性质

  1. 每个属性必须不可区分(基本要求)
  2. 表中各列取自同一个域。不同列可以来自同一域。
  3. 列的次序可以交换,不影响实际意义
  4. 不允许出现完全相同的两行。行的顺序也不重要。

关系模式:关系模式是对关系的描述。

  • 关系模式是型,静态。关系是值,动态的。
  • 关系模式可以表示为R(U,D,DOM,F)
    • R为关系名
    • U为组成该关系的属性名集合
    • D为属性组U中属性所来自的域
    • DOM为属性向域的映像集合
    • F为属性间数据的依赖关系集合

关系操作的对象和结果都是集合


2 关系数据库

关系数据库:建立在关系模型基础上的数据库

关系数据库的型:数据库的描述。包括若干域上定义关系模式

关系数据库的值:这些关系模式在某一时刻对应的关系集合

关系数据库的操作

  • 查询:连接、投影、并、差、笛卡尔积
  • 数据更新:插入、删除、修改
  • 特点:操作的对象和结果都是集合,一次一集合的方式

3 完整性约束

实体完整性

  • 关系模式中以主码作为唯一标识,主码中的属性即所有主属性都不能取空值

参照完整性

  • 实体和实体间的联系用关系来描述,关系和关系间也存在引用
  • 外码:是本关系的一个或一组属性,但不是本关系的码,外码是另一个关系的主码。虽然外码不是本关系的码,但多个外码可以组成本关系的主码
  • 参照完整性规则:本关系的外码或者取空值,或者等于目标关系的某个主码值。如果多个外码构成本关系的主码,则本关系的外码只能取对应目标关系的主码值。

用户自定义完整性:争对具体的应用环境,给出关系数据库的约束条件,反映具体应用设计数据库必须满足的语句要求

  • 包括:
  • 唯一值约束(UNIQUE
  • 非空值约束(NOT NULL
  • 检查约束(CHECK),例如只能取{男,女}
  • 缺省值约束(DEFAULT),也就是默认值

4 关系运算

传统的:并,交,差,广义笛卡尔积

注:并交差运算的属性个数必须相同

五种基本的关系运算:并、差、笛卡尔积、投影、选择。其他的是衍生出来的。

几个记号

  • 分量:

  • 分量的集合:

    image-20250106153033756

  • 元组的连串:

    image-20250106153114178

  • 象集:

    image-20250106153205939

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=misGender=(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. 连接运算

θ θ θ连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B满足条件的元组组成新的关系

A和B是关系R和S中度数相等且可比 的 属性组

image-20250106154710271

等值连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B相等的元组组成新的关系

image-20250106155043035

自然连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B相等的元组组成新的关系
  3. 在新关系中去掉重复的属性列

其实就是特殊的等值连接

1736150115332

4. 除运算(表达查询)

R ÷ S R÷S R÷S得P(X),由R中某些X属性构成,这些属性满足:

元组在X上分量值x得象集 Y x Y_x Yx包含S在Y上投影的集合。

(看不懂,直接看例子好了)

image-20250106160217799

实例:

image-20250106160811228

理解:“某个属性对应的另一个属性的象级,这个象级和另一个关系的在某个属性上的投影相等”。

看到题目中出现“全部”时用除运算。找出含某个属性所有可能取值的元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快,持续集成(CI)和持续部署(CD)已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器,为开发者提供了一个强大的平台来实施这些实践。然而…

playwright 模拟登录

一、流程如下 C#代码: using Microsoft.Playwright; using Newtonsoft.Json; using System; using System.IO; using System.Net.Http; using System.Text; using System.Xml.Linq;namespace TestProject3 {[TestClass]public class UnitTest1 : PageTest{[TestMet…

使用大数据分析提升电子商务的转化率

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

HTB:Bastion[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用enum4linux…

HAMi + prometheus-k8s + grafana实现vgpu虚拟化监控

最近长沙跑了半个多月,跟甲方客户对了下项目指标,许久没更新 回来后继续研究如何实现 grafana实现HAMi vgpu虚拟化监控,毕竟合同里写了需要体现gpu资源限制和算力共享以及体现算力卡资源共享监控 先说下为啥要用HAMi吧, 一个重要原…

springboot使用Easy Excel导出列表数据为Excel

springboot使用Easy Excel导出列表数据为Excel Easy Excel官网&#xff1a;https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write 主要记录一下引入时候的pom&#xff0c;直接引入会依赖冲突 解决方法&#xff1a; <!-- 引入Easy Excel的依赖 -->&l…

泛目录和泛站有什么差别

啥是 SEO 泛目录&#xff1f; 咱先来说说 SEO 泛目录是啥。想象一下&#xff0c;你有一个巨大的图书馆&#xff0c;里面的书架上摆满了各种各样的书&#xff0c;每一本书都代表着一个网页。而 SEO 泛目录呢&#xff0c;就像是一个超级图书管理员&#xff0c;它的任务就是把这些…

黑马天机学堂学习计划模块

核心功能 系统设计思路 ​​​​​​​ 代码分析 1. 学习记录管理 • 存储学习记录到 Redis&#xff1a; 利用 Redis 缓存学习记录&#xff0c;减少频繁的数据库访问。 public void writeRecordCache(LearningRecord record) {String key String.format("LEARNING:R…

初学stm32 --- DAC输出三角波和正弦波

输出三角波实验简要&#xff1a; 1&#xff0c;功能描述 通过DAC1通道1(PA4)输出三角波&#xff0c;然后通过DS100示波器查看波形 2&#xff0c;关闭通道1触发(即自动) TEN1位置0 3&#xff0c;关闭输出缓冲 BOFF1位置1 4&#xff0c;使用12位右对齐模式 将数字量写入DAC_…

专题 - STM32

基础 基础知识 STM所有产品线&#xff08;列举型号&#xff09;&#xff1a; STM产品的3内核架构&#xff08;列举ARM芯片架构&#xff09;&#xff1a; STM32的3开发方式&#xff1a; STM32的5开发工具和套件&#xff1a; 若要在电脑上直接硬件级调试STM32设备&#xff0c;则…

25年无人机行业资讯 | 1.1 - 1.5

25年无人机行业资讯 | 1.1 - 1.5 中央党报《经济日报》刊文&#xff1a;低空经济蓄势待发&#xff0c;高质量发展需的平衡三大关系 据新华网消息&#xff0c;2025年1月3日&#xff0c;中央党报《经济日报》发表文章指出&#xff0c;随着国家发展改革委低空经济发展司的成立&a…

时序数据库InfluxDB—介绍与性能测试

目录 一、简述 二、主要特点 三、基本概念 1、主要概念 2、保留策略 3、连续查询 4、存储引擎—TSM Tree 5、存储目录 四、基本操作 1、Java-API操作 五、项目中的应用 六、单节点的硬件配置 七、性能测试 1、测试环境 2、测试程序 3、写入测试 4、查询测试 一…

计算机网络 (35)TCP报文段的首部格式

前言 计算机网络中的TCP&#xff08;传输控制协议&#xff09;报文段的首部格式是TCP协议的核心组成部分&#xff0c;它包含了控制TCP连接的各种信息和参数。 一、TCP报文段的结构 TCP报文段由首部和数据两部分组成。其中&#xff0c;首部包含了控制TCP连接的各种字段&#xff…

GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界

马萨诸塞州沃尔瑟姆-2025年1月6日-触觉智能技术领军企业Gelsight宣布&#xff0c;旗下Gelsight Mini视触觉传感器迎来凝胶触头的更新。经内部测试&#xff0c;新Gel凝胶触头耐用性提升40%&#xff0c;外观与触感与原凝胶触头保持一致。此次升级有效满足了客户在机器人应用中对设…

burpsiute的基础使用(2)

爆破模块&#xff08;intruder&#xff09;&#xff1a; csrf请求伪造访问&#xff08;模拟攻击&#xff09;: 方法一&#xff1a; 通过burp将修改&#xff0c;删除等行为的数据包压缩成一个可访问链接&#xff0c;通过本地浏览器访问&#xff08;该浏览器用户处于登陆状态&a…

【ASP.NET学习】ASP.NET MVC基本编程

文章目录 ASP.NET MVCMVC 编程模式ASP.NET MVC - Internet 应用程序创建MVC web应用程序应用程序信息应用程序文件配置文件 用新建的ASP.NET MVC程序做一个简单计算器1. **修改视图文件**2. **修改控制器文件** 用新建的ASP.NET MVC程序做一个复杂计算器1.创建模型&#xff08;…

Git 命令代码管理详解

一、Git 初相识&#xff1a;版本控制的神器 在当今的软件开发领域&#xff0c;版本控制如同基石般重要&#xff0c;而 Git 无疑是其中最耀眼的明珠。它由 Linus Torvalds 在 2005 年创造&#xff0c;最初是为了更好地管理 Linux 内核源代码。随着时间的推移&#xff0c;Git 凭借…

OpenCV实现基于交叉双边滤波的红外可见光融合算法

1 算法原理 CBF是*Cross Bilateral Filter(交叉双边滤波)*的缩写&#xff0c;论文《IMAGE FUSION BASED ON PIXEL SIGNIFICANCE USING CROSS BILATERAL FILTER》。 论文中&#xff0c;作者使用交叉双边滤波算法对原始图像 A A A&#xff0c; B B B 进行处理得到细节&#xff0…

项目实战--网页五子棋(用户模块)(1)

接下来我将使用Java语言&#xff0c;和Spring框架&#xff0c;实现一个简单的网页五子棋。 主要功能包括用户登录注册&#xff0c;人机对战&#xff0c;在线匹配对局&#xff0c;房间邀请对局&#xff0c;积分排行版等。 这篇文件讲解用户模块的后端代码 1. 用户表与实体类 …

机器学习之随机森林算法实现和特征重要性排名可视化

随机森林算法实现和特征重要性排名可视化 目录 随机森林算法实现和特征重要性排名可视化1 随机森林算法1.1 概念1.2 主要特点1.3 优缺点1.4 步骤1.5 函数及参数1.5.1 函数导入1.5.2 参数 1.6 特征重要性排名 2 实际代码测试 1 随机森林算法 1.1 概念 是一种基于树模型的集成学…