博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关系型数据库中的关系到底是什么?(1)
阅读量:3521 次
发布时间:2019-05-20

本文共 508 字,大约阅读时间需要 1 分钟。

定义

关系的定义可以用下面这样一个公式来给出。

R ⊆ (D1×D2×D3 · · · ×Dn)

(关系用符号 R 表示,属性用符号 Ai 表示,属性的定义域用符号 Di 表示)

这个公式读作“关系 R 是定义域 D1, D2, …, Dn 的笛卡儿积的子集”。
公式很简洁,为了便于理解,我们再举个简单的例子解释一下。首先假设
有 3 个属性 a1、 a2、 a3,然后我们描述一下它们的定义域。这里说的定义
域与数学中函数的定义域一样,指的是“属性的取值集合”。我们假设属
性 a1 可以取 1 种值,属性 a2 可以取 2 种值,属性 a3 可以取 3 种值。各
属性对应的定义域分别叫作 d1、 d2、 d3
在这里插入图片描述

笛卡儿积

使用这 3 个定义域生成关系时,最大的元组数是

多少?答案是 6。计算方法很简单,就是 1×2×3 = 6。全部的元组如下
表所示。
在这里插入图片描述

这个关系 R1 就是笛卡儿积。笛卡儿积是指“使用各个属性的定义域

生成的组合数最多的集合”。因此通过上面 3 个定义域生成的所有关系
Rn,都是这个笛卡儿积的子集。例如除了 R1,我们还可以定义 R2,将
R2 定义成由“R1 中的第 1 行和第 2 行

转载地址:http://dhhqj.baihongyu.com/

你可能感兴趣的文章
[LeetCode javaScript] 804. 唯一摩尔斯密码词
查看>>
[LeetCode javaScript] 476. 数字的补数
查看>>
[LeetCode javaScript] 811. 子域名访问计数
查看>>
[LeetCode javaScript] 414. 第三大的数
查看>>
[LeetCode javaScript] 242. 有效的字母异位词
查看>>
[LeetCode javaScript] 75. 颜色分类
查看>>
[LeetCode javaScript] 179. 最大数
查看>>
[LeetCode javaScript] 56. 合并区间
查看>>
[LeetCode javaScript] 190. 颠倒二进制位
查看>>
[LeetCode javaScript] 521. 最长特殊序列 Ⅰ
查看>>
[LeetCode javaScript] 806. 写字符串需要的行数
查看>>
[LeetCode javaScript] 868. 二进制间距
查看>>
[LeetCode javaScript] 824. 山羊拉丁文
查看>>
[LeetCode javaScript] 463. 岛屿的周长
查看>>
[LeetCode javaScript] 107. 二叉树的层次遍历 II
查看>>
[LeetCode javaScript] 637. 二叉树的层平均值
查看>>
[LeetCode javaScript] 1. 两数之和
查看>>
[LeetCode javaScript] 14. 最长公共前缀
查看>>
[LeetCode javaScript] 26. 删除排序数组中的重复项
查看>>
[LeetCode javaScript] 8. 字符串转换整数 (atoi)
查看>>