数据库工程师基础学习7----关系数据库概述与关系运算

1,关系数据库概述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在数据库中,实体与实体间的关系都是按照关系来存储的.
s(这里是学生的属性)这样建立一张表.
c(也有其对应的属性)
他们之间的关系A(选课也会有属性如成绩,也建立一张表.)

关系模式是用来描述关系的,比如性别只能为男女,学号只能为六位.等

域就是某个属性(关系模式)的取值范围(男女)

候选码:元组(一个表格的一行就用一个元组表示),而候选码就是可以唯一标识这个元组的属性或属性组.

一个元组可能有多个候选码,选择其中一个作为主键或者主码.

这里还有主属性和非主属性.表示在不在候选码中的属性.
在这里插入图片描述
外码就如上图的例子,学生表中有所属院系编号.这个属性并不是学生的属性,而属于院系表中的.就用------表示,主码用____表示.
(课上讲的必须要是外表的主码)如果改成所属院系,下面是院系名称,也不能说是外码.
在这里插入图片描述
在这里插入图片描述
如上图,就是全码的例子.学生,课程,教师是多对多对多的关系.那么这样组成的元组.我们必须知道(sno,cno,tno)才能唯一标识一个元组,叫做全码.
在这里插入图片描述
在这里插入图片描述
在向下,元组就是一条记录.在数据库中一列叫做一个属性,通俗的说法就是字段,数据项.
如上图,就是四元表(注意不是元组的个数而是属性的个数)
元组的个数叫做基数.
这里也可以看到关系模式的样子,他就是型.而关系模型就是若干关系模式的集合,如前面的例子,他起码包含了三个关系模型.
在这里插入图片描述
上图规定了完整的关系模式样子,我们平时使用的都是其简写.R(U)
其中(2)中规定了映射关系,就是PCno的值必须来源于Cno,标识先修课程.
在这里插入图片描述
这里可以看出第六章做的理解是错误的,查询表与视图表并不同,视图表是虚拟的,由基本表导出的表.可能由内层查询构成.但不是用户查询.
在这里插入图片描述
参照完整性是指:学生表中的所属院系是学生表的外码,那么他的值必须来自于院系编号中,不能出现院系编号以外的值.

用户定义完整性:如定义工资>=2000
在这里插入图片描述
答案为a,b,a,b,b
其中第二题,交换关系(理解为一张表)中的两行或者两列都不构成新的关系.因为只是数据的顺序发生变化.
关系中的一个列不可再分.
这里第三题,是对数据库的一种解释.由无数张表组成.

属性,字段,数据项都代表一列.
在这里插入图片描述
答案为c,c,c,c,b
其中第四题,在本章后面会讲到.
在这里插入图片描述
答案为:b,a,d
题中所说的码就对应于候选码,而不是主码,或者其他码.

2,关系运算
在这里插入图片描述
在这里插入图片描述
首先是并,做关系代数运算的时候,首先有一个大前提是,两张表的关系模式是相同的.
其次,做并运算的时候,相同的元组一般不写两次.
在这里插入图片描述
差运算简单来说就是在R中不在S中.并且也要求关系模式相同.
在这里插入图片描述
第三种运算:广义笛卡尔积,这个不要求两个表数据模型相同.目就代表列.
方法就是将R表和S表的列都写在一起(分左右),由于关系表中不允许两列重名,所以如果重名,就将表的名字加上.
然后笛卡尔积结果表的行数=R的行数×S的行数.
在这里插入图片描述
首先一般的投影,记为如上形式,可以看到就是一个select语句实现的功能.

而广义投影,实现了在投影的基础上还有可以运算.(注意上图的运算是错的,但是形式是对的.)
在这里插入图片描述
投影是选择一列,那么选择就是选择符合条件的行.
这里特别注意,1>=6和1>"6"的区别,前一个代表第六个属性值,后一个代表数值6.
在这里插入图片描述
这里的第三个A>B等价于1>2,在计算机中.比较的是英文字母的ASCII码,所以后面的大于前面的(b>a)
在这里插入图片描述
这四列就是第四个式子挑选的结果.

Π用来选择列,形似两竖,所以为投影.σ用来选择行,就像圈出一行的样子.

