设为首页 加入收藏

TOP

数据库系统(二)--关系型数据库之关系代数(一)
2019-10-09 19:58:35 】 浏览:50
Tags:数据库 系统 关系型 关系 代数

关系型数据库-关系操作集合

1、 基本的关系操作

  关系模型中常用的关系操作包括查询(Query)操作和插入(Insert)、删除 (Delete)、修改(Update)操作两大部分。

  查询操作分为:选择、投影、连接、除、并、差、交、笛卡尔积等;

  五种基本操作:选择、投影、并、差、笛卡尔积;

  关系操作的特点是集合操作方式,即操作的对象和结果都是集合、这种操作方式也称为一次一集合的方式。

2、关系数据语言的分类

  关系操作是通过关系语言来实现的。 关系语言的特点是高度非过程化,即:

       (1)用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择由 DBMS 的优化机制来完成;

       (2)用户也不必求助于循环和递归来完成数据的重复操作。

    关系操作的能力可以用两种方式来表示:代数方式和逻辑方式。 关系代数、元组关系演算和域关系演算均是抽象的查询语言。结构化查询语言SQL充分体现了关系数据语言的特点和优点,是关于数据库的标准语言。

  关系数据语言可以分为三类:关系代数语言、关系演算语言以及兼具两者双重特点的语言。三类语言的共同特点是语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够独立使用也可以嵌入高级语言中使用。

3、 关系代数

    操作包含三大要素:操作对象、操作符、操作结果。在关系代数操作中,操作对象和操作结果均为关系。 关系代数直接应用关系的运算来表达操作目的,而代数用到的运算符包括集合运算符合专门的关系运算符两类,如下表所示:

    
               
(关系代数运算符)

  A. 传统的集合运算是二目运算,关系看成元组的集合,其运算关系是从关系的“水平”方向,即行的角度来进行,有并、差、交、笛卡尔积 4 种运算。 

  1. 并:假设有两个关系 R1 和 R2,R1 和 R2 的并运算产生一个新关系 R3。R3 是 由属于关系 R1 或 R2 的所有不同元组所组成,记为 R3=R1∪R2。 

  2. 差:假设有两个关系 R1 和 R2,R1 和 R2 的差运算产生一个新关系 R3。R3 是由属于关系关系 R1,但不属于 R2 的元组组成,记为 R3=R1-R2。 

  3. 交:假设有两个关系 R1 和 R2,R1 和 R2 的交运算产生一个新关系 R3。R3 是由既属于关系 R1,同时又属于 R2 的元组组成,记为 R3=R1∩R2。

  4. 笛卡尔积:假设有两个关系 R1 和 R2,且 R1 为 m 元关系,R2 为 n 元关系, R1 和 R2 的笛卡尔积产生一个新关系 R3,记作 R3=R1?R2。R3 是         由 R1 和 R2 的所有元组连接而成的具有(m+n)个分量的元组组成。

   B. 从列的角度,可分为一元专门关系操作和二元专门关系操作。 一元专门关系操作包括对单个关系进行垂直分解的投影运算和进行水平分解选择运算;二元专门关系操作则是对两个关系进行操作,包括连接运算和除运算。

      (0)相关概念:

 

         (0.0)域是一组具有相同数据类型值的集合。

 

   (0.1)设关系模式为R(A1, A2, …, An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量 。

   (0.2)给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(Images Set)为:

      x在R中的像集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值为x。

        eg:如下图所示关系R,则

         x1在R中的像集Z(x1)={Z1,Z2,Z3}, 
                x2在R中的像集Z(x2)={Z2,Z3},
                x3在R中的像集Z(x3)={Z1,Z3}。

        

  注:以下举例统一使用,设存在Student表,Sno表示学号属性,Sage表示年龄,Sname表示姓名,Ssex表示性别,Sdept表示所在系

  (1) 选择(SELECT)

    选择运算表示为:  

    其中,F 为条件表达式,R 为指定的被运算关系名。

    sql伪代码形式如下:
       SELECT 关系名 WHERE 条件

    eg:

    则查询表中年龄小于20的学生,

      关系代数方式:

    SQL方式: select * from Student where Sage > 20

  (2) 投影(PROJECTION)
    关系R上的投影是从R中选择出若干属性列组成新的关系。记作: 其中A为R中的属性列。投影操作是从列的角度进行运算。

  eg:

    查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影

       关系代数方式:  ∏Sname,Sdept(Student)

          SQL方式:  select Student.Sname,Student.Sdept form Student

     注意:投影之后不仅取消了原关系的某些列,而且还可能取消某些元祖,因为取消了某些属性之后,就可能出现重复行,应取消这些完全相同的行。

  (3) 连接(JOIN)

  连接运算也称为θ连接,从两个关系(R、S)中的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接:

         

    其中: A为包含R中的属性的表达式;
           B为包含S中的属性的表达式;
           θ通常为关系比较符。

    (3.1) 非等值连接

    θ不为“=”的连接称为非等值连接

    sql伪代码:    select * fro

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇〈四〉ElasticSearch的认识:基础.. 下一篇(三)分布式数据库tidb-隔离级别详..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目