形式化关系查询语言
- 列表项
tags: 数据库
在关系数据库中,数据库模式是指定义数据库的结构,规定的域约束,参照完整性等。实例对应模式在某一时间的快照。关系模式和关系实例也如此。在这里,一个关系对应数据库的一张表,一个元组对应表内一行数据,属性对应字段。
形式化关系查询语言是SQL所基于的形式化模型,同时它也是其他关系查询语言的基础。
关系代数式一种过程化查询语言。它包含一个运算的集合,这些运算以一个或者两个关系作为输入,产生一个新的关系作为输出。关系代数的基本运算有:选择,投影,并(或),集合差,笛卡尔积和更名。除基本运算外还有集合交,自然连接和赋值。
学习该语言应该以过程化思想理解关系的运算。
集合差:如 r - s 的结果即一个包含所有在r中而不在s中的元组的关系。并运算和集合差都必须是同元的,属性数目相同,每个属性的域都相同。
笛卡尔积:通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合。假设R中有元组M个,S中有元组N个,则R和S的笛卡尔积中包含的元组数量就是M*N。
集合交(与):可以转化为集合差 r ∩ s = r - ( r - s )
关系R与关系S的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接。两个表要做连接,就必须有个连接字段.
连接分类 | 连接说明 |
---|---|
自然连接 | 自然连接首先在笛卡尔积的基础上,基于相同属性的相等性进行选择,最后去除重复属性。自然连接是特殊的等值连接。如果两个关系没有相同属性,那么自然连接结果是个笛卡尔积。 |
theta连接 | θ表示关系比较符。是自然连接的扩展,它使得我们可以把一个选择运算和一个笛卡尔积运算合并为一个运算。可理解为在笛卡尔积上选择满足θ条件的元组形成新的关系。 |
等值连接(内连接) | θ在“ = ”时的连接为等值连接。 |
交叉连接 | 返回一个笛卡尔积 |
这里只举一个关于θ连接的例子:
关系Student
ID | sName | sGPA |
---|---|---|
1133730208 | Wang | 3.1 |
1133730209 | Zhou | 4.0 |
1133730210 | Zhang | 2.2 |
关系College
cName | State | cGPA |
---|---|---|
UC Berkeley | California | 3.2 |
MIT | Massachusetts | 3.5 |
CMU | Pennsylvania | 3.0 |
考虑这样的θ操作Student⋈sGPA>cGPACollege
此时θ为sGPA>cGPA
那么得到的新关系为:
ID | sName | sGPA | cName | State | cGPA |
---|---|---|---|---|---|
1133730208 | Wang | 3.1 | CMU | Pennsylvania | 3.0 |
1133730209 | Zhou | 4.0 | UC Berkeley | California | 3.2 |
1133730209 | Zhou | 4.0 | MIT | Massachusetts | 3.5 |
1133730209 | Zhou | 4.0 | CMU | Pennsylvania | 3.0 |
外连接分类 | 连接说明 |
---|---|
左外连接 | 取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充右侧关系的属性,再把新元组加入到自然连接的结果中 |
右外连接 | 取出右侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充左侧关系的属性,再把新元组加入到自然连接的结果中 |
全外连接 | 左右外连接都做。 |