关系数据库数学模型1.ppt_第1页
关系数据库数学模型1.ppt_第2页
关系数据库数学模型1.ppt_第3页
关系数据库数学模型1.ppt_第4页
关系数据库数学模型1.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/44,2.1 基本概念 2.2 关系模型 2.3 关系代数 2.4 关系演算,目录,2/44,2.1 基本概念,域(Domain) 定义:一组具有相同数据类型的值的集合。 例如,假设规定人的年龄在1至200之间,那么年龄对应的域就是1至200所有整数的集合; 如果用1表示性别为男,0为女,则性别对应的域就是0,1。,3/44,笛卡儿积(Cartesian Product) 定义:给定一组域D1,D2,Dn, 则D1,D2,Dn的笛卡儿积为: D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 其中:每一个元素(d1,d2,dn)称为一个n元组(n-tuple)或元组(Tuple) ; 元素中的每一个值di称为一个分量(Component)。 若Di为有限集,其基数(Cardinal number)为mi, 则 D1D2Dn的基数为:,2.1 基本概念,4/44,笛卡儿积可表示为一个二维表,表中每行对应一个元组,每列对应一个域。 例如,给出两个域: D1=Student=王南,李婷,表示学生集合 D2=Major=理学院,信息学院,表示学院集合 D1D2=(王南,理学院),(王南,信息学院),(李婷,理学院),(李婷,信息学院),对应二维表为: D1D2 基数为4。 D1D2 共4个元组。,2.1 基本概念,5/44,关系(Relation) 定义:D1D2Dn的子集称为域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn) 其中,R可以任意命名,是关系的名称,n是关系的目或度(Degree)。 关系是笛卡儿积的有限子集,也是一个二维表,表的每行对应一个元组,每列对应一个域。每列的名字称为属性(Attribute)。 若关系中某一属性组能唯一标识一个元组,则称该属性组为候选键(Candidate key);候选键中可以选定一个作为主键(Primary key)。主键的诸属性称为主属性(Prime attribute)。例如,学生关系中的学号可设为主键。,2.1 基本概念,6/44,例如,前页的表中,可以取出一个子集作为关系,名称为SUBR,属性命名为StuName和Maj_Desp,表示为:SUBR(StuName,Maj_Desp) 关系的每个分量必须是不可分的。例如,下面的表不能表示为关系(不能有表中表):,2.1 基本概念,7/44,2.2 关系模型,关系模型包括数据结构、关系操作和完整性。 数据结构 关系模型的数据模型非常单一,实体和实体间联系均使用关系表示。可以将关系理解为一个二维表格。,8/44,完整性 1. 实体完整性 规则:若属性A为基本关系R的主属性,则属性A不能取空值。 例如,学生关系中,如果学号是主键,则所有的元组(即学生的记录)中学号属性不能为空,因为每个学生必有学号。,2.2 关系模型,9/44,关系操作 关系模型是基于关系代数数学基础的模型,关系运算的语言分为两类: 关系代数语言:把关系当作集合,常用的关系操作有交、并、差、除法、选择、投影和连接等。 关系演算语言:使用谓词来表达查询的要求。若谓词的对象是元组变量,称为元组关系演算;若为域变量,称为域关系演算。 SQL语言:结合了关系代数和关系演算的优点,是关系数据库的标准语言。,2.2 关系模型,10/44,2. 参照完整性 外码(Foreign Key):设F是关系R1的一组属性,但不是R1的主键;如果F与关系R2的主键P对应,则称F是关系R1的外键。并称关系R1为参照关系(Referencing Relation),关系R2为被参照关系(Referenced Relation)或目标关系(Target Relation)。R1和R2也可能是同一个关系。 例如,现在有两个关系,分别表示学生信息和学院信息: R1(学号,姓名,性别,所在学院编号) R2(学院编号,学院名称,学院位置) 参见下页的图形:,2.2 关系模型,11/44,R1:学生信息关系(表),R2:学院信息关系(表),“学号”是R1的主键。 “学院编号”是R2的主键。 R1中的“所在学院编号”要参照R2的“学院编号”取值;二者定义在同一个域上。 “所在学院编号”是R1的外键。 R1为参照关系;R2为被参照关系。,2.2 关系模型,12/44,关系数据库中,一个关系可以看作是一个_,思考题:,一个关系中某个属性的值能唯一标识关系中的每一个元组,该属性称为_,关系模型包括三部分: _ _ _,13/44,2.3 关系代数,1.运算对象 关系,将整个关系作为运算单位(操作数),用关系代数表达式表示的运算方法。 2.关系操作分类 传统的集合操作(并、差、交、笛卡尔积) 扩充的关系操作(投影、选择、连接、除法),14/44,传统的集合运算 并(Union) 关系R和S的并记作: RS=t|tRtS,即属于R或S的所有元组。 R和S应该有相同的目,即属性个数相同,类型相同。,R关系,S关系,RS,2.3 关系代数,15/44,2.3 关系代数,差(Difference) 关系R和S的差记作: R-S=t|tRt !S,即属于R且不属于S的所有元组。 R和S应该有相同的目,即属性个数相同,类型相同。,R关系,S关系,R-S,16/44,交(Intersection) 关系R和S的交记作: RS=t|tRt S,即属于R且属于S的所有元组。 R和S应该有相同的目,即属性个数相同,类型相同。,R关系,S关系,RS,2.3 关系代数,17/44,广义笛卡儿积(Extended Cartesian Product) n目关系R和m目S的广义笛卡儿积为n+m目关系,记作RS。其中,前n个属性为R的属性集,后m个属性为S的属性集, RS中的每个元组为每一个R元组与所有S元组的组合。 若R有K1个元组,S有K2个元组,则RS共有K1K2个元组。,R关系,S关系,RS,2.3 关系代数,18/44,扩充的关系运算 选择(Selection) 在关系R中选择满足条件的元组,记作: F(R)t|tRF(t)=TRUE,F可以是逻辑运算符(如AND,OR等)和关系运算符(,=等)的组合。 选择运算就是从关系R中选取使逻辑表达式F为TRUE的元组。,Student关系,SDEP=信息学院(Student),2.3 关系代数,19/44,例:Student关系, SGEN=男 AND SAGE20(Student),2.3 关系代数,20/44,专门的关系运算 投影(Projection) 从关系R中选择若干属性列,组成新的元组,记作: A(R)tA|tR,其中A为R中的属性列。 投影操作是从列的角度参加的运算;如果取消某些属性列后,出现重复的行,则去掉这些完全相同的行。,Student关系, SNO,SNAME (Student),2.3 关系代数,21/44,A,B,C, ,10 20 30 40,1 1 1 2,=,则:A,C (R),例:若关系 R,22/44,连接(Join) 从关系R和关系S的笛卡尔积中选择属性间满足一定条件的元组,记作: 当为=时,称为等值连接。 见下页的等值连接例子。,2.3 关系代数,23/44,R关系,RS,S关系,取R.B=S.B的所有元组,2.3 关系代数,24/44,自然连接(Natural Join) 从两个关系的笛卡儿积中选择出公共属性值相等的元组,并在结果中去掉重复的属性列,记作: 自然连接是一种特殊的等值连接,只有两个关系有相同属性组时才可以参加。,2.3 关系代数,25/44,R关系,RS,S关系,取R.B=S.B且R.C=R.C的所有元组,2.3 关系代数,去掉重复属性,26/44,除法(Division) 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z均为属性组,R和S的属性组Y属于同一个域。 RS得到一个新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集包含S在Y上投影的集合。,2.3 关系代数,27/44,R关系,S关系,1.根据除法规则可知,RS的属性列为 R的属性列(A,B,C)中去掉S中相同的 (B,C),故RS的属性列为A。,2.A可能的取值为a1,a2,a3,3.R中a1的象集为b1,c2 ,b2,c3 ,b2,c1; R中a2的象集为b2,c1; R中a3的象集为b4,c6;,4.S在(B,C)的投影为b1,c2 ,b2,c1 ,b2,c3;,5.只有a1的象集包含了S在(B,C)的投影,所以RS=a1,RS,2.3 关系代数,28/44,2.4 关系演算,在元组演算中,一般用元组演算表达式t|(t)表示关系,其中t为元组变量, (t)是由原子公式和运算符组成的元组关系演算公式。 原子公式的三种类型 1. R(t) R是关系,t是元组变量,R(t)表示关系R的元组;因此关系R可以用t|R(t)来表示。 2. tic或c ti tic表示元组变量t的第i个变量,c为常量,是算术运算比较符。 tic或c ti 表示“元组t的第i个分量与常数c之间满足运算”。 例如,t25表示“t的第二个分量大于5”; s6=“张力”表示“s的第六个分量等于张力”,29/44,2.4 关系演算,3. tiuj t和u是两个元组变量,是算术运算比较符。 titj 表示“元组t的第i个分量与元组u的第j个分量之间满足运算”。 例如,s12s24表示“s1元组的第2个分量大于s2的第4个分量”; 常用量词和逻辑运算符 存在量词和全程量词 存在量词 全程量词 如果元组变量前没有存在量词和全程量词,则称这个元组变量为自由的元组变量,否则称为约束的元组变量。,30/44,元组关系演算表示关系代数的五种基本运算 并 RS=t|R(t)S(t),表示RS的结果是元组t的集合,t在R中或在S中。 差 表示R-S结果是元组t的集合,t在R中而不在S中。 笛卡儿积 设R和S分别是m和n目关系:,2.4 关系演算,31/44,RS是m+n目关系,结果是这样一些元组集合:存在一个元组变量u和元组变量v,并且t的前m个分量构成u,后n个分量构成v。 投影 公式中,关系R在属性i1,i2ik上的投影是k目元组t(k)的集合,对于t(k)的任何一个属性,都满足t(k)的属性k与元组u的属性ik相同。 选择 F(R)=t|R(t)F,其中F表示F的等价公式。 选择的结果是元组t的集合,t是关系R的一个子集,且它的每个元组均同时满足等价公式F的要求。,2.4 关系演算,32/44,举例,R关系,S关系,属于R的元组且不属于S的元组,即从R中去除二者公共的元组(d,b,4)。,2.4 关系演算,33/44,举例2,R关系,R的元组中,第二个分量B中等于f的元组集合。,2.4 关系演算,34/44,举例3,R关系,R的元组中,第三个分量C中大于等于4的元组集合。,2.4 关系演算,35/44,举例4,R关系,S关系,属于R的元组且属于S的元组,即 (d,b,4)。,2.4 关系演算,36/44,域关系演算与元组关系演算类似,不同的是公式中的变量不是元组变量而是表示元组变量中各分量的域变量。域关系演算表达式的一般形式是: t1,t2,tk|(t1,t2,tk),其中t1,t2,tk是元组变量t的各个分量,都称为域变量;是一个公式,由原子公式和各种运算符构成。 原子公式的三种形式 1. R(t1,t2,tk) R是k目关系,ti是域变量或常量,R(t1,t2,tk)表示有分量组成的元组在R中。,2.4 关系演算,37/44,2. tic或c ti ti表示元组t的第i个域变量,c为常量,是算术运算比较符。 tic或c ti 表示t与常数c之间满足运算。 3. tiuj ti表示元组t的第i个域变量, tj表示元组u的第j个域变量。 是算术运算比较符。 tiuj表示ti和uj之间满足运算。,2.4 关系演算,38/44,举例1,R关系,R的元组中,域变量y(B的属性集合)中8,并且,域变量x(A的属性集合)等于d。,2.4 关系演算,39/44,举例2,R关系,R的元组中,先对R和S元组作并操作,然后去除A分量等于c 的元组和B分量等于f的元组。,S关系,2.4 关系演算,40/44,举例3,R关系,1. 先对R和S作笛卡

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论