关系数据库的基本运算.ppt
关系数据库的基本运算,计算机基础教研室何进,内容概述,关系模型的定义关系的性质关系代数关系的基本运算,关系模型的定义,关系模型是建立在“集合代数”数学模型之上的数据库组织模式,所以,我们必须从集合角度来分析关系模型的结构定义。在定义关系模型的逻辑结构中,我们需要把握以下几个概念域和域名:一组相同数据的集合笛卡尔积:若干域中各种元素的一切可能的集合关系:一组域的笛卡尔积的子集关键字:用于标识一个元组的属性或者属性的集合,关系举例,有如下集合(域):一组具有相同数据类型的集合D1=张三,李四D2=男,女D3=四川,重庆可以构造以下的组合(迪卡尔乘积),D1D2D3一共8种组合张三男四川张三男重庆张三女四川张三女重庆李四男四川李四男重庆李四女四川李四女重庆这样的乘积关系,不一定能真实的反映现实,数据冗余比较大,数据完整性不好,但是,我们可以只抽取其中某一子集来构建数据库,一种二维表格的数据结构关系结构。,关系的性质,关系可以是空(不包含任何元组),初始化的时候,关系都为空表关系中的列称为属性,属性有其属性名,关系中的行称为元组,是不同属性分量的一个组合不同的属性可以来自同一个域;同一列的数据必须来自同一域列和行的顺序可以任意交换,但不能出现相同的行关系中,可以实现插入,删除,更新操作,所以关系是可以随时发生变化的判定关系是否相同,只在乎数据是否都出现,和列和行的次序无关。其实,在平时的操作中,这些东西自然会清晰起来的,不需要去太多的记忆,集合运算,关系是建立在集合代数的基础上的,所以集合的运算也自认适合关系:并交差这些运算比较好懂,就不做详细的介绍了p22例2-1下面重点讨论关系的基本运算:选择运算、投影运算、连接运算。它们是集合运算在关系上的映射,关系运算,在未来所有的对关系数据库的操作运算中,都基本属于以下运算或者它们的组合。结果是产生新的关系1)选择运算:在一个关系中,行方向的运算,选择符合条件的元组,形成一个新的子集(新的关系):运算2)投影运算:在一个关系中,列方向的运算,选择符合条件的属性,形成一个新的子集(新的关系):运算3)连接运算:条件连接:把两个关系依照一定的条件并集成一个新的集合,相当于笛卡尔积(一个更大的关系):运算自然连接:在条件连接的基础上删除重复的属性4)除运算:T若是R和S的除,则T的属性是R中不出现在S中的属性组成,而元组则是由R和S中对应值相同的的元组组成。(S的属性都出现在R中),这样的运算很少见。,选择运算,在一个关系中,行方向的运算,选择符合条件的元组,形成一个新的子集(新的关系):运算F(R)=tR|满足F这样解释:获得属于R的子集t,并满足条件F参见学生管理数据库:问题1:获取不及格学生的成绩信息问题2:获得性别为男,且入学成绩大于500分的学生信息。等于横向分割关系,投影运算,在一个关系中,列方向的运算,选择符合条件的属性,形成一个新的子集(新的关系):运算,投影后,属性减少A1,A2,Am(R)从一个关系中选择所需要的属性A1,A2,Am组成一个新的关系参见学生管理数据库:问题1:获得学生学号和姓名问题2:获得学号、成绩,并满足成绩大于90分问题3:获得姓名,学号,成绩(涉及到两个关系)等于纵向分割关系,连接运算,条件连接:把两个关系依照一定的条件并集成一个新的集合,相当于笛卡尔积上的一个选择运算,称之为运算若R(有属性A)和S(有属性B),他们之间可以以A,B的某一运算作为连接条件,实现连接运算RS=AB(RS)自然连接:在条件连接的基础上删除重复的属性问题1:怎么获得姓名、学号、成绩呢?问题2:获得不及格同学的姓名、学号、成绩,范例,首先建立10页的数据库,在ACCESS下建立,在FOXPRO下建立,在SQLSERVER建立关系运算举例,以习题为主,