一、关系数据结构及形式化定义:
关系:
笛卡尔积:给定一组域D1、D2…、Dn,其笛卡尔积为
D1XD2X...XDn = {(d1,d2,…,dn)|di∈Di}
基数:即为元组个数
关系:D1XD2X...XDn的子集叫做在域D1...Dn上的关系
表示为R(D1,D2,...,Dn)
n目关系必有n个属性
候选码:某一属性能唯一标识一个元组,则称该属性为候选码
全码:关系模式中所有属性都是候选码
主码:若一个关系有多个候选码,则选定一个为主码
主属性:候选码的诸属性均为主属性
三类关系:
基本关系(基本表):实际存在的表
查询表:查询结果对应的表
视图表:由基本表或其他视图表导出的表,是虚表
关系的性质:
列是同质的,同一列来自同一域
不同列可来自同一域
列的顺序和行的顺序无所谓
任意两个元组不能完全相同
每个分量必须取原子值,不可再分
关系模式:
关系模式是型(内涵),关系是值(外延)
关系模式是对关系的描述
R(U,D,DOM,F):关系名(属性名集合,域,属性向域的映像集合,属性间的依赖关系集合)
关系数据库:在一个给定的应用领域,所有关系的集合构成一个关系数据库
二、关系操作:
常见关系操作:
查询:选择、投影、连接、并、交、差、除
更新:插入、删除、修改
关系代数语言:对关系的运算俩表达查询要求ISBL
关系演算语言:用谓词来表达查询要求,包括元组关系演算语言(APLHA、QUEL)和域关系演算语言(QBE)
具有关系代数语言和关系演算语言双重特点:SQL
关系代数:一种抽象的查询语言,对关系的运算来表达查询
三要素(运算对象、运算符、运算结果)
选择:σ;投影:π;连接:
象集:给定一个关系R(X,Z),X和Z为属性组
当t[X] =x时,x在R中的向集为Zx = {t[Z]|t∈R,t[X]=x}
选择:sF(R)={t | t Î R , F(t) = ‘真’}
投影:PA(R) = { t[A] | tÎR } , AÍR
条件连接:R S = { r s | rÎR Ù sÎS Ù r[A] q s[B] }
自然连接:从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的行。
外连接:
除:
- 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
- R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。
三、关系完整性:
通用完整性:关系模型必须满足的完整性约束条件,由关系系统自动支持
实体完整性:主属性不能取空值
参照完整性:外码要么取空值要么取别参照关系中的猪码值
用户定义的完整性:应用领域需要遵循的约束条件