3.1关系模型概述
3.1.1关系模式概念
笛卡尔积
设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为:D1×D2×…×Dn={(d1,d2,…,dn)|di属于Di,i=1,2,…,n}
其中每一个元素(d1,d2,…,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。
比如设:D1={计算机系,信息管理系}
D2={李勇,刘晨,吴宾}
D3={男,女}
则D1×D2×D3={(计算机系,李勇,男),(计算机系,李勇,女),(计算机系,刘晨,男),(计算机系,刘晨,女),(计算机系,吴宾,男),(计算机系,吴宾,女),(信息管理系,李勇,男),(信息管理系,李勇,女),(信息管理系,刘晨,男),(信息管理系,刘晨,女),(信息管理系,吴宾,男),(信息管理系,吴宾,女)}
其中()都是元组,“计算机系”“李勇”等都是分量。
关系的定义:
在关系模型只包含单一的数据结构---关系
属性:
1.关系中元组分量的描述,与定义关系的一组域对应
2.关系所描述的实体的属性,或实体集间联系的属性
3.在同一关系中,属性名不能相同
域:
1.属性的取值范围
2.不同的属性可以有相同的域
3.域都是原子数据的集合
属性间的数据依赖关系:
1.关系的属性与属性之间的一种约束关系
2.现实世界事物特征间的一种依赖关系
3.数据内在的性质
关系模式是关系的型的描述,是静态稳定的
3.1.2完整性约束
实体完整性:若属性A是关系R的主属性,则属性A的值不能为空值(NULL)
例:学生(学号,姓名,性别,所在系)
约束规则体现了关系模型的键约束特性
关系数据库满足一些特殊的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
1.对属性的类型约束
2.对属性值的取值范围进行约束
3.对同一关系的不同元组进行约束
4.对同一关系的各属性进行约束
5.对同一数据库中各关系进行约束
3.1.3 候选键和外键
候选键:
R(A1,A2,…,An)
1.关系中能唯一标志一个元组的最小属性集
2.若一个关系有多个候选键,可选择其中的一个作为主键
3.包含候选键的属性集称为超键
4.若关系只有一个候选键,且这个候选键包含了关系的所有属性,称该候选键为全键
构成候选键的每个属性称为主属性,不包含在任何候选键中的属性称为非主属性或非码属性
外键:
若关系R的一个属性(集)F与关系S的主键Ks对应,即关系R中的元组在F上的取值与关系S中元组的Ks上的值对应,则称该属性(集)F为关系R的外键
3.2.1关系代数
算数运算符:+,-,×,÷
原子操作数:5 ,x
传统的集合运算:并,差,交,广义笛卡尔积
专门的关系运算:投影,选择,连接,除
3.2.2 并,差,交运算
并运算:关系R与关系S的并是一个关系R和S相容的关系,且其元组由属于R或S的元组组成
差运算:关系R与S的差是一个与关系R和S相容的关系,但其元组由属于R但不属于S的元组组成
交运算:关系R与关系S的交是一个关系R和S相容的关系,其元组由即属于R也属于S的元组组成
3.2.3投影,选择运算
投影运算:投影运算是一元的,对属性进行操作的运算,从关系中选择若干属性列组成一个新的关系
选择运算:投影运算是一元的,对元组进行操作的运算,从关系中选择满足给定条件的元组
3.2.4 乘积,连接运算
1.广义笛卡尔积(略掉)
2.连接运算
3.外连接
3.2.5 除运算
R÷S的属性由R中那些不出现在S中的属性组X所组成
3.3关系代数运算