数据库原理(三)——关系代数
【摘要】 数据库原理——关系代数
3 关系代数
3.1 基本概念
关系代数语言:一种过程化查询语言,简称==关系代数或关系操作==;它包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。
数据库系统功能完备性:一个数据库产品或数据库系统包含==五个基本操作==。
基本操作:
操作名 | 英文 | 符号 |
---|---|---|
选择操作 | select operation | |
投影操作 | project operation | π |
笛卡尔乘积 | Cross product | × |
集合差操作 | Set - diffrent | − |
集合并操作 | union | ∪ |
注:
- 对于其他的操作,都可以由五个基本操作导出
- 选择和投影为==一元运算==,因为它们只对一个关系进行操作;而另外三个对两个关系进行运算,故为==二元运算==。
3.2 五个基本操作
基本操作概念
选择操作:选择操作就是加限制条件选元组。等价于SQL中的where条件。
投影操作:投影就是选取关系中的某些列。等价于SQL中的select。
笛卡尔乘积:两张表所有元组两两匹配的所有结果。
集合并操作:集合中的并。即把数据并在一起,如A表的Sno的数据和B表的Sno数据合并。
集合差操作:集合中的差。即A表数据减去A表中含有与B表数据系统的部分所剩余的结果。
注:
- 投影后的表由于有可能不包含候选键,这就会导致有些元组可能是重复的,这时候系统会自动消除重复元组,所得关系(表)的元组数小于原关系的元组数。如果投影后的表包含候选键,那么元组数和投影前一样。
- 在实际的数据库产品中,数据库投影后他是不会自动去重的,因为数据库他不能保证用户对重复的数据是否有应用价值,所以,除非你要求,不然他不会自动去重。
- 如果两张表需要进行集合并操作,那么其必须满足==并兼容==,否则只能进行外并操作。
并兼容
参与并交差的两个关系的元组必须限制为同类型,也就是相同目,对应的属性的域也需相同。下面的图则不满足并兼容。
3.3其他操作
连接操作
- 连接实际上就是加了条件的笛卡尔乘积。其符号为 。
- 连接符号 代表的都是==自然连接==,即笛卡尔乘积加上默认条件外键相等。
更名操作
- ==关系代数表达式==没有可引用名字,为此,更名操作应运而生。
- 更名用希腊字母rho( )来表示,对于你指定的关系代数表示式E,表示式 返回表示式E的结果,并把名字x赋给了它。
- 如果想要返回结果并且为各属性更名,则可以将更名操作表示为 。
注:
- ==由关系代数运算经有限次复合而成的式子称为关系代数表达式==。这种表达式的运算结果仍然是一个关系。如 就是一条关系代数表达式。
- 赋值操作和更名操作功能有所不同,赋值操作只能将关系代数表达式的结果返回到一个变量中,而更名操作可以将结果返回并且修改结果中的属性名。
集合交操作
- 集合中的交。即找出A表和B表数据中公共的部分并返回。
- 集合交用∩所表示。
- 集合交可以由基本操作r-(r-s)来导出。
外连接与内连接
内连接:A表和B表处于平等关系,即普通连接。
外连接:A表和B表处于主从关系,即主表的元组即使匹配不上从表,也会出现在结果中,匹配不上的地方用NULL值填充。通常外连接分为左外连和右外连,左外连左表为主表,右外连同理。
外并操作
如果在不满足并兼容的条件下还要做并操作,则可以使用外并操作强行整合两表。返回的结果是两表属性的总和,其中一方如果没有另外一方的属性则会被填上NULL。
赋值操作
- 赋值操作就是给关系代数表达式一个新名字。
- 使用符号←表示。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)