数据库系统概论--关系运算
关系数据结构
列:对象某一方面的特征
行:一个对象各个方面的特征
关系模型的数据结构是单一的关系,关系模型的数据结构是一张扁平的二维表,实体以及实体间的联系均用二维表来表示,关系模型建立在集合代数的基础上
外码:设f是基本关系r的一个或一组属性,它不是r的码,ks是基本关系s的主码,如果f与ks相对应,则f称为r的外码。并称关系r为参照关系,关系s为被参照关系
- 关系模型建立在集合代数基础上
- 关系数据结构是二维表
- 笛卡尔积是域上的集合运算
- 关系是笛卡尔积的有限子集
传统集合运算
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
关系代数定义了一些操作,运用这些操作可以从一个或多个关系得到另一个关系,关系代数运算的对象是关系,运算的结果也是关系
并
设关系r和s具有相同的属性个数n,且相应的属性取自同一个域,t是r的一个元组(t∈r)。
差
设关系r和s具有相同的属性个数n,且相应的属性取自同一个域,t是r的一个元组(t∈r)
交
设关系r和s具有相同的属性个数n,且相应的属性取自同一个域,t是r的一个元组(t∈r)
笛卡尔积
设关系r的属性个数为n,关系s的属性个数为m;r有k1个元组,s有k2个元组
关系代数用对关系的运算表达查询,主要分为传统集合运算和专门的关系运算,传统的集合运算包括并、交、差、笛卡尔积,统的集合运算是从行的角度进行的二目运算
选择,投影
选择运算是从指定的关系中选择满足给定条件的元组而组成一个新的关系
投影运算是从关系r中选择若干属性列组成一个新的关系。
选择运算从关系中选择满足条件的行,是从行的角度进行运算,投影操作从关系中选择需要的列,是从列的角度进行运算
连接
连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组
一般连接
假设有两个关系r和s,a是r中的属性组,b是s中的属性组,这两个属性组列数相同,而且取值是可以比较的
等值连接
自然连接
连接运算从两个关系的笛卡儿积中选取属性间满足一定条件的元组,等值连接和自然连接是连接运算的两种最为重要也最为常用的类型
除运算
给定关系r(x,y)和s(y,z),其中x、y、z为属性组。r中的y与s中的y可以有不同的属性名,但必须出自相同的域。r与s的除运算得到一个新的关系p(x),p是r中满足下列条件的元组在x属性列上的投影元组在x上分量值x的象集y x 包含s在 y上投影的集合。记作:其中y x 为x在r中的象集,x=t r [x]。定 义r÷s={t r [x]|t r ∈r∧∏ y (s)⊆yx }
除运算-步骤
(1)计算s在属性组y上的投影
(2)计算关系r在属性组x上的投影
(3)计算(2)结果中各元素在关系r中的象集
(4)判断各个象集与(1)中投影的包含关系,若某个象集包含s在属性组y上的投影,则该象集对应的x上的分量值即为除运算的结果元素
设有关系r(x,y)和s(y,z),其中x、y、z为关系的属性组。则:r (x,y) ÷s(y,z)=r (x,y) ÷∏ y (s)
设关系s的属性是r属性的一部分,则r÷s为这样的关系:
此关系的属性由属于r但不属于s的所有属性组成,此关系的任一元组都是r中某元组的一部分。且任取一个元组t,则t与s的任一元组连接后,都为r中原有的一个元组。
象集:x在r中的象集为r中属性组x上值为x的诸元组在z上分量的集合
根据除运算中判断两个集合是否存在包含关系这个特点,来决定问题的解决是否需要使用除运算。
上一篇: 分页查询sql