关系数据库
一、关系操作
1.基本关系操作:
关系模型中常用的关系操作包括查询(query) 操作和插入(insert)、 删除(delete)、修改(update) 操作两大部分。
关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择(select)、投影( project)、连接(join)、除(divide)、并(union)、差(except)、交( intersection)、笛卡儿积等。其中选择、投影、并、差、笛卡儿积是5种基本操作,其他操作可以用基本操作来定义和导出,就像乘法可以用加法来定义和导出一样。
二、关系的完整性
关系模型中有三类完整性约束:实体完整性( entity integrity)、参照完整性(referentialintegrity)和用户定义的完整性(user-defined integrity)。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
三、关系代数
1.关系代数的运算分类
按运算符的不同可分为传统的集合运算和专门的关系运算两类。
2.传统的集合运算
传统的集合运算是二目运算,包括并、差、交、笛卡儿积4种运算。
3.专门的关系运算
专门的关系运算包括选择、投影、连接、除运算等。
4.连接
自然连接是一种特殊的等值连接。 它要求两个关系中进行比较的分量必须是同名的属性组,
并且在结果中把重复的属性列去掉。即若R和S中具有相同的属性组B,U为R和S的全体属
性集合。
两个关系R和S在做自然连接时,选择两个关系在公共属性上值相等的元组构成新的关系。此时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,同样,S中某些元组也可能被舍弃。这些被舍弃的元组称为悬浮元组(dangling tuple)。
如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(NULL),那么这种连接就叫做外连接(outer join)如果只保留左边关系R中的悬浮元组就叫做左外连接(left outer join 或left join)如果只保留右边关系S中的悬浮元组就叫做右外连接(right outer join或right join)