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

离散数学_九章:关系(2)

9.2 n元关系及其应用

  • 1、n元关系,关系的域,关系的阶
  • 2、数据库和关系
    • 1. 数据库
    • 2. 主键
    • 3. 复合主键
  • 3、n元关系的运算
    • 1. 选择运算 (Select)
    • 2. 投影运算 (Project)
    • 3. 连接运算 (Join)

n元关系:两个以上集合的元素间的关系

1、n元关系,关系的域,关系的阶

设A1,A2,……,An 是集合。定义在这些集合上的n元关系是A1×A2×……×An 的子集。这些集合A1,A2,……,An 称为关系的域,n称为关系的阶。

📘例1:设R是N × N × N上的三元组(a, b, c)构成的关系,是个3阶关系,其中a, b, c是满足a<b<c的整数。那么(1,2,3)∈ R,但是(2,4,3)∉R。它所有的域都等于自然数集。

📘例2:设 R 是 Z × Z × Z 上的三元组(a, b, c)构成的关系,是个3阶关系,其中a, b, c 构成等差数列,即(a,b,c)∈R iff 存在一个整数k,使得 b=a + k , c = a + 2k , 或者 b-a = k, c – b = k 。注意(1,3,5)∈R,但是(2,5,9)∉R,且它所有的域都等于整数集。

//iff:if and only if,当且仅当

2、数据库和关系

1. 数据库

数据库由记录组成,这些记录是由域构成的n元组。
这些域是n元组的数据项

在这里插入图片描述用于表示数据库的关系也称为(因为这些关系常常用表来表示)。表中每个列对应数据库的一个属性

📘例:
表1是学生数据库。这个数据库的属性有学生姓名、学号、专业和GPA在这里插入图片描述

2. 主键

当n元组的某个域的值能够确定这个n元组时,n元关系的这个域就叫作主键。

这就是说,当关系中没有两个n元组在这个域有相同的值时,这个就是主键。

主键可以有不止一个

主键的选择要考虑历史因素!!!考虑数据库的内涵

3. 复合主键

在一个n元关系中,域的组合也可以唯一地标识n元组。当一组域的值确定一个关系中的n元组时,这些域的笛卡儿积就叫作 复合主键

3、n元关系的运算

1. 选择运算 (Select)

设R是一个 n 元关系,C是关系R中元素可能满足的一个条件。定义选择运算 Sc是 将 n 元关系R映射到R中满足条件C的所有n元组构成的n元关系。

⭕选择运算 Sc将 n 元关系R中的所有满足条件的C的挑出来组成一个新的n元关系。相当于在原来的数据表中按照条件C选出了某些行构成一个子表

📘例:在教学课程表中查看物理学专业同学的选课情况。

2. 投影运算 (Project)

投影Pi1,i2,…,im,其中i1<i2<……<im,将n元组(a1,a2,……,an)映射到m元组(ai1,ai2,……,aim),其中m ≤ n 。

投影运算 Pi1,i2,…,im 删除了 n 元组中的n-m个分量,保留了第i1,i2,…,im个分量所有 满足投影条件的列挑出来组成一个新的n-m 元关系。相当于在原来的数据表中按照投影条件选出了某些列构成一个子表。

📘例:在教学安排表中查看教授出现在教室的时间地点。

📘例:
在这里插入图片描述

3. 连接运算 (Join)

设R是m元关系,S是n元关系。定义连接运算 Jp(R,S) 是 m + n - p 元关系,其中 (p≤𝑚) ∧(𝑝 ≤𝑛) , 它包含了所有的 (m + n - p)元组 (a1, a2, a3,……., am-p, c1, c2, ……cp, b1, b2, ……, bn-p), 其中 ,
(a1, a2, a3,……., am-p, c1, c2, ……cp)∈R ∧ (c1, c2, ……cp, b1, b2, ……, bn-p) ∈S

即:连接运算 Jp(R,S) 将 m 元组的后 p 个分量与 n 元组的前 p 个分量相同的第一个关系中的所有 m 元组和第二个关系中的所有 n 元组组合起来形成一个新的关系。

通俗来说就是把两个表合并

📘例:
在这里插入图片描述

http://www.lryc.cn/news/65789.html

相关文章:

  • [ubuntu][原创]通过apt方式去安装libnccl库
  • YonLinker连接集成平台构建新一代产业互联根基
  • 泛型的详解
  • 用科技创造未来!流辰信息技术助您实现高效办公
  • 基于R语言APSIM模型
  • 块状链表实现BigString大字符串操作(golang)
  • 项目问题记录(持续更新)
  • Linux的进程
  • 与其焦虑被 AI 取代或猜测前端是否已死, 不如看看 vertical-align 扎实你的基础!!!
  • 路由、交换机、集线器、DNS服务器、广域网/局域网、端口、MTU
  • 在全志V851S开发板上进行屏幕触摸适配
  • 字符串拷贝时的内存重叠问题
  • 告别PPT手残党!这6款AI神器,让你秒变PPT王者!
  • JVM配置与优化
  • 电力系统储能调峰、调频模型研究(Matlab代码实现)
  • C++基础之类、对象一(类的定义,作用域、this指针)
  • javaScript---设计模式-封装与对象
  • 【消息中间件】kafka高性能设计之内存池
  • 创建型模式——单例(singleton)
  • 算法:迷宫问题
  • 聊聊并发编程的12种业务场景
  • MySQL执行顺序
  • 引领真无线耳机未来趋势,NANK南卡OE骨传导真无线耳机惊艳亮相
  • 5款写作神器,帮助你写出5w+爆款文案,好用到哭
  • 相交链表问题
  • [ubuntu] ax200网卡虚接,导致系统根目录占满而无法进入系统的奇葩问题
  • 本地字体库的引入方法
  • 7种优秀的导航菜单设计总结
  • Problem E. 矩阵游戏 (2023年ccpc河南省赛)
  • 数字孪生模型构建理论及应用