1、第二部分 关系数据库的操作,关系的数学定义关系的操作,一个日常生活中的关系例子,某小区有2名男同志和3名女同志,把男人看成一个集合M,把女人看成一个集合W,如下: M=赵和平, 李振华; W=李小丽, 张小琴, 王丽娅。 若M集合和W集合存在着夫妻关系,则可能的夫妻关系如下: (赵和平,李小丽),(赵和平,张小琴),(赵和平,王丽娅),(李振华,李小丽),(李振华, 张小琴),(李振华,王丽娅) 在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡尔积”,本题的“笛卡尔积”可记为:MW。,MW,W=小娟, 小琴 笛卡尔积?,几个概念,域 域(Domain)是值的集合。如:1到100之间的
2、整数, Mary,Tom等都是域。基数 域中元素的个数称为域的基数,如有下列集合:单位人员的集合:D1=王小平, 张亚, 李军;职称的集合: D2=教授,副教授,讲师,助教;工龄的集合: D3=35,27,18。其中 D1的基数是3,D2的基数是4,D3的基数是3。,性别的域?基数?,两个或多个集合中的值的所有可能组合,笛卡儿积的基数?,若Di(i=1,2,n)为有限集,其基数为mi ( i=1,2,n),则笛卡儿积D1 D2 . Dn的基数为:,元组数!,关系的数学定义,R - 关系的名字n - 关系的目或度。R是D1 D2 . Dn 的 子集,关系是笛卡儿积的有限个子集,笛卡儿积D1D2
3、Dn的任意一个子集称为D1,D2, Dn上的一个n元关系R( D1, D2, , Dn)表示关系,属性列数!,【例】教师关系例,有以下三个域:D1=张正义,姚小丽,教师姓名集合; D2=男,女,教师性别集合; D3=21,24,教师年龄集合。求D1 D2 D3 。 解:笛卡尔积D1 D2 D3的值可用左表表示,实际的教师信息如右表,关系,真正的教师关系表,子集,要素一:关系的结构,关系数据结构:是一张二维的表,关系的描述形式关系名(属性1,属性2属性n)学生表 (学号,姓名,性别,专业号,年龄),关系:R( D1, D2, , Dn),要素三:关系的操作,关系数据操作有两个基本特点:一次操作可
4、以存取多个元组语言的非过程化(只告诉DBMS干啥),关系代数,基本概念和符号传统的集合运算专门的关系运算基本运算及变换,关系代数的概念,关系代数是一种查询语言,是操纵语言的传统表达方式,用对关系的运算表达查询。关系代数的运算对象是关系,关系代数的运算结果也是关系与一般的运算一样,运算对象、运算符和运算结果也是关系代数的三个要素运算符包括四类:集合运算符、专门的关系运算符、算术比较符、逻辑运算符,关系代数的运算可以分为两大类,传统的集合运算 并运算(UNION) 交运算(INTERSECTION) 差运算(DIFFERENCE) 关系的笛卡尔积 专门的关系运算 选择(SELECT)运算 投影(P
5、ROJECTION)运算联接运算(JOIN),几个概念和专门的符号,元组的分量元组的连串元组中属性的映像集,设有关系模式R (A1,A2,An) rR表示r是R的一个元组 r.A i或r A i表示r 这个元组中相应于属性A i的一个分量 例如,假设R是仓库关系,r =(WH1,北京,370)是仓库关系的一个元组,则rR ,r.仓库号或r 仓库号为WH1。,元组的分量,设R为m元关系,S为n元关系,并且 r =(r1,r2,rm)R s=(s1,s2,sn)S则 称为元组的连串。这是一个(m+n)元组,前m个分量为R中的一个m元组,后n个分量为S中的一个n元组。,元组的连串,设有关系模式R(X
6、,Y),其中X、Y可以是单个属性,也可以是属性集,定义当X取值为x时, x在R中的映象集为:,元组中属性的映像集,映像集的例子,X=E3Yx ?,传统的集合运算,并运算(UNION) 交运算(INTERSECTION) 差运算(DIFFERENCE) 关系的笛卡尔积,并:RS=t|tRV tS,差:R-S=t|tR tS,交:RS=t|tR tS,笛卡尔积:RS=tr ts | tr R ts S,传统的集合运算,并运算,交运算,差运算,举例:仓库-A ;仓库-B 的并、交、差运算示意,仓库-A ;仓库-B 的广义笛卡尔积?参考P46-47,思考题仓库-A ;仓库-B 的广义笛卡尔积,选择(S
7、ELECT)运算 投影(PROJECTION)运算联接运算(JOIN)除运算(Division),专门的关系运算,选择又称为限制,它是在R中选择满足给定条件的各元组-形成一个新的关系F(R) =t|tR F(t)=“真”其中R是关系名,是选择运算符,F是逻辑表达式,例1:要在学生基本信息中找出年龄小于24岁的所有学生数据。年龄24(学生),选择(Selection),元组,选择运算举例:,职工号=E3(订购单),订购单,从订购单关系中选择职工号为“E3”的元组构成新的关系,关系R上的投影是从R中选择出若干属性列组成新的关系.,例2.查询学生关系在学生姓名,所在专业两个属性上的投影.姓名,专业号
8、 ( 学生 ),A(R) =tA | tR,其中R是关系名,是投影运算符,A是被投影的属性或属性集。,投影(Projection),属性组,投影运算举例:,订购单关系,选取职工号和供应商号两列构成新的关系,职工号,供应商号(订购单),关系代数,连接(Jion),连接运算是将满足两个表之间运算关系的记录连接成一条记录,所有这样的记录构成新的表(连接运算的结果)。连接运算可以表示为:,Ai是R中的属性,Bj是S中的属性,是关系(比较)运算符,连接的结果是一个广义笛卡儿乘积的子集,其中的元组满足Ai和Bj间的关系。当为“=”时,称为等值连接;为“”时,称为大于连接等等。,自然连接,在连接运算中最常用
9、的连接是自然连接。自然连接运算一般表示为 :,其中Ai和Bj要出自同一个值域,并且在实际应用中这两个属性往往具有相同的属性名。,过程:计算笛卡尔积选择满足条件r Ai=s Bj 去掉重复值,自然连接的例子,s Bj,r Ai,综合运算实例,根据以上关系求出在上海工作的职工的工资值都有哪些?,仓库,职工,关系代数语句为:,其它关系代数语句求解?,查询过程示意,选择运算,自然连接运算,投影运算,设有关系R(X,Y)和S(Y),其中X、Y可以是单个属性或属性集,则除法运算定义为:,除运算(Division),R(X,Y)是被除关系S(Y)是除关系商关系由R中某些X属性值构成,其中的任一X值所对应的一
10、组Y值都包含除关系S。除运算常用于至少查询或运算,除运算的例子,它的含义是:至少向WH1、WH3、WH5供货的供应商号,关系演算,元组关系演算语言ALPHA域关系演算语言QBE,关系演算,元组关系演算语言,元组关系演算以元组变量为谓词变元的基本对象.,ALPHA语言主要有:GET,PUT,HOLD,UPDATE,DELETE,DROP,举例:检索操作:GET,查询所有被选修课程的课程号码GET W (选修.课程号)查询通控专业年龄小于20的学生的学号和年龄:GET W (学生.学号, 学生.年龄): 学生.专业号=TK 学生.年龄19,TK,P.95001P.95002,19,TK,查询条件示例:,年龄.AND.专业号,年龄.OR.专业号,年龄.AND.专业号,