数据库 关系运算(关系代数).ppt
- 格式:ppt
- 大小:1.41 MB
- 文档页数:62
第二章关系代数教学目的:本章实际上研究的是关系的运算。
学习目的:关系运算是设计关系数据库操作语言的基础,因为其中的每一个询问往往表示成一个关系运算表达式,在我们的课程中,数据及联系都是用关系表示的,所以实现数据间的联系也可以用关系运算来完成。
通过本章学习,应重点掌握:(1)关系数据库的基本概念;(2)如何用关系代数表达式来表达实际查询问题;(3)如何用元组演算表达式来表达实际查询问题;(4)如何用域演算表达式来表达实际查询问题;(5)如何将关系代数表达式转换为元组演算表达式或转换为域演算表达式。
了解和掌握关系数据结构中涉及到的域、笛卡儿积、关系模式等有关内容的含义;掌握关系的实体完整性和参照完整性的定义;掌握关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学重点:关系的实体完整性和参照完整性的定义;关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学难点:关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学方法:实例法教学内容:如下:关系模型关系模型是一种简单的二维表格结构,每个二维表称做一个关系,一个二维表的表头,即所有列的标题称为一个元组,每一列数据称为一个属性,列标题称估属性名。
同一个关系中不允许出现重复元组和相同属性名的属性。
1.关系模型组成关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
关系操作分为两大部分如图所示。
2.关系操作的特点关系操作的特点是操作对象和操作结果都是集合。
而非关系数据模型的数据操作方式则为一次一个记录的方式。
关系数据语言分为三类: (1)关系代数语言:如ISBL ;(2)关系演算语言:分为元组关系演算语言(如Alpha ,Quel)、域关系演算语言(如QBE); (3)具有关系代数和关系演算双重特点的语言:如SQL 。
3.关系数据结构及其形式化定义 (1)域定义 域是一组具有相同数据类型的值的集合。
数据库关系代数
关系运算及运算符
一、基本代数运算
1并
相同的合并成一列,不同的并起来成为RS
操作示意图:
2差
以R为基准,选择S没有的元组。
S中R中没有的不算。
操作示意图:
3笛卡尔
关系R为n列,k1元组、关系S为m列,k2元组。
R中每个k1与S每个k2组成新的关系。
4投影
二、扩展代数运算
1交
选择R和S相同的值。
操作示意图:
Θ相当与运算符,可以认为笛卡儿积是无条件连接,其他的是有条件连接。
等值连接的条件就相当于θ=“=”
Θ连接逻辑上是table之间先做笛卡儿积,再做对应选择操作
2.1等值连接
2.2自然连接
特殊的等值连接,要求两个关系中进行比较的分量必须相同属性组,将重复属性(字段)去掉
3除
同时从关系的水平方向和垂直方向同时运算操作示意图:
4外连接
如果把舍弃的元组保存在结果关系中,而其他属性填空值(null)
4.1左外连接
把左边关系R中要舍弃的元组保留。
先自然连接,成为ABCE。
以左边的为基准,所以B列的b5没了。
4.2右外连接
把右边关系S中要舍弃的元组保留。
先自然连接,以右边的S为基准,保留B列共同的值,R中的b4没有所以删除了。
4.3全外连接
不满足R.B=S.B的元组保留。
数据库之关系运算 关系操作的特点是操作对象和操作结果都是集合,⽽⾮关系数据模型的数据操作⽅式则为⼀次⼀个记录的⽅式。
关系数据代数语⾔、关系演算语⾔和具有关系代数和关系演算双重特点的语⾔(例如SQL)。
关系演算语⾔包含元组关系演算语⾔(例如Aplha、Quel)和域关系演算语⾔(例如QBE)。
关系代数语⾔、元组关系演算和域关系演算是抽象查询语⾔,它与具体的DBMS中实现的实际语⾔并不⼀样,但是可以⽤它评估实际系统中的查询语⾔能⼒的标准。
关系代数运算符有4类:集合运算符(∩交、∪并、- 差、× 笛卡尔积)、⽐较运算符(> ⼤于、≥ ⼤于等于、< ⼩于、≤ ⼩于等于 ≠ 不等于、= 等于)、逻辑运算符(¬ ⾮、ν与、Λ或)、专门的关系运算符(σ选择、÷ 除、π投影、⋈连接) 基本关系代数涵盖有五种:并、差、笛卡尔积、选择、投影,其他的都可以由这五种推出来如:各种连接。
以MySQL运⾏结果为例: ⾸先建⽴数据库 create database mydb; 在建⽴两个表格emp与dept详情如下:CREATE TABLE emp(empno INT,ename VARCHAR(50),job VARCHAR(50),mgr INT,hiredate DATE,sal DECIMAL(7,2),comm decimal(7,2),deptno INT) ;INSERT INTO emp values(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);INSERT INTO emp values(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);INSERT INTO emp values(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);INSERT INTO emp values(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);INSERT INTO emp values(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);INSERT INTO emp values(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);INSERT INTO emp values(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);INSERT INTO emp values(7788,'SCOTT','ANALYST',7566,'1987-04-19',3000,NULL,20);INSERT INTO emp values(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);INSERT INTO emp values(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);INSERT INTO emp values(7876,'ADAMS','CLERK',7788,'1987-05-23',1100,NULL,20);INSERT INTO emp values(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);INSERT INTO emp values(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);INSERT INTO emp values(7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);CREATE TABLE dept(deptno INT,dname varchar(14),loc varchar(13))INSERT INTO dept values(10, 'ACCOUNTING', 'NEW YORK');INSERT INTO dept values(20, 'RESEARCH', 'DALLAS');INSERT INTO dept values(30, 'SALES', 'CHICAGO');INSERT INTO dept values(40, 'OPERATIONS', 'BOSTON');1、并在MySQL中体现为合并结果集union(需要注意的是t1和t2的约束是相同的)去除重复列:select * from t1 union select * from t2;不去除重复列:select * from t1 union all select * from t2;2、笛卡尔积(以emp和dept表位例,其中emp有14条记录、dept中有4条记录形成的记录14*4=56条)select * from emp,dept;只有部分截图3 内连接(inner)在MySQL中不加限定条件的时候select * from emp inner join dept;结果与笛卡尔积是⼀样的。
并、差、笛卡儿积、投影、选择是关系代数的5种基本的运算,其他运算,即交、连接、除都可以通过基本的运算推导运算出。
1、并,设有两个关系R和S,它们具有相同的结构,R和S的并是由属于R或属于S的元组组成的集合;2、差,R和S的差是由属于R但不属于S的元组组成的集合;3、笛卡尔积,两个集合X和Y的笛卡尓积,又称直积,表示为X 与Y相乘,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员;4、选择,从关系中找出满足给定条件的那些元组称为选择;其中的条件是以逻辑表达式给出的,值为真的元组将被选取;5、投影,从关系模式中挑选若干属性组成新的关系称为投影。
数据库系统(二)--关系型数据库之关系代数关系型数据库-关系操作集合1、基本的关系操作关系模型中常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。
查询操作分为:选择、投影、连接、除、并、差、交、笛卡尔积等;五种基本操作:选择、投影、并、差、笛卡尔积;关系操作的特点是集合操作方式,即操作的对象和结果都是集合、这种操作方式也称为一次一集合的方式。
2、关系数据语言的分类关系操作是通过关系语言来实现的。
关系语言的特点是高度非过程化,即:(1)用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择由 DBMS 的优化机制来完成;(2)用户也不必求助于循环和递归来完成数据的重复操作。
关系操作的能力可以用两种方式来表示:代数方式和逻辑方式。
关系代数、元组关系演算和域关系演算均是抽象的查询语言。
结构化查询语言SQL充分体现了关系数据语言的特点和优点,是关于数据库的标准语言。
关系数据语言可以分为三类:关系代数语言、关系演算语言以及兼具两者双重特点的语言。
三类语言的共同特点是语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够独立使用也可以嵌入高级语言中使用。
3、关系代数操作包含三大要素:操作对象、操作符、操作结果。