上一节总结了数据模型中的概念模型的三大分类,现在我们从其中的关系数据模型展开,描述关系数据库
关系数据库是支持关系模型的数据库系统,按照数据模型的三个要素,关系模型由关系数据结构,关系操作集合和关系完整性约束3部分组成
1.关系数据结构:关系
域:一组具有相同数据类型的值的集合
笛卡尔积
笛卡尔积是在域上面的一种集合运算
D1*D2*D3*.....*Dn={d1,d2,d3,d4,d5.....,dn};
笛卡尔积用来产生一个二维表
关系:关系是笛卡尔积的一个有限子集,R(D1....Dm),m被称为关系R的度或目,关系也是一个二维表
关系是关系数据模型的采用的数据结构,主要概念有:
候选码,主码,主属性(候选码中的属性),非主属性(不包含在任何候选码中的属性称为非主属性或非码属性)
全码:关系模式的所有属性都是是这个关系的候选属性
2.关系模式:了解概念即可,注意模式二字:关系模式是型,关系是值
关系操作:
关系操作分为
1.查询操作
2.插入(insert)删除(delete)修改操作(update)
查询操作可分为:
选择 投影 并 差 笛卡尔积 除 交 连接
其中基本操作:选择 投影 并 差 笛卡尔积 5种
其他的操作可以通过这5中操作推导出
关系操作的特点是集合操作:即操作对象和操作结果都是集合
关系数据语言分类:
关系代数:对关系的运算来表达查询要求
关系演算:用谓词来表达查询要求
分为:
元组关系演算
域关系演算
SQL:具有关系代数和关系演算双重特点的语言
关系代数,元祖关系演算,域关系演算这三种关系演算语言在表达能力上是完全等价
关系代数:
传统的集合运算:
并 交 差 笛卡尔积
专门的关系运算符:
选择 投影 连接
连接:等值连接(=的范围不局限于相同属性组 不去除重复的属性列)
自然连接:(=的范围局限于相同属性组 去除重复的属性列,舍弃不存在属性组相等的元组)
外连接:(保留那些不存在属性组相等的元组)
左外连接:(只保留右边那些不存在属性组相等的元组)
右外连接:(只保留右边那些不存在属性组相等的元组)
除操作:A(x,y) B(y,z) A中的那些y中全部包含了B中y的元组的x 值。见书本P59
关系的完整性约束
1.实体完整性:主属性不能取空值
2.参照完整性:属性F是基本关系R的外键,F与他的被参照关系S中的主码K相对应
则对于R中每个元组在F上的值,要么为NULL(空),要么就必须是k域中的值
3.用户自定义完整性