您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第2讲 关系数据库基本原理2
第二讲关系数据库基本原理关系代数关系代数的运算可分为两类:.传统的集合运算,如并、交、差、广义笛卡尔积。这类运算将关系看成元组的集合,其运算是以关系的行为单位来进行的。.专门的关系运算,如选择、投影、连接、除。这类运算表达了实用系统中应用最普遍的查询操作。上述两类运算的运算对象是关系,运算结果也是关系。一、传统的集合运算传统的集合运算包括四种运算:并(∪)、交(∩)、差(—)、广义笛卡尔积(X)。1.并(Union)设关系R和关系S具有相同的目n(n个属性),且相应的属性取自同一个域。则关系R和关系S的并记为R∪S,其结果仍为n目关系,由属于R或属于S的元组组成。如R和S的元组分别用两个圆表示,则R∪S的集合如图所示虚影部分元组。【例1】设某公司有两个子公司,其营业库如表所示。营业库1营业库2商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003comp1练习本10003.004comp1笔记本10008.00商品代码子公司代码品名数量单价1Comp2钢笔5010.005Comp2练习本2003.006comp2信笺10003.00现如欲对全公司营业情况进行统计,操作时首先把两表内容合并为一个表,再在一个表中进行统计,即求营业库=营业库1∪营业库2。商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003Comp1练习本10003.004Comp1笔记本10008.001Comp2钢笔5010.005Comp2练习本2003.006Comp2信笺10003.002.交(Intersection)设关系R和关系S具有相同的目n,且相应的属性取自同一个域。关系R和关系S的交记为R∩S,结果仍为n目关系,由既属于R又属于S的元组组成。如R和S的元组分别用两个圆表示,则R∩S集合运算结果可用图示意,则两圆相交部分元组表示R与S的交。成绩1成绩2【例2】在输人学生成绩时,为保证数据正确,常让两人重复输入成绩数据,形成两个成绩文件如下表所示。由于两人同时对同一学生成绩输入出错而且输入的错误数据完全一样的概率几乎为0,因此认为,两人输人数据一致的部分数据是准确的,即求取成绩1∩成绩2,其结果被认为是正确的,学号课名分数1数学801英语851政治902数学852英语802政治90学号课名分数1数学801英语851政治922数学852英语802政治90学号课名分数1数学801英语852数学852英语802政治903.差(Difference)设关系R和关系S具有相同的目n,且相应的属性取自同一个域。定义关系R和关系S的差记为R-S,其结果仍为n目关系,由属于R而不属于S的元组组成。如R和S的元组分别用两个圆表示,则R-S的集合如图所示。比较“交”图和“差”,显然R=(R∩S)∪(R-S)或R-S=R-(R∩S)。【例3】在例2中,两人输入完全一致的数据是正确的,两人输入不同的部分数据则应找出错误原因,以防丢失正确数据。因而应分别找到(成绩l-成绩2)及(成绩2-成绩1),并对二个结果进行分析,与实际成绩复核,检查其中哪一人输入是正确的,或找到正确数据再补充录入。(成绩l-成绩2)和(成绩2-成绩1)的结果如表所示。学号课名分数1政治92学号课名分数1政治904.笛卡尔积(ExtendedCartesianProduct)两个分别为n个元组和m个元组的关系R和S的广义笛卡尔积R×S是一个(n×m)元组的集合。元组的前n个分量是R的一个元组,后m个分量是S的一个元组若R有K1个元组,S有K2个元组,则R×S有K1×K2个元组。记为R×S关系的数学概念可从日常生活上引出。假定:M={王强,张伟,戈华},是男性集合;W={李丽,刘英},是女性集合。若M和W中存在夫妻关系时,那么可能的配对如下:M*W={(王强,李丽),(王强,刘英),(张伟,李丽),(张伟,刘英),(戈华,李丽),(戈华,刘英)}在数学上把所有这些可能配对的集合叫作“笛卡尔积”,直观意义就是诸集合各元素间一切可能的组合。笛卡尔积可看成一个二维表二、专门的关系运算专门的关系运算包括四种运算即选择(σ)、投影(Π)、连接(∞)和除法(÷),是关系数据库数据维护、查询、统计等操作的基础。1选择操作:设有关系R,在关系R中求取满足给定条件F的元组组成新的关系的运算称为选择。记作σF(R)。其中F是一个条件表达式,其值为“真”或“假”。σF(R)是从关系R中选取使条件表达式F为真的元组。这是以行为处理单位进行的运算。F是由常量、变量及算术比较符{,≥,,≤,=,≠}等构成。已知学生关系如下:student(姓名,学号,性别,出生年月,籍贯,系别,入学年份)σ姓名=‘王红’(student)σ籍贯=‘江苏’and出生年份=‘1980’(student)【例】已知营业库关系如下:商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003Comp1练习本10003.004Comp1笔记本10008.001Comp2钢笔5010.005Comp2练习本2003.006Comp2信笺10003.00σ单价≥5(营业库)结果为?商品代码子公司代码品名数字单价1Comp1钢笔5010.002Comp1圆珠笔2006.004Comp1笔记本10008.001Comp2钢笔5010.00符合选择操作:σF1(σF2(R))=σF2(σF1(R))2投影操作:设有关系R,在关系R中求指定的若干个属性列组成新的关系的运算称作投影,如果新关系中包含重复元组,则去掉重复元组。记作ΠA(R)。其中A为欲选取的属性列列名的列表。这是以列作为处理单位进行的运算已知学生关系如下:student(姓名,学号,性别,出生年月,籍贯,系别,入学年份)Π姓名,籍贯,出生年月(student)【例】已知营业库关系,欲求所有商品数量情况,要求取出品名和数量两列,求关系运算式及结果。关系运算式为:П品名,数量(营业库)也可将列名用顺序号表示,上式可写为П[3],[4](营业库)品名数量钢笔50圆珠笔200练习本1000笔记本1000练习本200信笺1000商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003Comp1练习本10003.004Comp1笔记本10008.001Comp2钢笔5010.005Comp2练习本2003.006Comp2信笺10003.00符合投影操作:若属性表A2包含属性表A1,则有:ΠA1(ΠA2(R))=ΠA1(R)【例】求“营业库”中所有单价大于5元的商品品名和单价,求关系运算式。关系运算式:Π品名,单价(σ单价≥5(营业库))品名单价钢笔10.00圆珠笔6.00笔记本8.00商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003Comp1练习本10003.004Comp1笔记本10008.001Comp2钢笔5010.005Comp2练习本2003.006Comp2信笺10003.003.连接(Join)从两个分别为n,m目的关系R和S的广义笛卡尔积中选取满足给定条件F的元组组成新的关系称为R和S的连接,记作RF∞S(F=AθB)。其中A和B分别为R和S上可比的属性列,θ是算术比较符(,≥,,≤,=,≠)。【例】关系R和S如表所示。求R(A=C)∞S,连接结果如图所示。ABA1101A2201CDEA18185A28270A38390ABCDEA1101A18185A2201A28270关系R关系S如算术比较符为“=”,称为等值连接。自然连接(NaturalJoin)是一种特殊而常用的连接。若R和S具有相同名的属性组,且连接条件为R和S中两关系所对应的同名属性列的值相等,则称为自然连接。对于自然连接,无须标明条件表达式F,在结果中要把重复的属性去掉。写作R∞S,结果如表所示。ABA1101A2201ADEA18185A28270A38390关系R关系SABDEA11018185A22018270R∞S=ΠA,B,D,E(σR.A=S.A(R×S))4.除(Division)给定关系R(x,y)与S(z)其中x,y,z为属性集(也可为单属性),R中的y和S中的z是同名的属性(集)也可以有不同的属性名,但必须出自相同的域集。在求解R÷S时,对R按x的值的分组,然后检查每一组,如某一组中的y包含S中全部的z,则取该组中的x的值作为关系P中的一个元组,否则不取。R÷S的商等于关系P。1234a1b1c1d1a1b1c2d2a1b1c3d3a2b2c1d1a2b2c2d2a3b3c1d112c1d1c2d212a1b1a2b2RSR÷S【例】从“营业库”关系中求既销售钢笔,又销售圆珠笔的子公司代码。从营业库中求在子公司代码和品名上的投影R’,再设计关系S,商品代码子公司代码品名数量单价1Comp1钢笔5010.002Comp1圆珠笔2006.003Comp1练习本10003.004Comp1笔记本10008.001Comp2钢笔5010.005Comp2练习本2003.006Comp2信笺10003.00品名钢笔圆珠笔子公司代码品名Comp1钢笔Comp1圆珠笔Comp1练习本Comp1笔记本Comp2钢笔Comp2练习本Comp2信笺子公司代码Comp1R’SR’÷S练习1设有如图所示的关系R、W、和D,计算下列关系代数:(1)R1=ΠY,T(R)PQTY2bcd9aef2bef9ade7gef7gcdTYBcdmcdndfnTYcdefYTdcfeed关系R关系W关系DR1(2)R2=σP5∩T=e(R)PQTY2bcd9aef2bef9ade7gef7gcdTYBcdmcdndfnTYcdef关系R关系W关系DPQTY9aef7gefR2(3)R3=R∞WPQTY2bcd9aef2bef9ade7gef7gcdTYBcdmcdndfnTYcdef关系R关系W关系DPQTYB2bcdm2bcdn7gcdm7gcdnR3(4)R4=Π[2],[1],[6](σ[3]=[5](R×D))PQTY2bcd9aef2bef9ade7gef7gcdTYBcdmcdndfnTYcdef关系R关系W关系DQPYb2da9fb2fg7fR4R5=R÷DPQTY2bcd9aef2bef9ade7gef7gcdTYBcdmcdndfnTYcdef关系R关系W关系DPQ2b7gR5练习2设有如下关系:学生(学号,姓名,性别,专业,出生日期)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)(1)查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号(2)查找学习“英语”课程的“计算机”专业学生的学号、姓名和成绩Π教师编号,学号(σ课程名称=‘数据库原理’and成绩=60(授课))Π学号,姓名,成绩((σ专业=‘计算机’(学生))∞(σ课程名称=‘英语’(授课)))
本文标题:第2讲 关系数据库基本原理2
链接地址:https://www.777doc.com/doc-3219034 .html