2,扩展的关系运算
在这里插入图片描述
交运算也要求相同的关系模式.
在这里插入图片描述
第二种,连接运算.可以说就是带有选择功能的笛卡尔积.
由θ连接,等值连接和自然连接,他们的区别就是选择条件不同.
注意θ连接,要求x,y可以进行比较.
在这里插入图片描述
如这个例子
对于这种运算可以不写出R×S,直接找到R.A与S.B进行比较,拿R.A的一个数字与每一个S.B进行比较,符合条件的写出来,就好了.
其实比较S.B与R.A也可以,注意组合顺序不要弄错就好了.
在这里插入图片描述
在这里插入图片描述
同理,等值连接也可以不写出R×S
在这里插入图片描述
首先,自然连接是特殊的等值连接,它要求:
(1).比较两行的属性组名称相同,并且是两张表所有的相同属性组.(如上图R,S,就是比较R.A=S.A并且R.C=S.C)
(2),结果中相同的属性值去掉,只保留一个(最后结果为ABCD)
这明显是用来合并表格的,但是他是按全部的属性名称相同的列进行合并的.
例子如上:
同理,也可以不写出R×S,直接写出自然连接结果.就是取R中一行与S中一 一比较.
在这里插入图片描述
例如上图这种情况,就是需要自然连接合并表的情况.按学号来连接.
在这里插入图片描述
在sql语言中就是这一语句.
在这里插入图片描述
除关系求得方法:
(1)找到R,S得相同属性列,并且将对应的行标出来
(2),可以看到R,S有两行相同(cd,ef),那么需要在R中找到两行CD列分别为(cd,ef),并且其他属性值还相同的.例子中为(ab,ck),这样的就是结果.

这里注意虽然例子中两行(cd,ef)是紧挨着,但是实际并不需要.
如将bdef改为cfef,那么就有两行分别为cfcd,cfef,这样cf就也在除关系的结果中.
在这里插入图片描述
如上图,我们将abef和ckef去掉,R÷S就为空,那么得到的结果就是上图.
有列名,但是没有具体数据.
在这里插入图片描述
第四种为外连接,之前我们合并学生和成绩表的时候用到自然连接,那么如果003,赵六没有参加考试,在表合并的时候,就不会出现他的信息.为了解决这种情况,
在这里插入图片描述
所以求左外连接的步骤:
(1)先求出自然连接的结果
(2)再将左边表中与S表没有连接的两行(bad,dfg)加在自然连接的结果后面.
或者说是,看左边表的各行在自然连接结果中,出现过没有,如果没有就加入到结果中.
在这里插入图片描述
同理这就是右外连接.
左外连接是以左边表为准,右边填充
右外连接是以右边表为准,左边填充
在这里插入图片描述
全外连接就是左右外连接求并集.
在这里插入图片描述
总结如上,其中自然连接并不要求一定要有相同的属性列,但是实际中一般是有的.
在这里插入图片描述
答案为:c,c
这里需要注意E÷F,和F÷E是不同的.
在这里插入图片描述
其中,第二题等价关系,对自然连接进行选择.自然连接可以分为:做笛卡尔点积,对相同属性列进行选择,只保留一个属性相同列.
最后在进行一个选择.
在这里插入图片描述
答案为d,c
其中第一题,的a选项,将题目上的交改成了并,所以不正确.
b选项,先对R,S进行选择,再进行笛卡尔积,选择其中属性值相同的两列值也需要相同,最后进行投影选择,这种方法是可行的.但是b选项,忽略了对应属性列相等这一步.所以选d.
在这里插入图片描述
选项为:b,b,d
在这里插入图片描述
这里答案为:b,d,a,d
其中,第一题第二问,笛卡尔积是无法形成一张信息等价的表的.因为笛卡尔积需要左边表的每一行都与右边表的每一行相结合,如果没有,像自然连接一样,相等条件的话,会出现大量多余行.所以选d.
在这里插入图片描述
答案为b,b
在这里插入图片描述
答案为:b,a,d,a
注意,几元关系代表的是属性值(列),几行叫做基数.
在这里插入图片描述
答案为:a,d,c
首先,需要知道,D1={0,1,2}表示一列三行,如果是D1={(0,1,2)}就表示一行三列.
所以这里都是一列的表.做笛卡尔积当然为3列.
其次,第三问,D2和D3做的是等值连接,而不是自然连接,所以最后的结果如上图右边所示.然后再做笛卡尔积,为6行

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值