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

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

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 元组组合起来形成一个新的关系。


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


📘例:

相关文章
|
算法 Android开发 Python
LeetCode 周赛上分之旅 #43 计算机科学本质上是数学吗?
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
63 0
LeetCode 周赛上分之旅 #43 计算机科学本质上是数学吗?
|
6月前
|
存储 算法 数据挖掘
螺旋矩阵 II:从理论到实践的五种算法解析
螺旋矩阵 II:从理论到实践的五种算法解析
离散数学-考纲版-01-命题逻辑
离散数学-考纲版-01-命题逻辑
|
算法
Plant(快速幂+数学分析(没想到吧,数学无处不在))
Plant(快速幂+数学分析(没想到吧,数学无处不在))
68 0
|
机器学习/深度学习 人工智能 语音技术
离散数学_九章:关系(5)
离散数学_九章:关系(5)
261 0
|
移动开发 vr&ar
离散数学_九章:关系(1)
离散数学_九章:关系(1)
133 0
离散数学_九章:关系(4)(一)
离散数学_九章:关系(4)(一)
101 0
离散数学_九章:关系(3)(二)
离散数学_九章:关系(3)(二)
87 0
|
数据可视化
离散数学_九章:关系(6)(二)
离散数学_九章:关系(6)(二)
366 0
|
机器学习/深度学习 移动开发
离散数学_九章:关系(4)(二)
离散数学_九章:关系(4)(二)
148 0