四川农业大学潘勇浩2016四川农业大学潘勇浩2016关系模型的基本概念域(Domain)是一组具有相同数据类型的值的集合。域中所包含的值的个数称为域的基数。D1={'男','女'}基数为2D2={x|0≤x≤150}基数为151D3={ai,aj|i,j=1,2,3……}基数为无穷四川农业大学潘勇浩2016关系模型的基本概念一组域D1,D2,…,Dn(域可以有相同的)的笛卡尔积(CartesianProduct)为:其中每一个元素(d1,d2,…,dn)称为一个n元组(n-tuple),简称元组(Tuple)。元组中一每一个di称为元组分量若Di的基数为mi,则结果的基数为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}1niim四川农业大学潘勇浩2016关系模型的基本概念(张三,计算机,数据结构),(张三,计算机,肉品加工),(张三,食品,数据结构),(张三,食品,肉品加工),(李四,计算机,数据结构),(李四,计算机,肉品加工),(李四,食品,数据结构),(李四,食品,肉品加工),(王五,计算机,数据结构),(王五,计算机,肉品加工),(王五,食品,数据结构),(王五,食品,肉品加工)例如给定3个域:D1=学生集合={张三,李四,王五}D2=专业集合={计算机,食品}D3=课程集合={数据结构,肉品加工}则D1,D2,D3的笛卡尔积D1×D2×D3为:四川农业大学潘勇浩2016关系模型的基本概念上面3个域D1,D2,D3的笛卡尔积D1×D2×D3也可以表示为如右边所示的二维表:学生专业课程张三计算机数据结构张三计算机肉品加工张三食品数据结构张三食品肉品加工李四计算机数据结构李四计算机肉品加工李四食品数据结构李四食品肉品加工王五计算机数据结构王五计算机肉品加工王五食品数据结构王五食品肉品加工每一行就是一个元组,每一列都来自同一域D1=学生集合={张三,李四,王五}D2=专业集合={计算机,食品}D3=课程集合={数据结构,肉品加工}换种方式表示四川农业大学潘勇浩2016关系模型的基本概念笛卡尔积D1×D2×…×Dn的任意一个子集称为在域D1,D2,…,Dn上的一个关系(Relation)。其中域的数目n称为关系的度(Degree)。度为n的关系称为n元关系。关系可以看作是一张规则的,有意义的二维表。数据结构计算机王五数据结构计算机李四肉品加工食品张三课程专业学生四川农业大学潘勇浩2016关系模型的基本概念关系应具备如下性质:1.不允许出现两个以上完全相同的元组2.元组次序是任意的3.理论上没有列序4.每一列的值来自于同一个域,是同一类型的数据。5.不同的列可来自于同一个域,每一列称为一个属性,有唯一的属性名。6.属性值是不可再分的数据项,即具有原子性。姓名语文数学政治张三586977李四458974王五687462D1=姓名={张三,李四,王五}D2=分数={x|0≤x≤100}四川农业大学潘勇浩2016关系模型的基本概念关系的结构描述称为关系模式(Relationschema),它可以形式化地表示为一个五元组:R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性的集合,D为属性组U中属性所来自的域的集合,DOM为属性向域的映象集合,F为属性间数据的依赖关系的集合。关系模式通常可以简记为R(U)或者R(A1,A2,…,An)其中Ai为属性名。四川农业大学潘勇浩2016关系模型的基本概念学号姓名性别年龄系98001张明男29CS98002李华女30MA98003王军男28IS98004孙六女27IS98005赵龙女18CS98006周艺女22MA98007钟伟男19CSST学号姓名系名9801张明IS9802赵龙CS9803陈然MA9804李科IS9805王军IS9806朱成IS9807黄沙CS学生ST(学号,姓名,性别,年龄,系)学生(学号,姓名,系名)关系关系模式四川农业大学潘勇浩2016关系模型的基本概念学号姓名性别年龄98001张三男2998002李四女30┆┆┆┆99343王五男29码(Key,又称键)是用于标识元组的属性集能唯一标识元组的属性集称为超码(SuperKey)能唯一标识关系中元组的最小属性集称为候选码(CandidateKey)若一个关系有多个候选码,则可以从中选择一个作为主码(PrimaryKey)。四川农业大学潘勇浩2016关系模型的基本概念如果关系R的一个属性组F不是R的主码,但F与另一关系S(R和S可以是同一关系)的主码相对应,则称F为关系R的外码(Foreignkey)。并称关系R为参照关系(referencingrelation),关系S称为被参照关系(referencedrelation)。学号姓名课程号98001张三K0198002李四K0298003王五K01课程号课程名学分K01数据结构3K02软件工程4K03数据库3主码外码参照关系被参照关系学生选课课程四川农业大学潘勇浩2016关系模型的完整性约束学号姓名课程号98001张三K0198002李四K0298003王五K01课程号课程名学分K01数据结构3K02软件工程4K03数据库3主码外码参照关系被参照关系学生选课课程实体完整性(Entityintegrity):主码属性值不能为空值参照完整性(Referentialintegrity):若F是关系R的外码,则F的取值要么为空,要么取被参照关系S的某一主码值。用户自定义的完整性(User-Definedintegrity):用户按实际需要对属性或元组定义的规则或条件。四川农业大学潘勇浩2016关系操作关系操作是指对关系实施的各种操作。关系操作的对象和结果都是关系,实际是集合操作。关系操作主要分为关系查询和关系更新(包括增加、修改和删除)两类。关系操作是一次一集合的操作方式,而非关系数据模型是一次一记录的操作方式。关系代数关系演算SQL元组关系演算域关系演算关系数据语言四川农业大学潘勇浩2016关系代数关系代数是一种抽象的非过程化查询语言,是关系数据操纵语言的一种传统表达方式。运算对象和运算结果都是关系。集合运算并(∪),交(∩),差(-)广义笛卡尔积(×)专门的关系运算选择(σ),投影(Π)连接(),除(÷)关系代数运算比较运算>,<,≥,≤,=,≠逻辑运算与(∧),或(∨),非(┐)辅助专门的关系运算的运算黄色字体为五种基本运算四川农业大学潘勇浩2016关系代数并(Union)设关系R和关系S是相容(具有相同的度,且对应的属性取自同一个域)的,则关系R和关系S的并由属于R或属于S的元组组成,记为:R∪S={t|t∈R∨t∈S}姓名性别赵六男孙七女王五男姓名性别张三男李四女王五男姓名性别张三男李四女王五男赵六男孙七女RSR∪SRSR∪S四川农业大学潘勇浩2016关系代数差(Difference)设关系R和关系S是相容的,则关系R和关系S的差由属于R但不属于S的元组组成,记为:R-S={t|t∈R∧t∈S}姓名性别赵六男孙七女王五男姓名性别张三男李四女王五男姓名性别张三男李四女RSR-SRSR-S四川农业大学潘勇浩2016关系代数交(Intersection)设关系R和关系S是相容的,则关系R和关系S的交由既属于R又属于S的元组组成,记为:R∩S={t|t∈R∧t∈S}姓名性别赵六男孙七女王五男姓名性别张三男李四女王五男姓名性别王五男RSR∩SRSR∩S四川农业大学潘勇浩2016关系代数广义笛卡尔积设m元关系R有a个元组,n元关系S有b个元组,则R和S的广义笛卡尔积是一个有a×b个元组的m+n元关系,其中每一个元组的前m个分量是关系R的一个元组,后n个分量是关系S的一个元组。记作:R×S={t|t=tr,ts∧tr∈R∧ts∈S}学历补助高中78大学240姓名性别年龄张三男20李四女22王五男18姓名性别年龄学历补助张三男20高中78张三男20大学240李四女22高中78李四女22大学240王五男18高中78王五男18大学240RSR×S四川农业大学潘勇浩2016关系代数选择(Selection)——行查询从关系R中选出满足条件F的元组组成新关系,记作:σF(R)={t|t∈R∧F(t)},其中F为一个由属性名(或属性序号)、常量、简单函数用比较运算符和逻辑运算符组成的逻辑表达式。学号姓名性别年龄98001张明男2998002李华女3098003王军男2898004孙六女2798005赵龙女1898006周艺女2298007钟伟男19学生σ性别=‘男’∧年龄20(学生)学号姓名性别年龄98001张明男2998003王军男28σ年龄20(学生)学号姓名性别年龄98005赵龙女1898007钟伟男19四川农业大学潘勇浩2016关系代数投影(Projection)——列查询在关系R中按指定的列序选出若干属性列组成新的关系,记作:∏A(R)={t[A]|t∈R},其中A为一个R的属性名(或属性序号)的序列。注意投影结果中必须消去重复的元组。学号姓名性别年龄98001张明男2998002李华女3098003王军男28学生∏年龄,姓名(学生)年龄姓名29张明30李华28王军性别男女或者∏4,2(学生)∏3(学生)或者∏性别(学生)四川农业大学潘勇浩2016关系代数连接(Join)从关系R和S的广义笛卡尔积中选取R与S的属性间满足一定条件的元组,可记作:其中θ是比较运算符,A和B分别为R和S上度数相等且可比的属性集。θ为“=”时称为等值连接,其它称为非等值连接。A和B是相同的属性集时的等值连接称为自然连接(natural-join),记为:注意自然连接的结果中要消除重复的属性列。R.AθS.BRS=σR.AθS.B(R×S)RS=σR.A=S.A(R×S)四川农业大学潘勇浩2016关系代数连接(Join)ABCa1b13a1b26a2b32a2b44BDb13b27b310b36b55AR.BCS.BDa1b26b13a1b26b55a4b44b13ABCDa1b133a1b267a2b3210a2b326RSCDRSAR.BCS.BDa1b13b13a1b26b36R.C=S.DRSRS隐含连接条件为R.B=S.B四川农业大学潘勇浩2016关系代数除(division)设有关系R(X,Y)和关系S(Y,Z),其中X,Y,Z都是属性组,那么R÷S得到一个新关系P(X),且P是一个满足下列条件的最大关系(即元组数量达到最大值的关系):P中的每个元组t与∏Y(S)中每个元组u所组成的元组(t,u)必在关系R中。由此得出的计算方法为:⑴T=∏X(R)⑵W=(T×∏Y(S))-R⑶V=∏X(W)⑷R÷S=T-V四川农业大学潘勇浩2016关系代数除(division)ABCD123412561245234554345456RCDE341565SAB122354⑴T=∏X(R)⑵W=(T×∏Y(S))-RCD3456∏Y(S)ABCD123412562334235654345456T×∏Y(S)ABCD23342356AB23⑶V=∏X(W)AB1254⑷R÷S=T-VX={A,B}Y={C,D}Z={E}四川农业大学潘勇浩2016关系代数除(division)姓名课程号张三K01李四K02李四K01王五K01张三K03张三K02STC课程号课程名学分K01数据结构3K02软件工程4K03数据库3SC⑴T=∏X(STC)⑵W=(T×∏Y(SC))-STC⑶V=∏X(W)⑷STC÷SC=T-VX={姓名}Y={课程号}Z={课程名,学分}姓名张三李四王五姓名课程号张三K01张三K02张三K03李四K01李四K02李四K03王五K01王五K02王五K03姓名课程号李四K03王五K02王五K03姓名李四王五姓名张三∏Y(SC)T×∏Y(SC)课程号K01K02K03四川农业大学潘勇浩2016关系代数实例学号姓名性别年龄系98001张三男20CS98002李四女19IS98003王五男21IS┆┆┆┆┆ST查询所